-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | A build tool for ATS
--
-- A collection of scripts to simplify building ATS projects.
@package ats-pkg
@version 2.4.2.0
module Language.ATS.Package
pkgToAction :: [IO ()] -> [String] -> Maybe String -> Pkg -> Rules ()
fetchCompiler :: Version -> IO ()
setupCompiler :: Version -> IO ()
-- | Build a set of targets
build :: [String] -> IO ()
-- | Build in current directory or indicated directory
buildAll :: Maybe FilePath -> IO ()
check :: Maybe FilePath -> IO Bool
mkPkg :: Bool -> Bool -> Bool -> [IO ()] -> [String] -> Maybe String -> Int -> IO ()
cleanAll :: IO ()
upgradeAtsPkg :: IO ()
fetchDeps :: CCompiler -> [IO ()] -> [String] -> [String] -> [String] -> FilePath -> Bool -> IO ()
mkBuildPlan :: ATSPackageSet -> [String] -> DepM [[ATSDependency]]
buildHelper :: Bool -> ATSDependency -> IO ()
checkPkg :: FilePath -> Bool -> IO ATSDependency
newtype Version :: *
Version :: [Integer] -> Version
-- | Data type associated with atspkg.dhall file.
data Pkg
Pkg :: [Bin] -> [Bin] -> [Lib] -> Maybe Text -> Version -> Version -> [LibDep] -> [LibDep] -> [LibDep] -> Text -> [Text] -> [Text] -> Text -> Pkg
-- | List of binaries to be built
[$sel:bin:Pkg] :: Pkg -> [Bin]
-- | List of test suites
[$sel:test:Pkg] :: Pkg -> [Bin]
-- | List of libraries to be built
[$sel:libraries:Pkg] :: Pkg -> [Lib]
-- | Optional (markdown) manpages to be converted using pandoc.
[$sel:man:Pkg] :: Pkg -> Maybe Text
-- | Library version
[$sel:version:Pkg] :: Pkg -> Version
-- | Compiler version
[$sel:compiler:Pkg] :: Pkg -> Version
-- | List of dependencies
[$sel:dependencies:Pkg] :: Pkg -> [LibDep]
-- | List of C dependencies
[$sel:clib:Pkg] :: Pkg -> [LibDep]
-- | List of ATS dependencies that should be installed as static libraries
[$sel:buildDeps:Pkg] :: Pkg -> [LibDep]
-- | The C compiler we should use
[$sel:ccompiler:Pkg] :: Pkg -> Text
-- | List of flags to pass to the C compiler
[$sel:cflags:Pkg] :: Pkg -> [Text]
-- | Directory containing ATS source to be compile to C.
[$sel:atsSource:Pkg] :: Pkg -> [Text]
-- | Directory for generated C.
[$sel:cDir:Pkg] :: Pkg -> Text
data Bin
Bin :: Text -> Text -> [Text] -> [ForeignCabal] -> [TargetPair] -> Bool -> [Text] -> [Text] -> Bin
-- | Source file (should end with .dats)
[$sel:src:Bin] :: Bin -> Text
-- | Binary to be built
[$sel:target:Bin] :: Bin -> Text
-- | Libraries to link against (e.g. [ "pthread" ])
[$sel:libs:Bin] :: Bin -> [Text]
-- | Haskell .cabal files associated with the final library we
-- want to make
[$sel:hsDeps:Bin] :: Bin -> [ForeignCabal]
-- | List of sources and targets for hs2ats
[$sel:hs2ats:Bin] :: Bin -> [TargetPair]
-- | Whether to use the garbage collector
[$sel:gcBin:Bin] :: Bin -> Bool
-- | C source files the build depends on
[$sel:cSources:Bin] :: Bin -> [Text]
-- | Extra source files the build depends on
[$sel:extras:Bin] :: Bin -> [Text]
data Lib
Lib :: Text -> [Text] -> Text -> [Text] -> [Text] -> [ForeignCabal] -> [TargetPair] -> [Text] -> [Text] -> Bool -> Lib
-- | Name of library being provided
[$sel:name:Lib] :: Lib -> Text
-- | Source files (should end with .dats) to be compiled to object
-- files
[$sel:src:Lib] :: Lib -> [Text]
[$sel:libTarget:Lib] :: Lib -> Text
-- | Libraries to link against (e.g. [ "pthread" ])
[$sel:libs:Lib] :: Lib -> [Text]
-- | Include files to be installed with the library
[$sel:includes:Lib] :: Lib -> [Text]
-- | Haskell .cabal files associated with object files
[$sel:hsDeps:Lib] :: Lib -> [ForeignCabal]
-- | Sources and targets for hs2ats
[$sel:hs2ats:Lib] :: Lib -> [TargetPair]
-- | C source files the build depends on
[$sel:cSources:Lib] :: Lib -> [Text]
-- | Other source files the build depends on
[$sel:extras:Lib] :: Lib -> [Text]
-- | Whether to make a static library
[$sel:static:Lib] :: Lib -> Bool
data ATSConstraint
ATSConstraint :: Maybe Version -> Maybe Version -> ATSConstraint
[$sel:lower:ATSConstraint] :: ATSConstraint -> Maybe Version
[$sel:upper:ATSConstraint] :: ATSConstraint -> Maybe Version
-- | Type for a dependency
data ATSDependency
ATSDependency :: Text -> Text -> Text -> Version -> [LibDep] -> ATSDependency
-- | Library name, e.g.
[$sel:libName:ATSDependency] :: ATSDependency -> Text
-- | Directory we should unpack to
[$sel:dir:ATSDependency] :: ATSDependency -> Text
-- | Url pointing to tarball
[$sel:url:ATSDependency] :: ATSDependency -> Text
[$sel:libVersion:ATSDependency] :: ATSDependency -> Version
-- | Strings containing dependencies
[$sel:libDeps:ATSDependency] :: ATSDependency -> [LibDep]
-- | This is just a tuple, except I can figure out how to use it with
-- Dhall.
data TargetPair
TargetPair :: Text -> Text -> Bool -> TargetPair
[$sel:hs:TargetPair] :: TargetPair -> Text
[$sel:ats:TargetPair] :: TargetPair -> Text
[$sel:cpphs:TargetPair] :: TargetPair -> Bool
-- | Data type containing information about Haskell components of a build.
data ForeignCabal :: *
ForeignCabal :: Maybe Text -> Text -> Text -> ForeignCabal
-- | cabal.project file to track
[projectFile] :: ForeignCabal -> Maybe Text
-- | .cabal file associated with the library
[cabalFile] :: ForeignCabal -> Text
-- | Object file to be generated
[objectFile] :: ForeignCabal -> Text
newtype ATSPackageSet
ATSPackageSet :: [ATSDependency] -> ATSPackageSet
dirLens :: Lens' ATSDependency Text
module Language.ATS.Package.Exec
exec :: IO ()