From 5a410bf8966fedcbf4c88edfc18cea94104cf6a0 Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Mon, 17 Dec 2012 15:19:46 +0200 Subject: [PATCH] Default build flags available --- Stackage/Build.hs | 1 + Stackage/InstallInfo.hs | 2 +- Stackage/LoadDatabase.hs | 11 +++++++---- Stackage/Types.hs | 2 ++ 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Stackage/Build.hs b/Stackage/Build.hs index a61e105b..d1d5f737 100644 --- a/Stackage/Build.hs +++ b/Stackage/Build.hs @@ -40,6 +40,7 @@ defaultBuildSettings = BuildSettings , cleanBeforeBuild = True , excludedPackages = empty , testWorkerThreads = 4 + , flags = Set.fromList $ words "blaze_html_0_5" } build :: BuildSettings -> IO () diff --git a/Stackage/InstallInfo.hs b/Stackage/InstallInfo.hs index 71055e29..8d86a223 100644 --- a/Stackage/InstallInfo.hs +++ b/Stackage/InstallInfo.hs @@ -31,7 +31,7 @@ getInstallInfo settings = do | otherwise = stablePackages settings allPackages = dropExcluded settings allPackages' let totalCore = extraCore settings `Set.union` Set.map (\(PackageIdentifier p _) -> p) (hpcore hp) - pdb <- loadPackageDB totalCore allPackages + pdb <- loadPackageDB settings totalCore allPackages final <- narrowPackageDB pdb $ Set.fromList $ Map.toList $ Map.map snd $ allPackages putStrLn "Printing build plan to build-plan.log" diff --git a/Stackage/LoadDatabase.hs b/Stackage/LoadDatabase.hs index 7b2d60ed..7d1a3f1e 100644 --- a/Stackage/LoadDatabase.hs +++ b/Stackage/LoadDatabase.hs @@ -26,7 +26,8 @@ import Distribution.PackageDescription (Condition (..), genPackageFlags, libBuildInfo, packageDescription, - testBuildInfo) + testBuildInfo, + FlagName (FlagName)) import Distribution.PackageDescription.Parse (ParseResult (ParseOk), parsePackageDescription) import Distribution.System (buildArch, buildOS) @@ -46,10 +47,11 @@ import Stackage.Util -- version. -- -- * For other packages, select the maximum version number. -loadPackageDB :: Set PackageName -- ^ core packages +loadPackageDB :: BuildSettings + -> Set PackageName -- ^ core packages -> Map PackageName (VersionRange, Maintainer) -- ^ additional deps -> IO PackageDB -loadPackageDB core deps = do +loadPackageDB settings core deps = do tarName <- getTarballName lbs <- L.readFile tarName addEntries mempty $ Tar.read lbs @@ -119,4 +121,5 @@ loadPackageDB core deps = do checkCond' (COr c1 c2) = checkCond' c1 || checkCond' c2 checkCond' (CAnd c1 c2) = checkCond' c1 && checkCond' c2 - flags = map flagName $ filter flagDefault $ genPackageFlags gpd + flags = map flagName (filter flagDefault $ genPackageFlags gpd) ++ + (map FlagName $ Set.toList $ Stackage.Types.flags settings) diff --git a/Stackage/Types.hs b/Stackage/Types.hs index c271dd5f..1879be2d 100644 --- a/Stackage/Types.hs +++ b/Stackage/Types.hs @@ -79,4 +79,6 @@ data BuildSettings = BuildSettings -- packages are dependencies of others, they will still be included. , testWorkerThreads :: Int -- ^ How many threads to spawn for running test suites. + , flags :: Set String + -- ^ Compile flags which should be turned on. }