Skip to content

Commit df70cef

Browse files
committed
Add "flags:" to ipi
1 parent 3de93d0 commit df70cef

File tree

4 files changed

+13
-1
lines changed

4 files changed

+13
-1
lines changed

Cabal-syntax/src/Distribution/Types/InstalledPackageInfo.hs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import Distribution.ModuleName
2222
import Distribution.Package hiding (installedUnitId, pkgCompiler)
2323
import Distribution.Types.AbiDependency
2424
import Distribution.Types.ExposedModule
25+
import Distribution.Types.Flag (FlagAssignment)
2526
import Distribution.Types.LibraryName
2627
import Distribution.Types.LibraryVisibility
2728
import Distribution.Types.MungedPackageId
@@ -62,7 +63,8 @@ data InstalledPackageInfo = InstalledPackageInfo
6263
, description :: !ShortText
6364
, category :: !ShortText
6465
, -- these parts are required by an installed package only:
65-
abiHash :: AbiHash
66+
unitFlags :: FlagAssignment
67+
, abiHash :: AbiHash
6668
, indefinite :: Bool
6769
, exposed :: Bool
6870
, -- INVARIANT: if the package is definite, OpenModule's
@@ -148,6 +150,7 @@ emptyInstalledPackageInfo =
148150
, synopsis = ""
149151
, description = ""
150152
, category = ""
153+
, unitFlags = mempty
151154
, abiHash = mkAbiHash ""
152155
, indefinite = False
153156
, exposed = False

Cabal-syntax/src/Distribution/Types/InstalledPackageInfo/FieldGrammar.hs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import Distribution.ModuleName
2323
import Distribution.Package hiding (pkgCompiler)
2424
import Distribution.Parsec
2525
import Distribution.Pretty
26+
import Distribution.Types.Flag (FlagAssignment)
2627
import Distribution.Types.LibraryName
2728
import Distribution.Types.LibraryVisibility
2829
import Distribution.Types.MungedPackageName
@@ -61,6 +62,7 @@ ipiFieldGrammar
6162
, Applicative (g InstalledPackageInfo)
6263
, Applicative (g Basic)
6364
, c (Identity AbiHash)
65+
, c (Identity FlagAssignment)
6466
, c (Identity LibraryVisibility)
6567
, c (Identity PackageName)
6668
, c (Identity UnitId)
@@ -105,6 +107,7 @@ ipiFieldGrammar =
105107
<@> freeTextFieldDefST "description" L.description
106108
<@> freeTextFieldDefST "category" L.category
107109
-- Installed fields
110+
<@> optionalFieldDef "flags" L.unitFlags mempty
108111
<@> optionalFieldDef "abi" L.abiHash (mkAbiHash "")
109112
<@> booleanFieldDef "indefinite" L.indefinite False
110113
<@> booleanFieldDef "exposed" L.exposed False

Cabal-syntax/src/Distribution/Types/InstalledPackageInfo/Lens.hs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import Distribution.Backpack (OpenModule)
1212
import Distribution.License (License)
1313
import Distribution.ModuleName (ModuleName)
1414
import Distribution.Package (AbiHash, ComponentId, PackageIdentifier, UnitId)
15+
import Distribution.Types.Flag (FlagAssignment)
1516
import Distribution.Types.InstalledPackageInfo (AbiDependency, ExposedModule, InstalledPackageInfo)
1617
import Distribution.Types.LibraryName (LibraryName)
1718
import Distribution.Types.LibraryVisibility (LibraryVisibility)
@@ -28,6 +29,10 @@ installedUnitId :: Lens' InstalledPackageInfo UnitId
2829
installedUnitId f s = fmap (\x -> s{T.installedUnitId = x}) (f (T.installedUnitId s))
2930
{-# INLINE installedUnitId #-}
3031

32+
unitFlags :: Lens' InstalledPackageInfo FlagAssignment
33+
unitFlags f s = fmap (\x -> s{T.unitFlags = x}) (f (T.unitFlags s))
34+
{-# INLINE unitFlags #-}
35+
3136
installedComponentId_ :: Lens' InstalledPackageInfo (Maybe ComponentId)
3237
installedComponentId_ f s = fmap (\x -> s{T.installedComponentId_ = x}) (f (T.installedComponentId_ s))
3338
{-# INLINE installedComponentId_ #-}

Cabal/src/Distribution/Simple/Register.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -500,6 +500,7 @@ generalInstalledPackageInfo adjustRelIncDirs pkg abi_hash lib lbi clbi installDi
500500
, IPI.installedComponentId_ = Just (componentComponentId clbi)
501501
, IPI.instantiatedWith = expectLibraryComponent (maybeComponentInstantiatedWith clbi)
502502
, IPI.sourceLibName = libName lib
503+
, IPI.unitFlags = flagAssignment lbi
503504
, IPI.compatPackageKey = expectLibraryComponent (maybeComponentCompatPackageKey clbi)
504505
, -- If GHC >= 8.4 we register with SDPX, otherwise with legacy license
505506
IPI.license =

0 commit comments

Comments
 (0)