| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Distribution.Types.LocalBuildInfo
Contents
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
- 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 ()
- componentsConfigs :: LocalBuildInfo -> [(ComponentName, ComponentLocalBuildInfo, [ComponentName])]
- externalPackageDeps :: LocalBuildInfo -> [(UnitId, MungedPackageId)]
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 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.
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.
Backwards compatibility.
componentsConfigs :: LocalBuildInfo -> [(ComponentName, ComponentLocalBuildInfo, [ComponentName])] Source #
Deprecated: Use componentGraph instead; you can get a list of ComponentLocalBuildInfo with toList. There's not a good way to get the list of ComponentNames the ComponentLocalBuildInfo depends on because this query doesn't make sense; the graph is indexed by UnitId not ComponentName. Given a UnitId you can lookup the ComponentLocalBuildInfo (getCLBI) and then get the ComponentName ('componentLocalName]). To be removed in Cabal 3.0
externalPackageDeps :: LocalBuildInfo -> [(UnitId, MungedPackageId)] Source #
Deprecated: You almost certainly don't want this function, which agglomerates the dependencies of ALL enabled components. If you're using this to write out information on your dependencies, read off the dependencies directly from the actual component in question. To be removed in Cabal 3.0
External package dependencies for the package as a whole. This is the
union of the individual componentPackageDeps, less any internal deps.