Cabal-3.12.0.0: A framework for packaging Haskell software
CopyrightIsaac Jones 2003-2005
Ross Paterson 2006
Duncan Coutts 2007-2008 2012
LicenseBSD3
Maintainercabal-devel@haskell.org
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Distribution.Simple.Build

Description

This is the entry point to actually building the modules in a package. It doesn't actually do much itself, most of the work is delegated to compiler-specific actions. It does do some non-compiler specific bits like running pre-processors.

Synopsis

Build

build Source #

Arguments

:: PackageDescription

Mostly information from the .cabal file

-> LocalBuildInfo

Configuration information

-> BuildFlags

Flags that the user passed to build

-> [PPSuffixHandler]

preprocessors to run before compiling

-> IO () 

Build the libraries and executables in this package.

Repl

repl Source #

Arguments

:: PackageDescription

Mostly information from the .cabal file

-> LocalBuildInfo

Configuration information

-> ReplFlags

Flags that the user passed to build

-> [PPSuffixHandler]

preprocessors to run before compiling

-> [String] 
-> IO () 

startInterpreter :: Verbosity -> ProgramDb -> Compiler -> Platform -> PackageDBStack -> IO () Source #

Start an interpreter without loading any package files.

Build preparation

preBuildComponent Source #

Arguments

:: Verbosity 
-> LocalBuildInfo

Configuration information

-> TargetInfo 
-> IO () 

Pre-build steps for a component: creates the autogenerated files for a particular configured component.

type AutogenFileContents = ByteString Source #

A representation of the contents of an autogenerated file.

writeBuiltinAutogenFiles :: Verbosity -> PackageDescription -> LocalBuildInfo -> ComponentLocalBuildInfo -> IO () Source #

Generate and write to disk all built-in autogenerated files for the specified component. These files will be put in the autogenerated module directory for this component (see autogenComponentsModuleDir).

This includes:

  • Paths_pkg.hs,
  • PackageInfo_pkg.hs,
  • Backpack signature files for components that are not fully instantiated,
  • cabal_macros.h.

writeAutogenFiles :: Verbosity -> LocalBuildInfo -> ComponentLocalBuildInfo -> Map AutogenFile AutogenFileContents -> IO () Source #

Write the given autogenerated files in the autogenerated modules directory for the component.

Internal package database creation

createInternalPackageDB :: Verbosity -> LocalBuildInfo -> FilePath -> IO PackageDB Source #

Initialize a new package db file for libraries defined internally to the package.