| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Distribution.Types.LocalBuildInfo
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.
Constructors
| NewLocalBuildInfo | |
Fields
| |
Bundled Patterns
| 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
.cabalpath
Build targets of the LocalBuildInfo.
componentNameCLBIs :: LocalBuildInfo -> ComponentName -> [ComponentLocalBuildInfo] Source #
Return all ComponentLocalBuildInfos associated with ComponentName.
In the presence of Backpack there may be more than one!
componentNameTargets' :: PackageDescription -> LocalBuildInfo -> ComponentName -> [TargetInfo] Source #
Return all TargetInfos 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 TargetInfos 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 uids, 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.