packages feed

prednote-test-0.24.0.0: genCabal.hs

-- Generates the Cabal file for prednote-test.
-- Written to use version 0.10.0.2 of the Cartel
-- library.

module Main (main) where

import CabalCommon
import qualified Cartel as C

prednote :: C.Package
prednote = C.exactly "prednote" versionInts

quickcheck :: C.Package
quickcheck = C.closedOpen "QuickCheck" [2,7,5] [2,8]

quickpull :: C.Package
quickpull = C.closedOpen "quickpull" [0,2,0,0] [0,3]

properties :: C.Properties
properties = commonProperties
  { C.prName = "prednote-test"
  , C.prSynopsis = "Tests and QuickCheck generators to accompany prednote."
  , C.prDescription =
    [ "These are packaged separately so other packages may depend"
    , "on them."
    ]
  , C.prExtraSourceFiles =
    [ "genCabal.hs"
    , "sunlight-test.hs"
    , "current-versions.txt"
    , "minimum-versions.txt"
    ]
  }

depends :: [C.Package]
depends =
  [ base
  , rainbow
  , rainbow_tests
  , text
  , prednote
  , quickcheck
  , containers
  , quickpull
  ]

library
  :: [String]
  -- ^ Library modules
  -> C.Library
library ms = C.Library
  [ C.LibExposedModules ms
  , C.buildDepends depends
  , C.hsSourceDirs ["lib"]
  , C.ghcOptions ghcOptions
  , C.defaultLanguage C.Haskell2010
  ]

executable :: [String] -> C.Executable
executable ms = C.Executable "prednote-test"
  [ C.hsSourceDirs ["lib", "exe"]
  , C.otherModules ms
  , C.ExeMainIs "prednote-test.hs"
  , C.ghcOptions ghcOptions
  , C.defaultLanguage C.Haskell2010
  , C.buildDepends depends
  ]

visual :: C.Executable
visual = C.Executable "prednote-visual-test"
  [ C.hsSourceDirs ["lib", "visual"]
  , C.ExeMainIs "prednote-visual-test.hs"
  , C.ghcOptions ghcOptions
  , C.defaultLanguage C.Haskell2010
  , C.buildDepends depends
  ]

cabal
  :: [String]
  -- ^ Modules for library
  -> [String]
  -- ^ Modules for the executable
  -> C.Cabal
cabal msLib msExe = C.empty
  { C.cProperties = properties
  , C.cRepositories = [repo]
  , C.cLibrary = Just $ library msLib
  , C.cExecutables = [executable (msLib ++ msExe), visual]
  }

main :: IO ()
main = do
  mods <- C.modules "lib"
  modsExe <- C.modules "exe"
  C.render "genCabal.hs" $ cabal mods modsExe