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