Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- atsBin :: ATSTarget -> Rules ()
- cgen :: ATSToolConfig -> [FilePath] -> [FilePath] -> FilePath -> FilePattern -> Rules ()
- genATS :: FilePath -> FilePattern -> Bool -> Rules ()
- atsLex :: FilePath -> FilePattern -> Rules ()
- cabalForeign :: HsCompiler -> ForeignCabal -> Rules ()
- hsAts :: ATSGen -> Rules ()
- cleanATS :: Action ()
- getSubdirs :: FilePath -> IO [FilePath]
- ccToDir :: CCompiler -> String
- withPF :: Action (Exit, Stderr String, Stdout String) -> Action (Exit, Stderr String, Stdout String)
- patscc :: ATSToolConfig -> String
- patsopt :: ATSToolConfig -> String
- data ForeignCabal = ForeignCabal {
- projectFile :: Maybe Text
- cabalFile :: Text
- objectFile :: Text
- data ATSTarget = ATSTarget {
- _cFlags :: [String]
- _toolConfig :: ATSToolConfig
- _gc :: Bool
- _libs :: [String]
- _src :: [FilePath]
- _hsLibs :: [ForeignCabal]
- _genTargets :: [ATSGen]
- _linkTargets :: [HATSGen]
- _binTarget :: FilePath
- _otherDeps :: [FilePath]
- _tgtType :: ArtifactType
- _strip :: Bool
- data ATSToolConfig = ATSToolConfig {
- _patsHome :: String
- _patsHomeLocs :: String
- _hasPretty :: Bool
- _cc :: CCompiler
- _linkStatic :: Bool
- _solver :: Solver
- _linkATSLib :: Bool
- _patsFlags :: [String]
- data CCompiler
- data ArtifactType
- data ATSGen = ATSGen {}
- data HATSGen = HATSGen {}
- data Solver
Shake Rules
:: ATSToolConfig | |
-> [FilePath] | Extra files to track |
-> [FilePath] | ATS source that may be generated. |
-> FilePath | ATS source |
-> FilePattern | Pattern for C file to be generated |
-> Rules () |
Generate C code from ATS code.
:: FilePath | Haskell source |
-> FilePattern |
|
-> Bool | Whether to call cpphs preprocessor |
-> Rules () |
Given a plain Haskell source file, generate a .sats
file containing
the equivalent types.
:: FilePath | Filepath of |
-> FilePattern | File pattern for generated output |
-> Rules () |
Build a .lats
file using atslex
.
cabalForeign :: HsCompiler -> ForeignCabal -> Rules () Source #
These rules take a .cabal
file and the .o
file to be produced from
them, building the .o
file.
Shake actions
Helper functions
ccToDir :: CCompiler -> String Source #
Given a C compiler, return the appropriate directory for its globally installed artifacts. This is used to keep libraries built for different platforms separate.
Filter any generated errors with pats-filter
.
Environment/configuration
patscc :: ATSToolConfig -> String Source #
Absolute path to patscc
patsopt :: ATSToolConfig -> String Source #
Absolute path to patsopt
Types
data ForeignCabal Source #
Data type containing information about Haskell components of a build. Any functions exposed in the object file will be callable in C or ATS code.
ForeignCabal | |
|
Instances
Type for binary and library builds with ATS.
ATSTarget | |
|
Instances
data ATSToolConfig Source #
Information about where to find patscc
and patsopt
.
ATSToolConfig | |
|
Instances
A data type representing the C compiler to be used.
Instances
data ArtifactType Source #
Instances
Generic ArtifactType Source # | |
Defined in Development.Shake.ATS.Type type Rep ArtifactType :: Type -> Type # from :: ArtifactType -> Rep ArtifactType x # to :: Rep ArtifactType x -> ArtifactType # | |
Binary ArtifactType Source # | |
Defined in Development.Shake.ATS.Type | |
type Rep ArtifactType Source # | |
Defined in Development.Shake.ATS.Type type Rep ArtifactType = D1 (MetaData "ArtifactType" "Development.Shake.ATS.Type" "shake-ats-1.10.2.0-JL2gBfy1piMBMi2UTYlGKd" False) (C1 (MetaCons "StaticLibrary" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "Executable" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "SharedLibrary" PrefixI False) (U1 :: Type -> Type))) |
Instances
Generic ATSGen Source # | |
Binary ATSGen Source # | |
type Rep ATSGen Source # | |
Defined in Development.Shake.ATS.Type type Rep ATSGen = D1 (MetaData "ATSGen" "Development.Shake.ATS.Type" "shake-ats-1.10.2.0-JL2gBfy1piMBMi2UTYlGKd" False) (C1 (MetaCons "ATSGen" PrefixI True) (S1 (MetaSel (Just "_hsFile") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 FilePath) :*: (S1 (MetaSel (Just "_atsTarget") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 FilePath) :*: S1 (MetaSel (Just "_cpphs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool)))) |
Instances
Generic HATSGen Source # | |
Binary HATSGen Source # | |
type Rep HATSGen Source # | |
Defined in Development.Shake.ATS.Type type Rep HATSGen = D1 (MetaData "HATSGen" "Development.Shake.ATS.Type" "shake-ats-1.10.2.0-JL2gBfy1piMBMi2UTYlGKd" False) (C1 (MetaCons "HATSGen" PrefixI True) (S1 (MetaSel (Just "satsFile") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 FilePath) :*: S1 (MetaSel (Just "hatsFile") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 FilePath))) |
Instances
Generic Solver Source # | |
Binary Solver Source # | |
type Rep Solver Source # | |
Defined in Development.Shake.ATS.Type type Rep Solver = D1 (MetaData "Solver" "Development.Shake.ATS.Type" "shake-ats-1.10.2.0-JL2gBfy1piMBMi2UTYlGKd" False) (C1 (MetaCons "PatsSolve" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "Z3" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Ignore" PrefixI False) (U1 :: Type -> Type))) |