Cabal-2.0.1.0: A framework for packaging Haskell software

Copyright | Isaac Jones 2003-2004 Duncan Coutts 2008
License | BSD3
Maintainer | cabal-devel@haskell.org
Portability | portable
Safe Haskell | None
Language | Haskell2010

Distribution.Simple.BuildPaths

Contents

- Source files & build directories

Description

A bunch of dirs, paths and file names used for intermediate build steps.

Synopsis

- defaultDistPref :: FilePath
- srcPref :: FilePath -> FilePath
- haddockDirName :: HaddockTarget -> PackageDescription -> FilePath
- hscolourPref :: HaddockTarget -> FilePath -> PackageDescription -> FilePath
- haddockPref :: HaddockTarget -> FilePath -> PackageDescription -> FilePath
- autogenModulesDir :: LocalBuildInfo -> String
- autogenPackageModulesDir :: LocalBuildInfo -> String
- autogenComponentModulesDir :: LocalBuildInfo -> ComponentLocalBuildInfo -> String
- autogenModuleName :: PackageDescription -> ModuleName
- autogenPathsModuleName :: PackageDescription -> ModuleName
- cppHeaderName :: String
- haddockName :: PackageDescription -> FilePath
- mkLibName :: UnitId -> String
- mkProfLibName :: UnitId -> String
- mkSharedLibName :: CompilerId -> UnitId -> String
- exeExtension :: String
- objExtension :: String
- dllExtension :: String
- staticLibExtension :: String
- getSourceFiles :: Verbosity -> [FilePath] -> [ModuleName] -> IO [(ModuleName, FilePath)]
- getLibSourceFiles :: Verbosity -> LocalBuildInfo -> Library -> ComponentLocalBuildInfo -> IO [(ModuleName, FilePath)]
- getExeSourceFiles :: Verbosity -> LocalBuildInfo -> Executable -> ComponentLocalBuildInfo -> IO [(ModuleName, FilePath)]
- getFLibSourceFiles :: Verbosity -> LocalBuildInfo -> ForeignLib -> ComponentLocalBuildInfo -> IO [(ModuleName, FilePath)]
- exeBuildDir :: LocalBuildInfo -> Executable -> FilePath
- flibBuildDir :: LocalBuildInfo -> ForeignLib -> FilePath

# Documentation

defaultDistPref :: FilePath #

srcPref :: FilePath -> FilePath #

haddockDirName :: HaddockTarget -> PackageDescription -> FilePath #

This is the name of the directory in which the generated haddocks should be stored. It does not include the `distdochtml` prefix.

hscolourPref :: HaddockTarget -> FilePath -> PackageDescription -> FilePath #

haddockPref :: HaddockTarget -> FilePath -> PackageDescription -> FilePath #

The directory to which generated haddock documentation should be written.

autogenModulesDir :: LocalBuildInfo -> String #

Deprecated: If you can, use `autogenComponentModulesDir` instead, but if you really wanted package-global generated modules, use `autogenPackageModulesDir`. In Cabal 2.0, we avoid using autogenerated files which apply to all components, because the information you often want in these files, e.g., dependency information, is best specified per component, so that reconfiguring a different component (e.g., enabling tests) doesn't force the entire to be rebuilt. `autogenPackageModulesDir` still provides a place to put files you want to apply to the entire package, but most users of `autogenModulesDir` should seriously consider `autogenComponentModulesDir` if you really wanted the module to apply to one component.

The directory in which we put auto-generated modules for EVERY component in the package. See deprecation notice.

autogenPackageModulesDir :: LocalBuildInfo -> String #

The directory in which we put auto-generated modules for EVERY component in the package.

autogenComponentModulesDir :: LocalBuildInfo -> ComponentLocalBuildInfo -> String #

The directory in which we put auto-generated modules for a particular component.

autogenModuleName :: PackageDescription -> ModuleName #

Deprecated: Use autogenPathsModuleName instead

The name of the auto-generated module associated with a package

autogenPathsModuleName :: PackageDescription -> ModuleName #

The name of the auto-generated Paths_* module associated with a package

cppHeaderName :: String #

haddockName :: PackageDescription -> FilePath #

mkLibName :: UnitId -> String #

mkProfLibName :: UnitId -> String #

mkSharedLibName :: CompilerId -> UnitId -> String #

exeExtension :: String #

Default extension for executable files on the current platform. (typically `""` on Unix and `"exe"` on Windows or OS/2)

objExtension :: String #

Extension for object files. For GHC the extension is `"o"`.

dllExtension :: String #

Extension for dynamically linked (or shared) libraries (typically `"so"` on Unix and `"dll"` on Windows)

staticLibExtension :: String #

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 -> [FilePath] -> [ModuleName] -> IO [(ModuleName, FilePath)] #

getLibSourceFiles :: Verbosity -> LocalBuildInfo -> Library -> ComponentLocalBuildInfo -> IO [(ModuleName, FilePath)] #

getExeSourceFiles :: Verbosity -> LocalBuildInfo -> Executable -> ComponentLocalBuildInfo -> IO [(ModuleName, FilePath)] #

getFLibSourceFiles :: Verbosity -> LocalBuildInfo -> ForeignLib -> ComponentLocalBuildInfo -> IO [(ModuleName, FilePath)] #

exeBuildDir :: LocalBuildInfo -> Executable -> FilePath #

The directory where we put build results for an executable

flibBuildDir :: LocalBuildInfo -> ForeignLib -> FilePath #

The directory where we put build results for a foreign library