Cabal-1.3.4: A framework for packaging Haskell softwareContentsIndex
Distribution.Simple.Setup
Portabilityportable
Stabilityalpha
MaintainerIsaac Jones <ijones@syntaxpolice.org>
Description
Explanation: Data types and parser for the standard command-line setup. Will also return commands it doesn't know about.
Synopsis
module Distribution.Simple.Compiler
data GlobalFlags = GlobalFlags {
globalVersion :: (Flag Bool)
globalNumericVersion :: (Flag Bool)
}
emptyGlobalFlags :: GlobalFlags
defaultGlobalFlags :: GlobalFlags
globalCommand :: CommandUI GlobalFlags
data ConfigFlags = ConfigFlags {
configPrograms :: ProgramConfiguration
configProgramPaths :: [(String, FilePath)]
configProgramArgs :: [(String, [String])]
configHcFlavor :: (Flag CompilerFlavor)
configHcPath :: (Flag FilePath)
configHcPkg :: (Flag FilePath)
configVanillaLib :: (Flag Bool)
configProfLib :: (Flag Bool)
configSharedLib :: (Flag Bool)
configProfExe :: (Flag Bool)
configConfigureArgs :: [String]
configOptimization :: (Flag Bool)
configInstallDirs :: (InstallDirs (Flag PathTemplate))
configScratchDir :: (Flag FilePath)
configVerbose :: (Flag Verbosity)
configUserInstall :: (Flag Bool)
configPackageDB :: (Flag PackageDB)
configGHCiLib :: (Flag Bool)
configSplitObjs :: (Flag Bool)
configConfigurationsFlags :: [(String, Bool)]
}
emptyConfigFlags :: ConfigFlags
defaultConfigFlags :: ProgramConfiguration -> ConfigFlags
configureCommand :: ProgramConfiguration -> CommandUI ConfigFlags
data CopyFlags = CopyFlags {
copyDest :: (Flag CopyDest)
copyVerbose :: (Flag Verbosity)
}
emptyCopyFlags :: CopyFlags
defaultCopyFlags :: CopyFlags
copyCommand :: CommandUI CopyFlags
data InstallFlags = InstallFlags {
installPackageDB :: (Flag PackageDB)
installVerbose :: (Flag Verbosity)
}
emptyInstallFlags :: InstallFlags
defaultInstallFlags :: InstallFlags
installCommand :: CommandUI InstallFlags
data HaddockFlags = HaddockFlags {
haddockHoogle :: (Flag Bool)
haddockHtmlLocation :: (Flag String)
haddockExecutables :: (Flag Bool)
haddockCss :: (Flag FilePath)
haddockHscolour :: (Flag Bool)
haddockHscolourCss :: (Flag FilePath)
haddockVerbose :: (Flag Verbosity)
}
emptyHaddockFlags :: HaddockFlags
defaultHaddockFlags :: HaddockFlags
haddockCommand :: CommandUI HaddockFlags
data HscolourFlags = HscolourFlags {
hscolourCSS :: (Flag FilePath)
hscolourExecutables :: (Flag Bool)
hscolourVerbose :: (Flag Verbosity)
}
emptyHscolourFlags :: HscolourFlags
defaultHscolourFlags :: HscolourFlags
hscolourCommand :: CommandUI HscolourFlags
data BuildFlags = BuildFlags {
buildProgramArgs :: [(String, [String])]
buildVerbose :: (Flag Verbosity)
}
emptyBuildFlags :: BuildFlags
defaultBuildFlags :: BuildFlags
buildCommand :: ProgramConfiguration -> CommandUI BuildFlags
data CleanFlags = CleanFlags {
cleanSaveConf :: (Flag Bool)
cleanVerbose :: (Flag Verbosity)
}
emptyCleanFlags :: CleanFlags
defaultCleanFlags :: CleanFlags
cleanCommand :: CommandUI CleanFlags
data MakefileFlags = MakefileFlags {
makefileFile :: (Flag FilePath)
makefileVerbose :: (Flag Verbosity)
}
emptyMakefileFlags :: MakefileFlags
defaultMakefileFlags :: MakefileFlags
makefileCommand :: CommandUI MakefileFlags
data RegisterFlags = RegisterFlags {
regPackageDB :: (Flag PackageDB)
regGenScript :: (Flag Bool)
regGenPkgConf :: (Flag (Maybe FilePath))
regInPlace :: (Flag Bool)
regVerbose :: (Flag Verbosity)
}
emptyRegisterFlags :: RegisterFlags
defaultRegisterFlags :: RegisterFlags
registerCommand :: CommandUI RegisterFlags
unregisterCommand :: CommandUI RegisterFlags
data SDistFlags = SDistFlags {
sDistSnapshot :: (Flag Bool)
sDistVerbose :: (Flag Verbosity)
}
emptySDistFlags :: SDistFlags
defaultSDistFlags :: SDistFlags
sdistCommand :: CommandUI SDistFlags
testCommand :: CommandUI ()
data CopyDest
= NoCopyDest
| CopyTo FilePath
| CopyPrefix FilePath
configureArgs :: Bool -> ConfigFlags -> [String]
data Flag a
= Flag a
| NoFlag
toFlag :: a -> Flag a
fromFlag :: Flag a -> a
fromFlagOrDefault :: a -> Flag a -> a
flagToMaybe :: Flag a -> Maybe a
flagToList :: Flag a -> [a]
Documentation
module Distribution.Simple.Compiler
data GlobalFlags
Flags that apply at the top level, not to any sub-command.
Constructors
GlobalFlags
globalVersion :: (Flag Bool)
globalNumericVersion :: (Flag Bool)
show/hide Instances
emptyGlobalFlags :: GlobalFlags
defaultGlobalFlags :: GlobalFlags
globalCommand :: CommandUI GlobalFlags
data ConfigFlags
Flags to configure command
Constructors
ConfigFlags
configPrograms :: ProgramConfigurationAll programs that cabal may run
configProgramPaths :: [(String, FilePath)]user specifed programs paths
configProgramArgs :: [(String, [String])]user specifed programs args
configHcFlavor :: (Flag CompilerFlavor)The "flavor" of the compiler, sugh as GHC or Hugs.
configHcPath :: (Flag FilePath)given compiler location
configHcPkg :: (Flag FilePath)given hc-pkg location
configVanillaLib :: (Flag Bool)Enable vanilla library
configProfLib :: (Flag Bool)Enable profiling in the library
configSharedLib :: (Flag Bool)Build shared library
configProfExe :: (Flag Bool)Enable profiling in the executables.
configConfigureArgs :: [String]Extra arguments to configure
configOptimization :: (Flag Bool)Enable optimization.
configInstallDirs :: (InstallDirs (Flag PathTemplate))Installation paths
configScratchDir :: (Flag FilePath)
configVerbose :: (Flag Verbosity)verbosity level
configUserInstall :: (Flag Bool)The --user/--global flag
configPackageDB :: (Flag PackageDB)Which package DB to use
configGHCiLib :: (Flag Bool)Enable compiling library for GHCi
configSplitObjs :: (Flag Bool)Enable -split-objs with GHC
configConfigurationsFlags :: [(String, Bool)]
show/hide Instances
emptyConfigFlags :: ConfigFlags
defaultConfigFlags :: ProgramConfiguration -> ConfigFlags
configureCommand :: ProgramConfiguration -> CommandUI ConfigFlags
data CopyFlags
Flags to copy: (destdir, copy-prefix (backwards compat), verbosity)
Constructors
CopyFlags
copyDest :: (Flag CopyDest)
copyVerbose :: (Flag Verbosity)
show/hide Instances
emptyCopyFlags :: CopyFlags
defaultCopyFlags :: CopyFlags
copyCommand :: CommandUI CopyFlags
data InstallFlags
Flags to install: (package db, verbosity)
Constructors
InstallFlags
installPackageDB :: (Flag PackageDB)
installVerbose :: (Flag Verbosity)
show/hide Instances
emptyInstallFlags :: InstallFlags
defaultInstallFlags :: InstallFlags
installCommand :: CommandUI InstallFlags
data HaddockFlags
Constructors
HaddockFlags
haddockHoogle :: (Flag Bool)
haddockHtmlLocation :: (Flag String)
haddockExecutables :: (Flag Bool)
haddockCss :: (Flag FilePath)
haddockHscolour :: (Flag Bool)
haddockHscolourCss :: (Flag FilePath)
haddockVerbose :: (Flag Verbosity)
show/hide Instances
emptyHaddockFlags :: HaddockFlags
defaultHaddockFlags :: HaddockFlags
haddockCommand :: CommandUI HaddockFlags
data HscolourFlags
Constructors
HscolourFlags
hscolourCSS :: (Flag FilePath)
hscolourExecutables :: (Flag Bool)
hscolourVerbose :: (Flag Verbosity)
show/hide Instances
emptyHscolourFlags :: HscolourFlags
defaultHscolourFlags :: HscolourFlags
hscolourCommand :: CommandUI HscolourFlags
data BuildFlags
Constructors
BuildFlags
buildProgramArgs :: [(String, [String])]
buildVerbose :: (Flag Verbosity)
show/hide Instances
emptyBuildFlags :: BuildFlags
defaultBuildFlags :: BuildFlags
buildCommand :: ProgramConfiguration -> CommandUI BuildFlags
data CleanFlags
Constructors
CleanFlags
cleanSaveConf :: (Flag Bool)
cleanVerbose :: (Flag Verbosity)
show/hide Instances
emptyCleanFlags :: CleanFlags
defaultCleanFlags :: CleanFlags
cleanCommand :: CommandUI CleanFlags
data MakefileFlags
Constructors
MakefileFlags
makefileFile :: (Flag FilePath)
makefileVerbose :: (Flag Verbosity)
show/hide Instances
emptyMakefileFlags :: MakefileFlags
defaultMakefileFlags :: MakefileFlags
makefileCommand :: CommandUI MakefileFlags
data RegisterFlags
Flags to register and unregister: (user package, gen-script, in-place, verbosity)
Constructors
RegisterFlags
regPackageDB :: (Flag PackageDB)
regGenScript :: (Flag Bool)
regGenPkgConf :: (Flag (Maybe FilePath))
regInPlace :: (Flag Bool)
regVerbose :: (Flag Verbosity)
show/hide Instances
emptyRegisterFlags :: RegisterFlags
defaultRegisterFlags :: RegisterFlags
registerCommand :: CommandUI RegisterFlags
unregisterCommand :: CommandUI RegisterFlags
data SDistFlags
Flags to sdist: (snapshot, verbosity)
Constructors
SDistFlags
sDistSnapshot :: (Flag Bool)
sDistVerbose :: (Flag Verbosity)
show/hide Instances
emptySDistFlags :: SDistFlags
defaultSDistFlags :: SDistFlags
sdistCommand :: CommandUI SDistFlags
testCommand :: CommandUI ()
data CopyDest
The location prefix for the copy command.
Constructors
NoCopyDest
CopyTo FilePath
CopyPrefix FilePath
show/hide Instances
configureArgs :: Bool -> ConfigFlags -> [String]
Arguments to pass to a configure script, e.g. generated by autoconf.
data Flag a

All flags are monoids, they come in two flavours:

1. list flags eg

 --ghc-option=foo --ghc-option=bar

gives us all the values [foo, bar]

2. singular value flags, eg:

 --enable-foo --disable-foo

gives us Just False So this Flag type is for the latter singular kind of flag. Its monoid instance gives us the behaviour where it starts out as NoFlag and later flags override earlier ones.

Constructors
Flag a
NoFlag
show/hide Instances
toFlag :: a -> Flag a
fromFlag :: Flag a -> a
fromFlagOrDefault :: a -> Flag a -> a
flagToMaybe :: Flag a -> Maybe a
flagToList :: Flag a -> [a]
Produced by Haddock version 0.9