packages feed

smcdel-1.3.0: package.yaml

name: smcdel
version: 1.3.0
synopsis: Symbolic Model Checking for Dynamic Epistemic Logic
description: See README.md for references and documentation.
maintainer: Malvin Gattinger <malvin@w4eg.eu>
license: GPL-2
github: jrclogic/SMCDEL
category: Logic

ghc-options: -Wall

extra-source-files:
  - README.md
  - CHANGELOG.md
  - stack.yaml
  - package.yaml
  - static/ace.js
  - static/mode-smcdel.js
  - static/index.html
  - static/viz-lite.js
  - Examples/CherylsBirthday.smcdel.txt
  - Examples/DiningCryptographers.smcdel.txt
  - Examples/MuddyChildren.smcdel.txt
  - Examples/DrinkingLogicians.smcdel.txt

build-tools:
  - alex
  - happy

flags:
  with-cudd:
    default: false
    manual: true
  cli:
    default: true
    manual: true
  web:
    default: false
    manual: true

library:
  source-dirs:
    - src
  dependencies:
    - base >= 4.8 && < 5
    - HasCacBDD >= 0.2.0.0 && < 0.3
    - QuickCheck >= 2.14.3 && < 2.15
    - array >= 0.5.4 && < 0.6
    - containers >= 0.6.7 && < 0.7
    - decision-diagrams >= 0.2.0 && < 0.3
    - directory >= 1.3.7 && < 1.4
    - filepath >= 1.4.2 && < 1.5
    - graphviz >= 2999.20.2 && < 2999.21
    - process >= 1.6.18 && < 1.7
    - tagged >= 0.8.0 && < 0.9
    - temporary >= 1.3 && < 1.4
    - text >= 2.0.2 && < 2.1
    - time >= 1.12.2 && < 1.13
  when:
  - condition: flag(with-cudd)
    dependencies:
    - cudd == 0.1.0.0
    exposed-modules:
    - SMCDEL.Internal.MyHaskCUDD
    - SMCDEL.Symbolic.K_CUDD
    - SMCDEL.Symbolic.Ki_CUDD
    - SMCDEL.Symbolic.S5_CUDD
    - SMCDEL.Examples.SumAndProduct.General
    - SMCDEL.Examples.DiningCrypto.General

executables:
  smcdel:
    source-dirs: exec
    main: smcdel.hs
    other-modules: Paths_smcdel
    when:
    - condition: flag(cli)
      then:
        dependencies:
          - base >= 4.8 && < 5
          - ansi-terminal >= 0.11.5 && < 1.2
          - directory >= 1.3.7 && < 1.4
          - filepath >= 1.4.2 && < 1.5
          - process >= 1.6.18 && < 1.7
          - smcdel
      else:
        buildable: false

  smcdel-web:
    source-dirs: exec
    main: smcdel-web.hs
    ghc-options: -threaded
    when:
    - condition: flag(web)
      then:
        dependencies:
          - base >= 4.8 && < 5
          - deepseq
          - file-embed
          - scotty >= 0.11.0 && < 0.20
          - HasCacBDD >= 0.2.0.0 && < 0.3
          - js-jquery >= 3
          - smcdel
          - template-haskell
          - text
          - warp
      else:
        buildable: false

tests:
  examples:
    main: test/Examples.hs
    ghc-options: -with-rtsopts=-M8G
    dependencies:
      - base >= 4.8 && < 5
      - HasCacBDD
      - hspec
      - QuickCheck
      - smcdel
  translations:
    main: test/Translations.hs
    ghc-options: -with-rtsopts=-M8G
    dependencies:
      - base >= 4.8 && < 5
      - hspec
      - smcdel
  k:
    main: test/K.hs
    ghc-options: -with-rtsopts=-M8G
    dependencies:
      - base >= 4.8 && < 5
      - containers
      - hspec
      - QuickCheck
      - smcdel
  web:
    main: test/Web.hs
    ghc-options: -with-rtsopts=-M8G
    when:
    - condition: flag(web)
      then:
        dependencies:
          - base
          - process
          - sandwich
          - sandwich-webdriver
          - text
          - webdriver
      else:
        buildable: false
  CUDD:
    main: test/CUDD.hs
    ghc-options: -with-rtsopts=-M8G
    when:
    - condition: flag(with-cudd)
      then:
        dependencies:
          - base >= 4.8 && < 5
          - containers
          - HasCacBDD
          - hspec
          - QuickCheck
          - smcdel
      else:
        buildable: false

benchmarks:
  bench-diningcrypto:
    source-dirs: bench
    main: diningcrypto.hs
    dependencies:
      - base >= 4.8 && < 5
      - smcdel
      - time

  bench-sumandproduct:
    source-dirs: bench
    main: sumandproduct.hs
    dependencies:
      - base >= 4.8 && < 5
      - criterion
      - smcdel
      - time

  bench-muddychildren:
    source-dirs: bench
    main: muddychildren.hs
    dependencies:
      - base >= 4.8 && < 5
      - bytestring
      - cassava
      - criterion
      - directory
      - scientific
      - smcdel
      - split
      - vector
    when:
    - condition: flag(with-cudd)
      then:
        cpp-options: "-DWITH_OPENGL"
      else:
        cpp-options: ""

  sizes-muddychildren:
    source-dirs:     sizeExperiments
    main:            muddychildren.hs
    when:
    - condition: flag(with-cudd)
      then:
        dependencies:
          - base >= 4.8 && < 5
          - bytestring
          - cassava
          - criterion
          - directory
          - scientific
          - smcdel
          - split
          - vector
      else:
        buildable: false

  sizes-diningcryptographers:
    source-dirs:     sizeExperiments
    main:            diningcryptographers.hs
    when:
    - condition: flag(with-cudd)
      then:
        dependencies:
          - base >= 4.8 && < 5
          - bytestring
          - cassava
          - criterion
          - directory
          - scientific
          - smcdel
          - split
          - vector
      else:
        buildable: false

  sizes-sumandproduct:
    source-dirs:     sizeExperiments
    main:            sumandproduct.hs
    when:
    - condition: flag(with-cudd)
      then:
        dependencies:
          - base >= 4.8 && < 5
          - bytestring
          - cassava
          - criterion
          - directory
          - scientific
          - smcdel
          - split
          - vector
      else:
        buildable: false