-- Initial hw.cabal generated by cabal init.  For further documentation, 
-- see http://haskell.org/cabal/users-guide/

name:                hw
version:             0.0.0.0
-- synopsis:            
-- description:         
license:             GPL-3
license-file:        LICENSE
author:              nek0
maintainer:          nek0@chelnok.de
-- copyright:           
category:            Game
build-type:          Simple
extra-source-files:  ChangeLog.md
cabal-version:       >=1.10

flag debug
  description:       Enable debug messages
  default:           False
  manual:            True

flag warn
  description:       Enable warning messages
  default:           False
  manual:            True

flag error
  description:       Enable error messages
  default:           False
  manual:            True

executable hw
  main-is:             Main.hs
  other-modules:       Util
                     , Types
                     , Init
  -- other-extensions:    
  default-extensions:  OverloadedStrings
  build-depends:       base >=4.9
                     , affection
                     , sdl2
                     , linear
                     , spatial-math
                     , bytestring
                     , OpenGL
                     , OpenGLRaw
                     , GLUtil
                     , random
                     , vector
                     , wavefront
                     , shoot
  hs-source-dirs:      src
  default-language:    Haskell2010
  ghc-options:         -Wall
  extra-libraries:     stdc++

flag examples
  description:         Build testing examples
  default:             False

executable example00
  main-is:             Main.hs
  other-modules:       Util
                     , Types
                     , Init
  -- other-extensions:    
  default-extensions:  OverloadedStrings
  if flag(examples)
    build-depends:       base >=4.9
                       , affection
                       , sdl2
                       , linear
                       , spatial-math
                       , bytestring
                       , OpenGL
                       , OpenGLRaw
                       , GLUtil
                       , random
                       , vector
                       , wavefront
                       , shoot
  else
    buildable:           False
  hs-source-dirs:      examples/example00
  default-language:    Haskell2010
  ghc-options:         -Wall
  extra-libraries:     stdc++

executable example01
  main-is:             Main.hs
  other-modules:       Util
                     , Types
                     , Init
  -- other-extensions:    
  default-extensions:  OverloadedStrings
  build-depends:       base >=4.9
                     , affection
                     , sdl2
                     , linear
                     , spatial-math
                     , bytestring
                     , OpenGL
                     , OpenGLRaw
                     , GLUtil
                     , random
                     , vector
                     , wavefront
                     , shoot
  hs-source-dirs:      examples/example01
  default-language:    Haskell2010
  ghc-options:         -Wall
  extra-libraries:     stdc++

executable example02
  if flag(debug)
    cpp-options:       -DDEBUG
  if flag(warn)
    cpp-options:       -DWARN
  if flag(error)
    cpp-options:       -DERROR
  main-is:             Main.hs
  other-modules:       Util
                     , Types
                     , Init
                     , Logging
  -- other-extensions:    
  default-extensions:  OverloadedStrings
  build-depends:       base >=4.9
                     , affection
                     , sdl2
                     , linear
                     , spatial-math
                     , bytestring
                     , OpenGL
                     , OpenGLRaw
                     , GLUtil
                     , random
                     , vector
                     , wavefront >= 0.7.1.2
                     , shoot
  hs-source-dirs:      examples/example02
  default-language:    Haskell2010
  ghc-options:         -Wall
  extra-libraries:     stdc++

executable example03
  if flag(debug)
    cpp-options:       -DDEBUG
  if flag(warn)
    cpp-options:       -DWARN
  if flag(error)
    cpp-options:       -DERROR
  main-is:             Main.hs
  other-modules:       Util
                     , Types
                     , Init
                     , Logging
  -- other-extensions:    
  default-extensions:  OverloadedStrings
  build-depends:       base >=4.9
                     , affection
                     , sdl2
                     , linear
                     , spatial-math
                     , bytestring
                     , OpenGL
                     , OpenGLRaw
                     , GLUtil
                     , random
                     , vector
                     , wavefront
                     , shoot
                     , split
                     , optparse-applicative
  hs-source-dirs:      examples/example03
  default-language:    Haskell2010
  ghc-options:         -Wall
  extra-libraries:     stdc++
