Copyright | Isaac Jones 2003-2004 Duncan Coutts 2008 |
---|---|
License | BSD3 |
Maintainer | cabal-devel@haskell.org |
Portability | portable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
A bunch of dirs, paths and file names used for intermediate build steps.
Synopsis
- defaultDistPref :: SymbolicPath Pkg (Dir Dist)
- srcPref :: FilePath -> FilePath
- buildInfoPref :: SymbolicPath root (Dir Dist) -> SymbolicPath root File
- haddockDirName :: HaddockTarget -> PackageDescription -> FilePath
- haddockLibraryDirPath :: HaddockTarget -> PackageDescription -> Library -> FilePath
- haddockTestDirPath :: HaddockTarget -> PackageDescription -> TestSuite -> FilePath
- haddockBenchmarkDirPath :: HaddockTarget -> PackageDescription -> Benchmark -> FilePath
- hscolourPref :: HaddockTarget -> SymbolicPath root (Dir Dist) -> PackageDescription -> SymbolicPath root (Dir Artifacts)
- haddockPref :: HaddockTarget -> SymbolicPath root (Dir Dist) -> PackageDescription -> SymbolicPath root (Dir Artifacts)
- autogenPackageModulesDir :: LocalBuildInfo -> SymbolicPath Pkg (Dir Source)
- autogenComponentModulesDir :: LocalBuildInfo -> ComponentLocalBuildInfo -> SymbolicPath Pkg (Dir Source)
- autogenPathsModuleName :: PackageDescription -> ModuleName
- autogenPackageInfoModuleName :: PackageDescription -> ModuleName
- cppHeaderName :: String
- haddockPath :: PackageDescription -> FilePath
- haddockPackageLibraryName :: PackageDescription -> Library -> String
- haddockPackageLibraryName' :: PackageName -> LibraryName -> String
- haddockLibraryName :: PackageDescription -> Library -> String
- haddockLibraryPath :: PackageDescription -> Library -> FilePath
- mkGenericStaticLibName :: String -> String
- mkLibName :: UnitId -> String
- mkProfLibName :: UnitId -> String
- mkGenericSharedLibName :: Platform -> CompilerId -> String -> String
- mkSharedLibName :: Platform -> CompilerId -> UnitId -> String
- mkProfSharedLibName :: Platform -> CompilerId -> UnitId -> String
- mkStaticLibName :: Platform -> CompilerId -> UnitId -> String
- mkGenericSharedBundledLibName :: Platform -> CompilerId -> String -> String
- exeExtension :: Platform -> String
- objExtension :: String
- dllExtension :: Platform -> String
- staticLibExtension :: Platform -> String
- getSourceFiles :: Verbosity -> Maybe (SymbolicPath CWD ('Dir Pkg)) -> [SymbolicPathX allowAbsolute Pkg (Dir Source)] -> [ModuleName] -> IO [(ModuleName, SymbolicPathX allowAbsolute Pkg File)]
- getLibSourceFiles :: Verbosity -> LocalBuildInfo -> Library -> ComponentLocalBuildInfo -> IO [(ModuleName, SymbolicPath Pkg File)]
- getExeSourceFiles :: Verbosity -> LocalBuildInfo -> Executable -> ComponentLocalBuildInfo -> IO [(ModuleName, SymbolicPath Pkg 'File)]
- getTestSourceFiles :: Verbosity -> LocalBuildInfo -> TestSuite -> ComponentLocalBuildInfo -> IO [(ModuleName, SymbolicPath Pkg 'File)]
- getBenchmarkSourceFiles :: Verbosity -> LocalBuildInfo -> Benchmark -> ComponentLocalBuildInfo -> IO [(ModuleName, SymbolicPath Pkg 'File)]
- getFLibSourceFiles :: Verbosity -> LocalBuildInfo -> ForeignLib -> ComponentLocalBuildInfo -> IO [(ModuleName, SymbolicPath Pkg File)]
- exeBuildDir :: LocalBuildInfo -> Executable -> SymbolicPath Pkg (Dir Build)
- flibBuildDir :: LocalBuildInfo -> ForeignLib -> SymbolicPath Pkg (Dir Build)
- stubName :: TestSuite -> FilePath
- testBuildDir :: LocalBuildInfo -> TestSuite -> SymbolicPath Pkg (Dir Build)
- benchmarkBuildDir :: LocalBuildInfo -> Benchmark -> SymbolicPath Pkg (Dir Build)
Documentation
defaultDistPref :: SymbolicPath Pkg (Dir Dist) Source #
buildInfoPref :: SymbolicPath root (Dir Dist) -> SymbolicPath root File Source #
Build info json file, generated in every build
haddockDirName :: HaddockTarget -> PackageDescription -> FilePath Source #
This is the name of the directory in which the generated haddocks
should be stored. It does not include the distdochtml
prefix.
It is also used by `haddock-project` when constructing its output directory.
haddockLibraryDirPath :: HaddockTarget -> PackageDescription -> Library -> FilePath Source #
This is the name of the directory in which the generated haddocks for
a (sub)library should be stored. It does not include the distdochtml
prefix.
It is also used by `haddock-project` when constructing its output directory.
haddockTestDirPath :: HaddockTarget -> PackageDescription -> TestSuite -> FilePath Source #
haddockBenchmarkDirPath :: HaddockTarget -> PackageDescription -> Benchmark -> FilePath Source #
hscolourPref :: HaddockTarget -> SymbolicPath root (Dir Dist) -> PackageDescription -> SymbolicPath root (Dir Artifacts) Source #
haddockPref :: HaddockTarget -> SymbolicPath root (Dir Dist) -> PackageDescription -> SymbolicPath root (Dir Artifacts) Source #
The directory to which generated haddock documentation should be written.
autogenPackageModulesDir :: LocalBuildInfo -> SymbolicPath Pkg (Dir Source) Source #
The directory in which we put auto-generated modules for EVERY component in the package.
autogenComponentModulesDir :: LocalBuildInfo -> ComponentLocalBuildInfo -> SymbolicPath Pkg (Dir Source) Source #
The directory in which we put auto-generated modules for a particular component.
autogenPathsModuleName :: PackageDescription -> ModuleName Source #
The name of the auto-generated Paths_* module associated with a package
autogenPackageInfoModuleName :: PackageDescription -> ModuleName Source #
The name of the auto-generated PackageInfo_* module associated with a package
haddockPath :: PackageDescription -> FilePath Source #
haddockPackageLibraryName :: PackageDescription -> Library -> String Source #
haddockPackageLibraryName' :: PackageName -> LibraryName -> String Source #
haddockLibraryName :: PackageDescription -> Library -> String Source #
A name of a (sub)library used by haddock.
haddockLibraryPath :: PackageDescription -> Library -> FilePath Source #
File path of the ".haddock" file.
mkGenericStaticLibName :: String -> String Source #
Create a library name for a static library from a given name.
Prepends lib
and appends the static library extension (.a
).
mkProfLibName :: UnitId -> String Source #
mkGenericSharedLibName :: Platform -> CompilerId -> String -> String Source #
Create a library name for a shared library from a given name.
Prepends lib
and appends the -<compilerFlavour><compilerVersion>
as well as the shared library extension.
mkSharedLibName :: Platform -> CompilerId -> UnitId -> String Source #
mkProfSharedLibName :: Platform -> CompilerId -> UnitId -> String Source #
mkStaticLibName :: Platform -> CompilerId -> UnitId -> String Source #
mkGenericSharedBundledLibName :: Platform -> CompilerId -> String -> String Source #
Create a library name for a bundled shared library from a given name.
This matches the naming convention for shared libraries as implemented in
GHC's packageHsLibs function in the Packages module.
If the given name is prefixed with HS, then this prepends lib
and appends
the compiler flavour/version and shared library extension e.g.:
"HSrts-1.0" -> "libHSrts-1.0-ghc8.7.20190109.so"
Otherwise the given name should be prefixed with C
, then this strips the
C
, prepends lib
and appends the shared library extension e.g.:
Cffi -> "libffi.so"
exeExtension :: Platform -> String Source #
Default extension for executable files on the current platform.
(typically ""
on Unix and "exe"
on Windows or OS/2)
objExtension :: String Source #
Extension for object files. For GHC the extension is "o"
.
dllExtension :: Platform -> String Source #
Extension for dynamically linked (or shared) libraries
(typically "so"
on Unix and "dll"
on Windows)
staticLibExtension :: Platform -> String Source #
Extension for static libraries
TODO: Here, as well as in dllExtension, it's really the target OS that we're interested in, not the build OS.
Source files & build directories
getSourceFiles :: Verbosity -> Maybe (SymbolicPath CWD ('Dir Pkg)) -> [SymbolicPathX allowAbsolute Pkg (Dir Source)] -> [ModuleName] -> IO [(ModuleName, SymbolicPathX allowAbsolute Pkg File)] Source #
getLibSourceFiles :: Verbosity -> LocalBuildInfo -> Library -> ComponentLocalBuildInfo -> IO [(ModuleName, SymbolicPath Pkg File)] Source #
getExeSourceFiles :: Verbosity -> LocalBuildInfo -> Executable -> ComponentLocalBuildInfo -> IO [(ModuleName, SymbolicPath Pkg 'File)] Source #
getTestSourceFiles :: Verbosity -> LocalBuildInfo -> TestSuite -> ComponentLocalBuildInfo -> IO [(ModuleName, SymbolicPath Pkg 'File)] Source #
getBenchmarkSourceFiles :: Verbosity -> LocalBuildInfo -> Benchmark -> ComponentLocalBuildInfo -> IO [(ModuleName, SymbolicPath Pkg 'File)] Source #
getFLibSourceFiles :: Verbosity -> LocalBuildInfo -> ForeignLib -> ComponentLocalBuildInfo -> IO [(ModuleName, SymbolicPath Pkg File)] Source #
exeBuildDir :: LocalBuildInfo -> Executable -> SymbolicPath Pkg (Dir Build) Source #
The directory where we put build results for an executable
flibBuildDir :: LocalBuildInfo -> ForeignLib -> SymbolicPath Pkg (Dir Build) Source #
The directory where we put build results for a foreign library
stubName :: TestSuite -> FilePath Source #
The name of the stub executable associated with a library TestSuite
.
testBuildDir :: LocalBuildInfo -> TestSuite -> SymbolicPath Pkg (Dir Build) Source #
The directory where we put build results for a test suite
benchmarkBuildDir :: LocalBuildInfo -> Benchmark -> SymbolicPath Pkg (Dir Build) Source #
The directory where we put build results for a benchmark suite