<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Distribution.Simple.LocalBuildInfo</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ window.onload = function () {pageLoad();setSynopsis("mini_Distribution-Simple-LocalBuildInfo.html");}; //]]> </script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">Cabal-1.14.0: A framework for packaging Haskell software</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>portable</td></tr><tr><th>Maintainer</th><td>cabal-devel@haskell.org</td></tr><tr><th>Safe Haskell</th><td>None</td></tr></table><p class="caption">Distribution.Simple.LocalBuildInfo</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Buildable package components </a></li><li><a href="#g:2">Installation directories </a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Once a package has been configured we have resolved conditionals and dependencies, configured the compiler and other needed external programs. The <code><a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></code> is used to hold all this information. It holds the install dirs, the compiler, the exact package dependencies, the configured programs, the package database to use and a bunch of miscellaneous configure flags. It gets saved and reloaded from a file (<code>dist/setup-config</code>). It gets passed in to very many subsequent build actions. </p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:LocalBuildInfo">LocalBuildInfo</a> = <a href="#v:LocalBuildInfo">LocalBuildInfo</a> {<ul class="subs"><li><a href="#v:configFlags">configFlags</a> :: <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a></li><li><a href="#v:extraConfigArgs">extraConfigArgs</a> :: [<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>]</li><li><a href="#v:installDirTemplates">installDirTemplates</a> :: <a href="Distribution-Simple-InstallDirs.html#t:InstallDirTemplates">InstallDirTemplates</a></li><li><a href="#v:compiler">compiler</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a></li><li><a href="#v:buildDir">buildDir</a> :: <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:scratchDir">scratchDir</a> :: <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:libraryConfig">libraryConfig</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></li><li><a href="#v:executableConfigs">executableConfigs</a> :: [(<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>, <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>)]</li><li><a href="#v:compBuildOrder">compBuildOrder</a> :: [<a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a>]</li><li><a href="#v:testSuiteConfigs">testSuiteConfigs</a> :: [(<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>, <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>)]</li><li><a href="#v:benchmarkConfigs">benchmarkConfigs</a> :: [(<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>, <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>)]</li><li><a href="#v:installedPkgs">installedPkgs</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a></li><li><a href="#v:pkgDescrFile">pkgDescrFile</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a></li><li><a href="#v:localPkgDescr">localPkgDescr</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a></li><li><a href="#v:withPrograms">withPrograms</a> :: <a href="Distribution-Simple-Program.html#t:ProgramConfiguration">ProgramConfiguration</a></li><li><a href="#v:withPackageDB">withPackageDB</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a></li><li><a href="#v:withVanillaLib">withVanillaLib</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:withProfLib">withProfLib</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:withSharedLib">withSharedLib</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:withDynExe">withDynExe</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:withProfExe">withProfExe</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:withOptimization">withOptimization</a> :: <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a></li><li><a href="#v:withGHCiLib">withGHCiLib</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:splitObjs">splitObjs</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:stripExes">stripExes</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:progPrefix">progPrefix</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></li><li><a href="#v:progSuffix">progSuffix</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></li></ul>}</li><li class="src short"><a href="#v:externalPackageDeps">externalPackageDeps</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [(<a href="Distribution-Package.html#t:InstalledPackageId">InstalledPackageId</a>, <a href="Distribution-Package.html#t:PackageId">PackageId</a>)]</li><li class="src short"><a href="#v:inplacePackageId">inplacePackageId</a> :: <a href="Distribution-Package.html#t:PackageId">PackageId</a> -> <a href="Distribution-Package.html#t:InstalledPackageId">InstalledPackageId</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Component">Component</a> <ul class="subs"><li>= <a href="#v:CLib">CLib</a> <a href="Distribution-PackageDescription.html#t:Library">Library</a> </li><li>| <a href="#v:CExe">CExe</a> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a> </li><li>| <a href="#v:CTest">CTest</a> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> </li><li>| <a href="#v:CBench">CBench</a> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> </li></ul></li><li class="src short"><a href="#v:foldComponent">foldComponent</a> :: (<a href="Distribution-PackageDescription.html#t:Library">Library</a> -> a) -> (<a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> a) -> (<a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> a) -> (<a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> a) -> <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> a</li><li class="src short"><a href="#v:allComponentsBy">allComponentsBy</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> (<a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> a) -> [a]</li><li class="src short"><span class="keyword">data</span> <a href="#t:ComponentName">ComponentName</a> <ul class="subs"><li>= <a href="#v:CLibName">CLibName</a> </li><li>| <a href="#v:CExeName">CExeName</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> </li><li>| <a href="#v:CTestName">CTestName</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> </li><li>| <a href="#v:CBenchName">CBenchName</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> </li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> = <a href="#v:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> {<ul class="subs"><li><a href="#v:componentPackageDeps">componentPackageDeps</a> :: [(<a href="Distribution-Package.html#t:InstalledPackageId">InstalledPackageId</a>, <a href="Distribution-Package.html#t:PackageId">PackageId</a>)]</li></ul>}</li><li class="src short"><a href="#v:withComponentsLBI">withComponentsLBI</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> (<a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()) -> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:withLibLBI">withLibLBI</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> (<a href="Distribution-PackageDescription.html#t:Library">Library</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()) -> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:withExeLBI">withExeLBI</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> (<a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()) -> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:withTestLBI">withTestLBI</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> (<a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()) -> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</li><li class="src short">module <a href="Distribution-Simple-InstallDirs.html">Distribution.Simple.InstallDirs</a></li><li class="src short"><a href="#v:absoluteInstallDirs">absoluteInstallDirs</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-InstallDirs.html#t:CopyDest">CopyDest</a> -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:prefixRelativeInstallDirs">prefixRelativeInstallDirs</a> :: <a href="Distribution-Package.html#t:PackageId">PackageId</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a>)</li><li class="src short"><a href="#v:substPathTemplate">substPathTemplate</a> :: <a href="Distribution-Package.html#t:PackageId">PackageId</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:LocalBuildInfo" class="def">LocalBuildInfo</a> </p><div class="doc"><p>Data cached after configuration step. See also <code><a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a></code>. </p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:LocalBuildInfo" class="def">LocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:configFlags" class="def">configFlags</a> :: <a href="Distribution-Simple-Setup.html#t:ConfigFlags">ConfigFlags</a></dt><dd class="doc"><p>Options passed to the configuration step. Needed to re-run configuration when .cabal is out of date </p></dd><dt class="src"><a name="v:extraConfigArgs" class="def">extraConfigArgs</a> :: [<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>]</dt><dd class="doc"><p>Extra args on the command line for the configuration step. Needed to re-run configuration when .cabal is out of date </p></dd><dt class="src"><a name="v:installDirTemplates" class="def">installDirTemplates</a> :: <a href="Distribution-Simple-InstallDirs.html#t:InstallDirTemplates">InstallDirTemplates</a></dt><dd class="doc"><p>The installation directories for the various differnt kinds of files TODO: inplaceDirTemplates :: InstallDirs FilePath </p></dd><dt class="src"><a name="v:compiler" class="def">compiler</a> :: <a href="Distribution-Simple-Compiler.html#t:Compiler">Compiler</a></dt><dd class="doc"><p>The compiler we're building with </p></dd><dt class="src"><a name="v:buildDir" class="def">buildDir</a> :: <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a></dt><dd class="doc"><p>Where to build the package. TODO: eliminate hugs's scratchDir, use builddir </p></dd><dt class="src"><a name="v:scratchDir" class="def">scratchDir</a> :: <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a></dt><dd class="doc"><p>Where to put the result of the Hugs build. </p></dd><dt class="src"><a name="v:libraryConfig" class="def">libraryConfig</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:executableConfigs" class="def">executableConfigs</a> :: [(<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>, <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>)]</dt><dd class="doc empty"> </dd><dt class="src"><a name="v:compBuildOrder" class="def">compBuildOrder</a> :: [<a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a>]</dt><dd class="doc"><p>All the components to build, ordered by topological sort over the intrapackage dependency graph </p></dd><dt class="src"><a name="v:testSuiteConfigs" class="def">testSuiteConfigs</a> :: [(<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>, <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>)]</dt><dd class="doc empty"> </dd><dt class="src"><a name="v:benchmarkConfigs" class="def">benchmarkConfigs</a> :: [(<a href="../base-4.5.1.0/Data-String.html#t:String">String</a>, <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a>)]</dt><dd class="doc empty"> </dd><dt class="src"><a name="v:installedPkgs" class="def">installedPkgs</a> :: <a href="Distribution-Simple-PackageIndex.html#t:PackageIndex">PackageIndex</a></dt><dd class="doc"><p>All the info about the installed packages that the current package depends on (directly or indirectly). </p></dd><dt class="src"><a name="v:pkgDescrFile" class="def">pkgDescrFile</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a></dt><dd class="doc"><p>the filename containing the .cabal file, if available </p></dd><dt class="src"><a name="v:localPkgDescr" class="def">localPkgDescr</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a></dt><dd class="doc"><p>The resolved package description, that does not contain any conditionals. </p></dd><dt class="src"><a name="v:withPrograms" class="def">withPrograms</a> :: <a href="Distribution-Simple-Program.html#t:ProgramConfiguration">ProgramConfiguration</a></dt><dd class="doc"><p>Location and args for all programs </p></dd><dt class="src"><a name="v:withPackageDB" class="def">withPackageDB</a> :: <a href="Distribution-Simple-Compiler.html#t:PackageDBStack">PackageDBStack</a></dt><dd class="doc"><p>What package database to use, global/user </p></dd><dt class="src"><a name="v:withVanillaLib" class="def">withVanillaLib</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p>Whether to build normal libs. </p></dd><dt class="src"><a name="v:withProfLib" class="def">withProfLib</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p>Whether to build profiling versions of libs. </p></dd><dt class="src"><a name="v:withSharedLib" class="def">withSharedLib</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p>Whether to build shared versions of libs. </p></dd><dt class="src"><a name="v:withDynExe" class="def">withDynExe</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p>Whether to link executables dynamically </p></dd><dt class="src"><a name="v:withProfExe" class="def">withProfExe</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p>Whether to build executables for profiling. </p></dd><dt class="src"><a name="v:withOptimization" class="def">withOptimization</a> :: <a href="Distribution-Simple-Compiler.html#t:OptimisationLevel">OptimisationLevel</a></dt><dd class="doc"><p>Whether to build with optimization (if available). </p></dd><dt class="src"><a name="v:withGHCiLib" class="def">withGHCiLib</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p>Whether to build libs suitable for use with GHCi. </p></dd><dt class="src"><a name="v:splitObjs" class="def">splitObjs</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p>Use -split-objs with GHC, if available </p></dd><dt class="src"><a name="v:stripExes" class="def">stripExes</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p>Whether to strip executables during install </p></dd><dt class="src"><a name="v:progPrefix" class="def">progPrefix</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></dt><dd class="doc"><p>Prefix to be prepended to installed executables </p></dd><dt class="src"><a name="v:progSuffix" class="def">progSuffix</a> :: <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a></dt><dd class="doc"><p>Suffix to be appended to installed executables </p></dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:LocalBuildInfo" class="caption collapser" onclick="toggleSection('i:LocalBuildInfo')">Instances</p><div id="section.i:LocalBuildInfo" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:externalPackageDeps" class="def">externalPackageDeps</a> :: <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> [(<a href="Distribution-Package.html#t:InstalledPackageId">InstalledPackageId</a>, <a href="Distribution-Package.html#t:PackageId">PackageId</a>)]</p><div class="doc"><p>External package dependencies for the package as a whole. This is the union of the individual <code><a href="Distribution-Simple-LocalBuildInfo.html#v:componentPackageDeps">componentPackageDeps</a></code>, less any internal deps. </p></div></div><div class="top"><p class="src"><a name="v:inplacePackageId" class="def">inplacePackageId</a> :: <a href="Distribution-Package.html#t:PackageId">PackageId</a> -> <a href="Distribution-Package.html#t:InstalledPackageId">InstalledPackageId</a></p><div class="doc"><p>The installed package Id we use for local packages registered in the local package db. This is what is used for intra-package deps between components. </p></div></div><h1 id="g:1">Buildable package components </h1><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Component" class="def">Component</a> </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:CLib" class="def">CLib</a> <a href="Distribution-PackageDescription.html#t:Library">Library</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:CExe" class="def">CExe</a> <a href="Distribution-PackageDescription.html#t:Executable">Executable</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:CTest" class="def">CTest</a> <a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:CBench" class="def">CBench</a> <a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:Component" class="caption collapser" onclick="toggleSection('i:Component')">Instances</p><div id="section.i:Component" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:foldComponent" class="def">foldComponent</a> :: (<a href="Distribution-PackageDescription.html#t:Library">Library</a> -> a) -> (<a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> a) -> (<a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> a) -> (<a href="Distribution-PackageDescription.html#t:Benchmark">Benchmark</a> -> a) -> <a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> a</p></div><div class="top"><p class="src"><a name="v:allComponentsBy" class="def">allComponentsBy</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> (<a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> a) -> [a]</p><div class="doc"><p>Obtains all components (libs, exes, or test suites), transformed by the given function. Useful for gathering dependencies with component context. </p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:ComponentName" class="def">ComponentName</a> </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:CLibName" class="def">CLibName</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:CExeName" class="def">CExeName</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:CTestName" class="def">CTestName</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:CBenchName" class="def">CBenchName</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:ComponentName" class="caption collapser" onclick="toggleSection('i:ComponentName')">Instances</p><div id="section.i:ComponentName" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentName">ComponentName</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:ComponentLocalBuildInfo" class="def">ComponentLocalBuildInfo</a> </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ComponentLocalBuildInfo" class="def">ComponentLocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:componentPackageDeps" class="def">componentPackageDeps</a> :: [(<a href="Distribution-Package.html#t:InstalledPackageId">InstalledPackageId</a>, <a href="Distribution-Package.html#t:PackageId">PackageId</a>)]</dt><dd class="doc"><p>Resolved internal and external package dependencies for this component. The <code><a href="Distribution-PackageDescription.html#t:BuildInfo">BuildInfo</a></code> specifies a set of build dependencies that must be satisfied in terms of version ranges. This field fixes those dependencies to the specific versions available on this machine for this compiler. </p></dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:ComponentLocalBuildInfo" class="caption collapser" onclick="toggleSection('i:ComponentLocalBuildInfo')">Instances</p><div id="section.i:ComponentLocalBuildInfo" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Text-Read.html#t:Read">Read</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:withComponentsLBI" class="def">withComponentsLBI</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> (<a href="Distribution-Simple-LocalBuildInfo.html#t:Component">Component</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()) -> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</p><div class="doc"><p>Perform the action on each buildable <code><a href="Distribution-PackageDescription.html#t:Library">Library</a></code> or <code><a href="Distribution-PackageDescription.html#t:Executable">Executable</a></code> (Component) in the PackageDescription, subject to the build order specified by the <code><a href="Distribution-Simple-LocalBuildInfo.html#v:compBuildOrder">compBuildOrder</a></code> field of the given <code><a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a></code> </p></div></div><div class="top"><p class="src"><a name="v:withLibLBI" class="def">withLibLBI</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> (<a href="Distribution-PackageDescription.html#t:Library">Library</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()) -> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</p><div class="doc"><p>If the package description has a library section, call the given function with the library build info as argument. Extended version of <code><a href="Distribution-PackageDescription.html#v:withLib">withLib</a></code> that also gives corresponding build info. </p></div></div><div class="top"><p class="src"><a name="v:withExeLBI" class="def">withExeLBI</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> (<a href="Distribution-PackageDescription.html#t:Executable">Executable</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()) -> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</p><div class="doc"><p>Perform the action on each buildable <code><a href="Distribution-PackageDescription.html#t:Executable">Executable</a></code> in the package description. Extended version of <code><a href="Distribution-PackageDescription.html#v:withExe">withExe</a></code> that also gives corresponding build info. </p></div></div><div class="top"><p class="src"><a name="v:withTestLBI" class="def">withTestLBI</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> (<a href="Distribution-PackageDescription.html#t:TestSuite">TestSuite</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:ComponentLocalBuildInfo">ComponentLocalBuildInfo</a> -> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()) -> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> ()</p></div><h1 id="g:2">Installation directories </h1><div class="top"><p class="src">module <a href="Distribution-Simple-InstallDirs.html">Distribution.Simple.InstallDirs</a></p></div><div class="top"><p class="src"><a name="v:absoluteInstallDirs" class="def">absoluteInstallDirs</a> :: <a href="Distribution-PackageDescription.html#t:PackageDescription">PackageDescription</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-InstallDirs.html#t:CopyDest">CopyDest</a> -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a></p><div class="doc"><p>See <code><a href="Distribution-Simple-InstallDirs.html#v:absoluteInstallDirs">absoluteInstallDirs</a></code> </p></div></div><div class="top"><p class="src"><a name="v:prefixRelativeInstallDirs" class="def">prefixRelativeInstallDirs</a> :: <a href="Distribution-Package.html#t:PackageId">PackageId</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-InstallDirs.html#t:InstallDirs">InstallDirs</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a>)</p><div class="doc"><p>See <code><a href="Distribution-Simple-InstallDirs.html#v:prefixRelativeInstallDirs">prefixRelativeInstallDirs</a></code> </p></div></div><div class="top"><p class="src"><a name="v:substPathTemplate" class="def">substPathTemplate</a> :: <a href="Distribution-Package.html#t:PackageId">PackageId</a> -> <a href="Distribution-Simple-LocalBuildInfo.html#t:LocalBuildInfo">LocalBuildInfo</a> -> <a href="Distribution-Simple-InstallDirs.html#t:PathTemplate">PathTemplate</a> -> <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.11.0</p></div></body></html>