Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data LocalBuildInfo = LocalBuildInfo {
- configFlags :: ConfigFlags
- flagAssignment :: FlagAssignment
- componentEnabledSpec :: ComponentRequestedSpec
- extraConfigArgs :: [String]
- installDirTemplates :: InstallDirTemplates
- compiler :: Compiler
- hostPlatform :: Platform
- buildDir :: FilePath
- cabalFilePath :: Maybe FilePath
- componentGraph :: Graph ComponentLocalBuildInfo
- componentNameMap :: Map ComponentName [ComponentLocalBuildInfo]
- promisedPkgs :: Map (PackageName, ComponentName) ComponentId
- installedPkgs :: InstalledPackageIndex
- pkgDescrFile :: Maybe FilePath
- localPkgDescr :: PackageDescription
- withPrograms :: ProgramDb
- withPackageDB :: PackageDBStack
- withVanillaLib :: Bool
- withProfLib :: Bool
- withSharedLib :: Bool
- withStaticLib :: Bool
- withDynExe :: Bool
- withFullyStaticExe :: Bool
- withProfExe :: Bool
- withProfLibDetail :: ProfDetailLevel
- withProfExeDetail :: ProfDetailLevel
- withOptimization :: OptimisationLevel
- withDebugInfo :: DebugInfoLevel
- withGHCiLib :: Bool
- splitSections :: Bool
- splitObjs :: Bool
- stripExes :: Bool
- stripLibs :: Bool
- exeCoverage :: Bool
- libCoverage :: Bool
- progPrefix :: PathTemplate
- progSuffix :: PathTemplate
- relocatable :: Bool
- localComponentId :: LocalBuildInfo -> ComponentId
- localUnitId :: LocalBuildInfo -> UnitId
- localCompatPackageKey :: LocalBuildInfo -> String
- localPackage :: LocalBuildInfo -> PackageId
- componentNameCLBIs :: LocalBuildInfo -> ComponentName -> [ComponentLocalBuildInfo]
- componentNameTargets' :: PackageDescription -> LocalBuildInfo -> ComponentName -> [TargetInfo]
- unitIdTarget' :: PackageDescription -> LocalBuildInfo -> UnitId -> Maybe TargetInfo
- allTargetsInBuildOrder' :: PackageDescription -> LocalBuildInfo -> [TargetInfo]
- withAllTargetsInBuildOrder' :: PackageDescription -> LocalBuildInfo -> (TargetInfo -> IO ()) -> IO ()
- neededTargetsInBuildOrder' :: PackageDescription -> LocalBuildInfo -> [UnitId] -> [TargetInfo]
- withNeededTargetsInBuildOrder' :: PackageDescription -> LocalBuildInfo -> [UnitId] -> (TargetInfo -> IO ()) -> IO ()
- testCoverage :: LocalBuildInfo -> Bool
- componentNameTargets :: LocalBuildInfo -> ComponentName -> [TargetInfo]
- unitIdTarget :: LocalBuildInfo -> UnitId -> Maybe TargetInfo
- allTargetsInBuildOrder :: LocalBuildInfo -> [TargetInfo]
- withAllTargetsInBuildOrder :: LocalBuildInfo -> (TargetInfo -> IO ()) -> IO ()
- neededTargetsInBuildOrder :: LocalBuildInfo -> [UnitId] -> [TargetInfo]
- withNeededTargetsInBuildOrder :: LocalBuildInfo -> [UnitId] -> (TargetInfo -> IO ()) -> IO ()
The type
data LocalBuildInfo Source #
Data cached after configuration step. See also
ConfigFlags
.
LocalBuildInfo | |
|
Instances
Convenience accessors
localComponentId :: LocalBuildInfo -> ComponentId Source #
Extract the ComponentId
from the public library component of a
LocalBuildInfo
if it exists, or make a fake component ID based
on the package ID.
localUnitId :: LocalBuildInfo -> UnitId Source #
Extract the UnitId
from the library component of a
LocalBuildInfo
if it exists, or make a fake unit ID based on
the package ID.
localCompatPackageKey :: LocalBuildInfo -> String Source #
Extract the compatibility package key from the public library component of a
LocalBuildInfo
if it exists, or make a fake package key based
on the package ID.
localPackage :: LocalBuildInfo -> PackageId Source #
Extract the PackageIdentifier
of a LocalBuildInfo
.
This is a "safe" use of localPkgDescr
Build targets of the LocalBuildInfo
.
componentNameCLBIs :: LocalBuildInfo -> ComponentName -> [ComponentLocalBuildInfo] Source #
Return all ComponentLocalBuildInfo
s associated with ComponentName
.
In the presence of Backpack there may be more than one!
componentNameTargets' :: PackageDescription -> LocalBuildInfo -> ComponentName -> [TargetInfo] Source #
Return all TargetInfo
s associated with ComponentName
.
In the presence of Backpack there may be more than one!
Has a prime because it takes a PackageDescription
argument
which may disagree with localPkgDescr
in LocalBuildInfo
.
unitIdTarget' :: PackageDescription -> LocalBuildInfo -> UnitId -> Maybe TargetInfo Source #
allTargetsInBuildOrder' :: PackageDescription -> LocalBuildInfo -> [TargetInfo] Source #
Return the list of default TargetInfo
s associated with a
configured package, in the order they need to be built.
Has a prime because it takes a PackageDescription
argument
which may disagree with localPkgDescr
in LocalBuildInfo
.
withAllTargetsInBuildOrder' :: PackageDescription -> LocalBuildInfo -> (TargetInfo -> IO ()) -> IO () Source #
Execute f
for every TargetInfo
in the package, respecting the
build dependency order. (TODO: We should use Shake!)
Has a prime because it takes a PackageDescription
argument
which may disagree with localPkgDescr
in LocalBuildInfo
.
neededTargetsInBuildOrder' :: PackageDescription -> LocalBuildInfo -> [UnitId] -> [TargetInfo] Source #
Return the list of all targets needed to build the uids
, in
the order they need to be built.
Has a prime because it takes a PackageDescription
argument
which may disagree with localPkgDescr
in LocalBuildInfo
.
withNeededTargetsInBuildOrder' :: PackageDescription -> LocalBuildInfo -> [UnitId] -> (TargetInfo -> IO ()) -> IO () Source #
Execute f
for every TargetInfo
needed to build uid
s, respecting
the build dependency order.
Has a prime because it takes a PackageDescription
argument
which may disagree with localPkgDescr
in LocalBuildInfo
.
testCoverage :: LocalBuildInfo -> Bool Source #
Is coverage enabled for test suites? In practice, this requires library and executable profiling to be enabled.
Functions you SHOULD NOT USE (yet), but are defined here to
componentNameTargets :: LocalBuildInfo -> ComponentName -> [TargetInfo] Source #
Warning: By using this function, you may be introducing a bug where you retrieve a Component
which does not have HookedBuildInfo
applied to it. See the documentation for HookedBuildInfo
for an explanation of the issue. If you have a PackageDescription
handy (NOT from the LocalBuildInfo
), try using the primed version of the function, which takes it as an extra argument.
unitIdTarget :: LocalBuildInfo -> UnitId -> Maybe TargetInfo Source #
Warning: By using this function, you may be introducing a bug where you retrieve a Component
which does not have HookedBuildInfo
applied to it. See the documentation for HookedBuildInfo
for an explanation of the issue. If you have a PackageDescription
handy (NOT from the LocalBuildInfo
), try using the primed version of the function, which takes it as an extra argument.
allTargetsInBuildOrder :: LocalBuildInfo -> [TargetInfo] Source #
Warning: By using this function, you may be introducing a bug where you retrieve a Component
which does not have HookedBuildInfo
applied to it. See the documentation for HookedBuildInfo
for an explanation of the issue. If you have a PackageDescription
handy (NOT from the LocalBuildInfo
), try using the primed version of the function, which takes it as an extra argument.
withAllTargetsInBuildOrder :: LocalBuildInfo -> (TargetInfo -> IO ()) -> IO () Source #
Warning: By using this function, you may be introducing a bug where you retrieve a Component
which does not have HookedBuildInfo
applied to it. See the documentation for HookedBuildInfo
for an explanation of the issue. If you have a PackageDescription
handy (NOT from the LocalBuildInfo
), try using the primed version of the function, which takes it as an extra argument.
neededTargetsInBuildOrder :: LocalBuildInfo -> [UnitId] -> [TargetInfo] Source #
Warning: By using this function, you may be introducing a bug where you retrieve a Component
which does not have HookedBuildInfo
applied to it. See the documentation for HookedBuildInfo
for an explanation of the issue. If you have a PackageDescription
handy (NOT from the LocalBuildInfo
), try using the primed version of the function, which takes it as an extra argument.
withNeededTargetsInBuildOrder :: LocalBuildInfo -> [UnitId] -> (TargetInfo -> IO ()) -> IO () Source #
Warning: By using this function, you may be introducing a bug where you retrieve a Component
which does not have HookedBuildInfo
applied to it. See the documentation for HookedBuildInfo
for an explanation of the issue. If you have a PackageDescription
handy (NOT from the LocalBuildInfo
), try using the primed version of the function, which takes it as an extra argument.