mirror of
https://github.com/commercialhaskell/stackage.git
synced 2026-01-11 23:08:30 +01:00
Better HP control
This commit is contained in:
parent
236c490413
commit
3e92805a50
@ -28,6 +28,8 @@ defaultBuildSettings = BuildSettings
|
||||
, expectedFailures = defaultExpectedFailures
|
||||
, stablePackages = defaultStablePackages
|
||||
, extraArgs = ["-fnetwork23"]
|
||||
, haskellPlatformCabal = "haskell-platform/haskell-platform.cabal"
|
||||
, requireHaskellPlatform = True
|
||||
}
|
||||
|
||||
build :: BuildSettings -> IO ()
|
||||
|
||||
@ -11,8 +11,8 @@ import Data.Set (singleton)
|
||||
import Distribution.Text (simpleParse)
|
||||
import Stackage.Types
|
||||
|
||||
loadHaskellPlatform :: IO HaskellPlatform
|
||||
loadHaskellPlatform = fmap parseHP $ readFile "haskell-platform/haskell-platform.cabal"
|
||||
loadHaskellPlatform :: BuildSettings -> IO HaskellPlatform
|
||||
loadHaskellPlatform = fmap parseHP . readFile . haskellPlatformCabal
|
||||
|
||||
data HPLine = HPLPackage PackageIdentifier
|
||||
| HPLBeginCore
|
||||
|
||||
@ -15,8 +15,10 @@ import Data.Version (showVersion)
|
||||
|
||||
getInstallInfo :: BuildSettings -> IO InstallInfo
|
||||
getInstallInfo settings = do
|
||||
hp <- loadHaskellPlatform
|
||||
let allPackages = Map.union (stablePackages settings) $ identsToRanges (hplibs hp)
|
||||
hp <- loadHaskellPlatform settings
|
||||
let allPackages
|
||||
| requireHaskellPlatform settings = Map.union (stablePackages settings) $ identsToRanges (hplibs hp)
|
||||
| otherwise = stablePackages settings
|
||||
let totalCore = extraCore settings `Set.union` Set.map (\(PackageIdentifier p _) -> p) (hpcore hp)
|
||||
pdb <- loadPackageDB totalCore allPackages
|
||||
final <- narrowPackageDB pdb $ Set.fromList $ Map.toList $ Map.map snd $ allPackages
|
||||
|
||||
@ -61,4 +61,6 @@ data BuildSettings = BuildSettings
|
||||
, expectedFailures :: Set PackageName
|
||||
, stablePackages :: Map PackageName (VersionRange, Maintainer)
|
||||
, extraArgs :: [String]
|
||||
, haskellPlatformCabal :: FilePath
|
||||
, requireHaskellPlatform :: Bool
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user