cabal-version:       3.6
-- Initial package description 'advent-of-code21.cabal' generated by 'cabal
--  init'.  For further documentation, see
-- http://haskell.org/cabal/users-guide/

name:                advent-of-code21
version:             0.1.0.0
synopsis: Advent of Code 21 solutions
-- description:
-- bug-reports:
license: MIT
-- license-file:        LICENSE
author:              Neil Smith
maintainer:          neil.git@njae.me.uk
-- copyright:
-- category:
build-type:          Simple
extra-source-files:  CHANGELOG.md, README.md

common common-extensions
  default-extensions:     AllowAmbiguousTypes
                        , ApplicativeDo
                        , BangPatterns
                        , BlockArguments
                        , DataKinds
                        , DeriveFoldable
                        , DeriveFunctor
                        , DeriveGeneric
                        , DeriveTraversable
                        , EmptyCase
                        , FlexibleContexts
                        , FlexibleInstances
                        , FunctionalDependencies
                        , GADTs
                        , GeneralizedNewtypeDeriving
                        , ImplicitParams
                        , KindSignatures
                        , LambdaCase
                        , MonadComprehensions
                        , MonoLocalBinds
                        , MultiParamTypeClasses
                        , MultiWayIf
                        , NamedFieldPuns
                        , NegativeLiterals
                        , NumDecimals
                        , OverloadedLists
                        , OverloadedStrings
                        , PartialTypeSignatures
                        , PatternGuards
                        , PatternSynonyms
                        , PolyKinds
                        , RankNTypes
                        , RecordWildCards
                        , ScopedTypeVariables
                        , TemplateHaskell
                        , TransformListComp
                        , TupleSections
                        , TypeApplications
                        , TypeFamilies
                        , TypeInType
                        , TypeOperators
                        , ViewPatterns

common build-directives
  build-depends:       base >=4.15
  default-language:    Haskell2010
  ghc-options:         -O2 
                       -Wall 
                       -threaded 
                       -rtsopts "-with-rtsopts=-N"

executable advent-of-code21
  main-is:             Main.hs
  -- other-modules:
  -- other-extensions:
  build-depends:       base >=4.15
  -- hs-source-dirs:
  default-language:    Haskell2010

executable advent01
  import: common-extensions, build-directives
  main-is:             advent01/Main.hs
  -- other-modules:
  -- other-extensions:
  -- build-depends:       base >=4.13 && < 4.15
  -- hs-source-dirs:
  -- default-language:    Haskell2010

executable advent02
  import: common-extensions, build-directives
  main-is:             advent02/Main.hs
  build-depends: text, attoparsec

executable advent03
  import: common-extensions, build-directives
  main-is: advent03/Main.hs

executable advent04
  import: common-extensions, build-directives
  main-is:             advent04/Main.hs
  build-depends: text, attoparsec

executable advent05
  import: common-extensions, build-directives
  main-is:             advent05/Main.hs
  build-depends: text, attoparsec, linear, containers

executable advent06
  import: common-extensions, build-directives
  main-is: advent06/Main.hs
  build-depends: split, containers

executable advent07
  import: common-extensions, build-directives
  main-is: advent07/Main.hs
  build-depends: split

executable advent08
  import: common-extensions, build-directives
  main-is: advent08/Main.hs
  build-depends: text, attoparsec, containers