| |||||||||||||||||||||||
| |||||||||||||||||||||||
Description | |||||||||||||||||||||||
This deals with the configure phase. It provides the configure action which is given the package description and configure flags. It then tries to: configure the compiler; resolves any conditionals in the package description; resolve the package dependencies; check if all the extensions used by this package are supported by the compiler; check that all the build tools are available (including version checks if appropriate); checks for any required pkg-config packages (updating the BuildInfo with the results) Then based on all this it saves the info in the LocalBuildInfo and writes it out to the dist/setup-config file. It also displays various details to the user, the amount of information displayed depending on the verbosity level. | |||||||||||||||||||||||
Synopsis | |||||||||||||||||||||||
| |||||||||||||||||||||||
Documentation | |||||||||||||||||||||||
configure :: (Either GenericPackageDescription PackageDescription, HookedBuildInfo) -> ConfigFlags -> IO LocalBuildInfo | |||||||||||||||||||||||
Perform the "./setup configure" action. Returns the .setup-config file. | |||||||||||||||||||||||
writePersistBuildConfig :: FilePath -> LocalBuildInfo -> IO () | |||||||||||||||||||||||
After running configure, output the LocalBuildInfo to the localBuildInfoFile. | |||||||||||||||||||||||
getPersistBuildConfig :: FilePath -> IO LocalBuildInfo | |||||||||||||||||||||||
Read the localBuildInfoFile. Error if it doesn't exist. Also fail if the file containing LocalBuildInfo is older than the .cabal file, indicating that a re-configure is required. | |||||||||||||||||||||||
checkPersistBuildConfig :: FilePath -> FilePath -> IO () | |||||||||||||||||||||||
Check that localBuildInfoFile is up-to-date with respect to the .cabal file. | |||||||||||||||||||||||
maybeGetPersistBuildConfig :: FilePath -> IO (Maybe LocalBuildInfo) | |||||||||||||||||||||||
Try to read the localBuildInfoFile. | |||||||||||||||||||||||
localBuildInfoFile :: FilePath -> FilePath | |||||||||||||||||||||||
dist/setup-config | |||||||||||||||||||||||
getInstalledPackages :: Verbosity -> Compiler -> PackageDB -> ProgramConfiguration -> IO (Maybe (PackageIndex InstalledPackageInfo)) | |||||||||||||||||||||||
configDependency :: Verbosity -> PackageIndex InstalledPackageInfo -> Dependency -> IO PackageIdentifier | |||||||||||||||||||||||
Test for a package dependency and record the version we have installed. | |||||||||||||||||||||||
configCompiler :: Maybe CompilerFlavor -> Maybe FilePath -> Maybe FilePath -> ProgramConfiguration -> Verbosity -> IO (Compiler, ProgramConfiguration) | |||||||||||||||||||||||
configCompilerAux :: ConfigFlags -> IO (Compiler, ProgramConfiguration) | |||||||||||||||||||||||
ccLdOptionsBuildInfo :: [String] -> [String] -> BuildInfo | |||||||||||||||||||||||
Makes a BuildInfo from C compiler and linker flags. This can be used with the output from configuration programs like pkg-config and similar package-specific programs like mysql-config, freealut-config etc. For example: ccflags <- rawSystemProgramStdoutConf verbosity prog conf ["--cflags"] ldflags <- rawSystemProgramStdoutConf verbosity prog conf ["--libs"] return (ccldOptionsBuildInfo (words ccflags) (words ldflags)) | |||||||||||||||||||||||
tryGetConfigStateFile :: Read a => FilePath -> IO (Either String a) | |||||||||||||||||||||||
Produced by Haddock version 2.3.0 |