cabal-version:      3.4
-- The cabal-version field refers to the version of the .cabal specification,
-- and can be different from the cabal-install (the tool) version and the
-- Cabal (the library) version you are using. As such, the Cabal (the library)
-- version used must be equal or greater than the version stated in this field.
-- Starting from the specification version 2.2, the cabal-version field must be
-- the first thing in the cabal file.

-- Initial package description 'cses-programming-tasks' generated by
-- 'cabal init'. For further documentation, see:
--   http://haskell.org/cabal/users-guide/
--
-- The name of the package.
name:               cses-programming-tasks

-- The package version.
-- See the Haskell package versioning policy (PVP) for standards
-- guiding when and how versions should be incremented.
-- https://pvp.haskell.org
-- PVP summary:     +-+------- breaking API changes
--                  | | +----- non-breaking API additions
--                  | | | +--- code changes with no API change
version:            0.1.0.0

-- A short (one-line) description of the package.
-- synopsis:

-- A longer description of the package.
-- description:

-- The license under which the package is released.
license:            MPL-2.0

-- The file containing the license text.
license-file:       LICENSE

-- The package author(s).
author:             Neil Smith

-- An email address to which users can send suggestions, bug reports, and patches.
maintainer:         NeilNjae@users.noreply.github.com

-- A copyright notice.
-- copyright:
category:           Game
build-type:         Simple

-- Extra doc files to be distributed with the package, such as a CHANGELOG or a README.
extra-doc-files:    CHANGELOG.md

-- Extra source files to be distributed with the package, such as examples, or a tutorial module.
-- extra-source-files:

common warnings
    ghc-options: -Wall

executable cses-programming-tasks
    -- Import common warning flags.
    import:           warnings

    -- .hs or .lhs file containing the Main module.
    main-is:          Main.hs

    -- Modules included in this executable, other than Main.
    -- other-modules:

    -- LANGUAGE extensions used by modules in this package.
    -- other-extensions:

    -- Other library packages from which modules are imported.
    build-depends:    base ^>=4.18.0.0

    -- Directories containing source files.
    hs-source-dirs:   app

    -- Base language which the package is written in.
    default-language: GHC2021


common build-directives
  build-depends:       base >=4.16
  default-language:    GHC2021
  hs-source-dirs:      ., app
  ghc-options:         -O2 
                       -Wall 
                       -threaded 
                       -rtsopts "-with-rtsopts=-N"

executable cses1068
  import: build-directives
  main-is: cses1068.hs

executable cses1083
  import: build-directives
  main-is: cses1083.hs

executable cses1069
  import: build-directives
  main-is: cses1069.hs

executable cses1094
  import: build-directives
  main-is: cses1094.hs

executable cses1070
  import: build-directives
  main-is: cses1070.hs

executable cses1620
  import: build-directives
  main-is: cses1620.hs

executable cses1071
  import: build-directives
  main-is: cses1071.hs

executable cses1072
  import: build-directives
  main-is: cses1072.hs

executable cses1092
  import: build-directives
  main-is: cses1092.hs

executable cses1617
  import: build-directives
  main-is: cses1617.hs

executable cses1618
  import: build-directives
  main-is: cses1618.hs

executable cses1754
  import: build-directives
  main-is: cses1754.hs

executable cses1755
  import: build-directives
  main-is: cses1755.hs
  build-depends: containers
  
executable cses2205
  import: build-directives
  main-is: cses2205.hs
  
executable cses2165
  import: build-directives
  main-is: cses2165.hs

executable cses1622
  import: build-directives
  main-is: cses1622.hs

executable cses1623
  import: build-directives
  main-is: cses1623.hs

executable cses1624
  import: build-directives
  main-is: cses1624.hs
  build-depends: containers

executable cses2431
  import: build-directives
  main-is: cses2431.hs

executable cses1625
  import: build-directives
  main-is: cses1625.hs
  build-depends: containers

executable cses1625a
  import: build-directives
  main-is: cses1625-array.hs
  build-depends: containers, array

executable cses1625ac
  import: build-directives
  main-is: cses1625-array-count.hs
  build-depends: array

executable cses1625m
  import: build-directives
  main-is: cses1625-mutable.hs
  build-depends: array