diff --git a/Distribution/Simple/Setup.hs b/Distribution/Simple/Setup.hs index 428a2154904721e92882ef5410e5ba7a252ccd38..ba19a614d7299b904d58be48f51eb8b860228b21 100644 --- a/Distribution/Simple/Setup.hs +++ b/Distribution/Simple/Setup.hs @@ -252,6 +252,8 @@ data ConfigFlags = ConfigFlags { configExtraLibDirs :: [FilePath], -- ^ path to search for extra libraries configExtraIncludeDirs :: [FilePath], -- ^ path to search for header files + configDistPref :: Flag FilePath, -- ^"dist" prefix + configVerbose :: Verbosity, -- ^verbosity level (deprecated) configVerbosity :: Flag Verbosity, -- ^verbosity level configUserInstall :: Flag Bool, -- ^The --user\/--global flag configPackageDB :: Flag PackageDB, -- ^Which package DB to use @@ -275,6 +277,8 @@ defaultConfigFlags progConf = emptyConfigFlags { configOptimization = Flag NormalOptimisation, configProgPrefix = Flag (toPathTemplate ""), configProgSuffix = Flag (toPathTemplate ""), + configDistPref = Flag defaultDistPref, + configVerbose = normal, configVerbosity = Flag normal, configUserInstall = Flag False, --TODO: reverse this configGHCiLib = Flag True, @@ -517,6 +521,8 @@ instance Monoid ConfigFlags where configProgSuffix = mempty, configInstallDirs = mempty, configScratchDir = mempty, + configDistPref = mempty, + configVerbose = normal, configVerbosity = mempty, configUserInstall = mempty, configPackageDB = mempty, @@ -545,6 +551,8 @@ instance Monoid ConfigFlags where configProgSuffix = combine configProgSuffix, configInstallDirs = combine configInstallDirs, configScratchDir = combine configScratchDir, + configDistPref = combine configDistPref, + configVerbose = fromFlagOrDefault (configVerbose a) (configVerbosity b), configVerbosity = combine configVerbosity, configUserInstall = combine configUserInstall, configPackageDB = combine configPackageDB, @@ -564,14 +572,20 @@ instance Monoid ConfigFlags where -- | Flags to @copy@: (destdir, copy-prefix (backwards compat), verbosity) data CopyFlags = CopyFlags { - copyDest :: Flag CopyDest, + copyDest :: CopyDest, + copyDest' :: Flag CopyDest, + copyDistPref :: Flag FilePath, + copyVerbose :: Verbosity, copyVerbosity :: Flag Verbosity } deriving Show defaultCopyFlags :: CopyFlags defaultCopyFlags = CopyFlags { - copyDest = Flag NoCopyDest, + copyDest = NoCopyDest, + copyDest' = Flag NoCopyDest, + copyDistPref = Flag defaultDistPref, + copyVerbose = normal, copyVerbosity = Flag normal } @@ -606,11 +620,17 @@ emptyCopyFlags = mempty instance Monoid CopyFlags where mempty = CopyFlags { - copyDest = mempty, + copyDest = NoCopyDest, + copyDest' = mempty, + copyDistPref = mempty, + copyVerbose = normal, copyVerbosity = mempty } mappend a b = CopyFlags { - copyDest = combine copyDest, + copyDest = fromFlagOrDefault (copyDest a) (copyDest' b), + copyDest' = combine copyDest', + copyDistPref = combine copyDistPref, + copyVerbose = fromFlagOrDefault (copyVerbose a) (copyVerbosity b), copyVerbosity = combine copyVerbosity } where combine field = field a `mappend` field b @@ -622,6 +642,8 @@ instance Monoid CopyFlags where -- | Flags to @install@: (package db, verbosity) data InstallFlags = InstallFlags { installPackageDB :: Flag PackageDB, + installDistPref :: Flag FilePath, + installVerbose :: Verbosity, installVerbosity :: Flag Verbosity } deriving Show @@ -629,6 +651,8 @@ data InstallFlags = InstallFlags { defaultInstallFlags :: InstallFlags defaultInstallFlags = InstallFlags { installPackageDB = NoFlag, + installDistPref = Flag defaultDistPref, + installVerbose = normal, installVerbosity = Flag normal } @@ -659,10 +683,14 @@ emptyInstallFlags = mempty instance Monoid InstallFlags where mempty = InstallFlags{ installPackageDB = mempty, + installDistPref = mempty, + installVerbose = normal, installVerbosity = mempty } mappend a b = InstallFlags{ installPackageDB = combine installPackageDB, + installDistPref = combine installDistPref, + installVerbose = fromFlagOrDefault (installVerbose a) (installVerbosity b), installVerbosity = combine installVerbosity } where combine field = field a `mappend` field b @@ -674,6 +702,8 @@ instance Monoid InstallFlags where -- | Flags to @sdist@: (snapshot, verbosity) data SDistFlags = SDistFlags { sDistSnapshot :: Flag Bool, + sDistDistPref :: Flag FilePath, + sDistVerbose :: Verbosity, sDistVerbosity :: Flag Verbosity } deriving Show @@ -681,6 +711,8 @@ data SDistFlags = SDistFlags { defaultSDistFlags :: SDistFlags defaultSDistFlags = SDistFlags { sDistSnapshot = Flag False, + sDistDistPref = Flag defaultDistPref, + sDistVerbose = normal, sDistVerbosity = Flag normal } @@ -706,10 +738,14 @@ emptySDistFlags = mempty instance Monoid SDistFlags where mempty = SDistFlags { sDistSnapshot = mempty, + sDistDistPref = mempty, + sDistVerbose = normal, sDistVerbosity = mempty } mappend a b = SDistFlags { sDistSnapshot = combine sDistSnapshot, + sDistDistPref = combine sDistDistPref, + sDistVerbose = fromFlagOrDefault (sDistVerbose a) (sDistVerbosity b), sDistVerbosity = combine sDistVerbosity } where combine field = field a `mappend` field b @@ -725,6 +761,8 @@ data RegisterFlags = RegisterFlags { regGenScript :: Flag Bool, regGenPkgConf :: Flag (Maybe FilePath), regInPlace :: Flag Bool, + regDistPref :: Flag FilePath, + regVerbose :: Verbosity, regVerbosity :: Flag Verbosity } deriving Show @@ -735,6 +773,8 @@ defaultRegisterFlags = RegisterFlags { regGenScript = Flag False, regGenPkgConf = Flag Nothing, regInPlace = Flag False, + regDistPref = Flag defaultDistPref, + regVerbose = normal, regVerbosity = Flag normal } @@ -803,6 +843,8 @@ instance Monoid RegisterFlags where regGenScript = mempty, regGenPkgConf = mempty, regInPlace = mempty, + regDistPref = mempty, + regVerbose = normal, regVerbosity = mempty } mappend a b = RegisterFlags { @@ -810,6 +852,8 @@ instance Monoid RegisterFlags where regGenScript = combine regGenScript, regGenPkgConf = combine regGenPkgConf, regInPlace = combine regInPlace, + regDistPref = combine regDistPref, + regVerbose = fromFlagOrDefault (regVerbose a) (regVerbosity b), regVerbosity = combine regVerbosity } where combine field = field a `mappend` field b @@ -821,6 +865,8 @@ instance Monoid RegisterFlags where data HscolourFlags = HscolourFlags { hscolourCSS :: Flag FilePath, hscolourExecutables :: Flag Bool, + hscolourDistPref :: Flag FilePath, + hscolourVerbose :: Verbosity, hscolourVerbosity :: Flag Verbosity } deriving Show @@ -832,6 +878,8 @@ defaultHscolourFlags :: HscolourFlags defaultHscolourFlags = HscolourFlags { hscolourCSS = NoFlag, hscolourExecutables = Flag False, + hscolourDistPref = Flag defaultDistPref, + hscolourVerbose = normal, hscolourVerbosity = Flag normal } @@ -839,11 +887,15 @@ instance Monoid HscolourFlags where mempty = HscolourFlags { hscolourCSS = mempty, hscolourExecutables = mempty, + hscolourDistPref = mempty, + hscolourVerbose = normal, hscolourVerbosity = mempty } mappend a b = HscolourFlags { hscolourCSS = combine hscolourCSS, hscolourExecutables = combine hscolourExecutables, + hscolourDistPref = combine hscolourDistPref, + hscolourVerbose = fromFlagOrDefault (hscolourVerbose a) (hscolourVerbosity b), hscolourVerbosity = combine hscolourVerbosity } where combine field = field a `mappend` field b @@ -881,6 +933,8 @@ data HaddockFlags = HaddockFlags { haddockCss :: Flag FilePath, haddockHscolour :: Flag Bool, haddockHscolourCss :: Flag FilePath, + haddockDistPref :: Flag FilePath, + haddockVerbose :: Verbosity, haddockVerbosity :: Flag Verbosity } deriving Show @@ -894,6 +948,8 @@ defaultHaddockFlags = HaddockFlags { haddockCss = NoFlag, haddockHscolour = Flag False, haddockHscolourCss = NoFlag, + haddockDistPref = Flag defaultDistPref, + haddockVerbose = normal, haddockVerbosity = Flag normal } @@ -955,6 +1011,8 @@ instance Monoid HaddockFlags where haddockCss = mempty, haddockHscolour = mempty, haddockHscolourCss = mempty, + haddockDistPref = mempty, + haddockVerbose = normal, haddockVerbosity = mempty } mappend a b = HaddockFlags { @@ -965,6 +1023,8 @@ instance Monoid HaddockFlags where haddockCss = combine haddockCss, haddockHscolour = combine haddockHscolour, haddockHscolourCss = combine haddockHscolourCss, + haddockDistPref = combine haddockDistPref, + haddockVerbose = fromFlagOrDefault (haddockVerbose a) (haddockVerbosity b), haddockVerbosity = combine haddockVerbosity } where combine field = field a `mappend` field b @@ -975,6 +1035,8 @@ instance Monoid HaddockFlags where data CleanFlags = CleanFlags { cleanSaveConf :: Flag Bool, + cleanDistPref :: Flag FilePath, + cleanVerbose :: Verbosity, cleanVerbosity :: Flag Verbosity } deriving Show @@ -982,6 +1044,8 @@ data CleanFlags = CleanFlags { defaultCleanFlags :: CleanFlags defaultCleanFlags = CleanFlags { cleanSaveConf = Flag False, + cleanDistPref = Flag defaultDistPref, + cleanVerbose = normal, cleanVerbosity = Flag normal } @@ -1007,10 +1071,14 @@ emptyCleanFlags = mempty instance Monoid CleanFlags where mempty = CleanFlags { cleanSaveConf = mempty, + cleanDistPref = mempty, + cleanVerbose = normal, cleanVerbosity = mempty } mappend a b = CleanFlags { cleanSaveConf = combine cleanSaveConf, + cleanDistPref = combine cleanDistPref, + cleanVerbose = fromFlagOrDefault (cleanVerbose a) (cleanVerbosity b), cleanVerbosity = combine cleanVerbosity } where combine field = field a `mappend` field b @@ -1021,6 +1089,8 @@ instance Monoid CleanFlags where data BuildFlags = BuildFlags { buildProgramArgs :: [(String, [String])], + buildDistPref :: Flag FilePath, + buildVerbose :: Verbosity, buildVerbosity :: Flag Verbosity } deriving Show @@ -1028,6 +1098,8 @@ data BuildFlags = BuildFlags { defaultBuildFlags :: BuildFlags defaultBuildFlags = BuildFlags { buildProgramArgs = [], + buildDistPref = Flag defaultDistPref, + buildVerbose = normal, buildVerbosity = Flag normal } @@ -1050,11 +1122,15 @@ emptyBuildFlags = mempty instance Monoid BuildFlags where mempty = BuildFlags { buildProgramArgs = mempty, - buildVerbosity = mempty + buildVerbose = normal, + buildVerbosity = Flag normal, + buildDistPref = mempty } mappend a b = BuildFlags { buildProgramArgs = combine buildProgramArgs, - buildVerbosity = combine buildVerbosity + buildVerbose = fromFlagOrDefault (buildVerbose a) (buildVerbosity b), + buildVerbosity = combine buildVerbosity, + buildDistPref = combine buildDistPref } where combine field = field a `mappend` field b @@ -1064,6 +1140,8 @@ instance Monoid BuildFlags where data MakefileFlags = MakefileFlags { makefileFile :: Flag FilePath, + makefileDistPref :: Flag FilePath, + makefileVerbose :: Verbosity, makefileVerbosity :: Flag Verbosity } deriving Show @@ -1071,6 +1149,8 @@ data MakefileFlags = MakefileFlags { defaultMakefileFlags :: MakefileFlags defaultMakefileFlags = MakefileFlags { makefileFile = NoFlag, + makefileDistPref = Flag defaultDistPref, + makefileVerbose = normal, makefileVerbosity = Flag normal } @@ -1096,10 +1176,14 @@ emptyMakefileFlags = mempty instance Monoid MakefileFlags where mempty = MakefileFlags { makefileFile = mempty, + makefileDistPref = mempty, + makefileVerbose = normal, makefileVerbosity = mempty } mappend a b = MakefileFlags { makefileFile = combine makefileFile, + makefileDistPref = combine makefileDistPref, + makefileVerbose = fromFlagOrDefault (makefileVerbose a) (makefileVerbosity b), makefileVerbosity = combine makefileVerbosity } where combine field = field a `mappend` field b