name:                loop
version:             0.1.0.0
github:              "githubuser/loop"
license:             BSD3
author:              "Author name here"
maintainer:          "example@example.com"
copyright:           "2021 Author name here"

extra-source-files:
- README.md
- ChangeLog.md

# Metadata used when publishing your package
# synopsis:            A basic game loop
# category:            Graphics

# To avoid duplicated efforts in documentation and dealing with the
# complications of embedding Haddock markup inside cabal files, it is
# common to point users to the README.md file.
description:         Description text, TODO link to README.md

dependencies:
- base >= 4.7 && < 5
- containers
- unordered-containers
- bitwise-enum
  #- heap
- sdl2
- sdl2-mixer
- OpenGL
- OpenGLRaw
- text
  #- raw-strings-qq
- bytestring
- lens
- mtl
- fgl
- random
  #- bmp
  #- monad-loops
- JuicyPixels
- vector
- dlist
- deepseq
- transformers
- foldl
- linear
- aeson
- aeson-pretty
- directory
- extra
- primitive
- streaming
- repa
- monad-parallel
- parallel
- Clipboard
  # testing
- tasty
- tasty-hunit
- tasty-quickcheck
  #- QuickCheck
  #- HUnit

library:
  source-dirs: src
  #  ghc-options: -fwrite-ide-info
  #    -hiedir=.hie

executables:
    #  loop-exe:
  dodge:
    main:                Main.hs
    source-dirs:         appDodge
    ghc-options:
    - -threaded
    - -O2
    - -rtsopts
      #    - -eventlog
    - -with-rtsopts=+RTS
    - -with-rtsopts=-N
      #- -with-rtsopts=-l
    - -flate-dmd-anal
    - -fno-liberate-case 
    - -fno-state-hack
    - -funfolding-use-threshold1000 
      #- -funfolding-keeness-factor1000 
    - -fllvm 
    - -optlo-O3
    - -Wall
      #- -Wincomplete-uni-patterns
    - -Widentities
    - -Wredundant-constraints
      #    - -Wmissing-export-lists
#    - -fwrite-ide-info
#    - -hiedir=.hie
    dependencies:
    - loop

tests:
  loop-test:
    main:                Spec.hs
    source-dirs:         test
    ghc-options:
    - -threaded
    - -rtsopts
    - -with-rtsopts=-N
    dependencies:
    - loop

benchmarks:
    loop-benchmarks:
        dependencies:
        - criterion
        - loop
        ghc-options:
        - -threaded
        - -O2
        - -rtsopts
        - -with-rtsopts=-N
        - -flate-dmd-anal
        - -fno-liberate-case 
        - -fno-state-hack
        - -funfolding-use-threshold1000 
        - -funfolding-keeness-factor1000 
        - -fllvm 
        - -optlo-O3
        main:         Bench.hs
        source-dirs:  bench

