diff options
author | Daniel Gröber <dxld@darkboxed.org> | 2020-01-11 07:46:33 +0100 |
---|---|---|
committer | Daniel Gröber <dxld@darkboxed.org> | 2020-05-02 15:44:26 +0200 |
commit | 852dbc69d276e19add3917d17dff5541d84e29d4 (patch) | |
tree | b01a16ee9a03fb491dfdf50a7bc717b76e95d445 /src/CabalHelper/Compiletime/Types.hs | |
parent | f0741c61bd82ec0f94edcfa8d950f349eac86c33 (diff) |
Fix Cabal version selection for build-type:Custom
Previously we would pick up Stack's Cabal version with ghc-pkg on the
global package-db. This however ignores that Stack also supports custom
Setup.hs with the Cabal version from the snapshot instead.
In cabal v2-build we have a similar problem. We used to assume that
plan.json's cabal-lib-version is used uniformly across units but this is
similarly untrue.
To fix both of these we re-stage the cabal version query to after
reconfiguring a unit, then we can just lookup the Cabal version in
setup-config.
Fixes #95
Diffstat (limited to 'src/CabalHelper/Compiletime/Types.hs')
-rw-r--r-- | src/CabalHelper/Compiletime/Types.hs | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/CabalHelper/Compiletime/Types.hs b/src/CabalHelper/Compiletime/Types.hs index bb36df8..07596a9 100644 --- a/src/CabalHelper/Compiletime/Types.hs +++ b/src/CabalHelper/Compiletime/Types.hs @@ -456,8 +456,7 @@ newtype ProjConfModTimes = ProjConfModTimes [(FilePath, EpochTime)] -- | Project-scope information cache. data ProjInfo pt = ProjInfo - { piCabalVersion :: !Version - , piPackages :: !(NonEmpty (Package pt)) + { piPackages :: !(NonEmpty (Package pt)) , piImpl :: !(ProjInfoImpl pt) , piProjConfModTimes :: !ProjConfModTimes -- ^ Key for cache invalidation. When this is not equal to the return @@ -466,13 +465,14 @@ data ProjInfo pt = ProjInfo data ProjInfoImpl pt where ProjInfoV1 :: - { piV1SetupHeader :: !UnitHeader + { piV1SetupHeader :: !UnitHeader + , piV1CabalVersion :: !CabalVersion } -> ProjInfoImpl ('Cabal 'CV1) ProjInfoV2 :: - { piV2Plan :: !PlanJson - , piV2PlanModTime :: !EpochTime - , piV2CompilerId :: !(String, Version) + { piV2Plan :: !PlanJson + , piV2PlanModTime :: !EpochTime + , piV2CompilerId :: !(String, Version) } -> ProjInfoImpl ('Cabal 'CV2) ProjInfoStack :: ProjInfoImpl 'Stack |