Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data LocalBuildInfo where
- NewLocalBuildInfo { }
- pattern LocalBuildInfo :: ConfigFlags -> FlagAssignment -> ComponentRequestedSpec -> [String] -> InstallDirTemplates -> Compiler -> Platform -> Maybe (SymbolicPath Pkg 'File) -> Graph ComponentLocalBuildInfo -> Map ComponentName [ComponentLocalBuildInfo] -> Map (PackageName, ComponentName) PromisedComponent -> InstalledPackageIndex -> PackageDescription -> ProgramDb -> PackageDBStack -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> ProfDetailLevel -> ProfDetailLevel -> OptimisationLevel -> DebugInfoLevel -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> [UnitId] -> Bool -> LocalBuildInfo
- localComponentId :: LocalBuildInfo -> ComponentId
- localUnitId :: LocalBuildInfo -> UnitId
- localCompatPackageKey :: LocalBuildInfo -> String
- localPackage :: LocalBuildInfo -> PackageId
- buildDir :: LocalBuildInfo -> SymbolicPath Pkg ('Dir Build)
- buildDirPBD :: PackageBuildDescr -> SymbolicPath Pkg ('Dir Build)
- setupFlagsBuildDir :: CommonSetupFlags -> SymbolicPath Pkg ('Dir Build)
- distPrefLBI :: LocalBuildInfo -> SymbolicPath Pkg ('Dir Dist)
- packageRoot :: CommonSetupFlags -> FilePath
- progPrefix :: LocalBuildInfo -> PathTemplate
- progSuffix :: LocalBuildInfo -> PathTemplate
- 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
- buildWays :: LocalBuildInfo -> (Bool -> [BuildWay], Bool -> BuildWay, BuildWay)
- 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 types
data LocalBuildInfo Source #
Data cached after configuration step. See also
ConfigFlags
.
NewLocalBuildInfo | |
|
pattern LocalBuildInfo :: ConfigFlags -> FlagAssignment -> ComponentRequestedSpec -> [String] -> InstallDirTemplates -> Compiler -> Platform -> Maybe (SymbolicPath Pkg 'File) -> Graph ComponentLocalBuildInfo -> Map ComponentName [ComponentLocalBuildInfo] -> Map (PackageName, ComponentName) PromisedComponent -> InstalledPackageIndex -> PackageDescription -> ProgramDb -> PackageDBStack -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> ProfDetailLevel -> ProfDetailLevel -> OptimisationLevel -> DebugInfoLevel -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> [UnitId] -> Bool -> LocalBuildInfo | This pattern synonym is for backwards compatibility, to adapt
to |
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
buildDir :: LocalBuildInfo -> SymbolicPath Pkg ('Dir Build) Source #
buildDirPBD :: PackageBuildDescr -> SymbolicPath Pkg ('Dir Build) Source #
setupFlagsBuildDir :: CommonSetupFlags -> SymbolicPath Pkg ('Dir Build) Source #
distPrefLBI :: LocalBuildInfo -> SymbolicPath Pkg ('Dir Dist) Source #
packageRoot :: CommonSetupFlags -> FilePath Source #
The (relative or absolute) path to the package root, based on
- the working directory flag
- the
.cabal
path
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.
buildWays :: LocalBuildInfo -> (Bool -> [BuildWay], Bool -> BuildWay, BuildWay) Source #
Returns a list of ways, in the order which they should be built, and the way we build executable and foreign library components.
Ideally all this info should be fixed at configure time and not dependent on
additional info but LocalBuildInfo
is per package (not per component) so it's
currently not possible to configure components to be built in certain ways.
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.