Safe Haskell | None |
---|---|
Language | Haskell2010 |
Distribution.Types.LocalBuildInfo
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 ]
- 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
.
Constructors
LocalBuildInfo | |
Fields
|
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
PakcageDescription
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
PakcageDescription
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
PakcageDescription
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
PakcageDescription
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
PakcageDescription
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
PakcageDescription
handy (NOT from the
LocalBuildInfo
), try using the primed version of the function, which takes it as an extra argument.