Skip to content

Commit 1b3d624

Browse files
hamishmackangerman
authored andcommitted
Use mkOverride 900 for project flags. (input-output-hk#66)
* Use mkOverride 900 for project flags. See input-output-hk#254
1 parent 87d97c5 commit 1b3d624

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

plan2nix/Plan2Nix.hs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,8 @@ plan2nix args (Plan { packages, extras, compilerVersion, compilerPackages }) = d
106106
return $ fromString pkg $= mkPath False nix
107107
_ -> return []
108108
let flags = concatMap (\case
109-
(name, Just (Package v r flags _)) -> flags2nix name flags) $ Map.toList extras
109+
(name, Just (Package _v _r f _)) -> flags2nix name f
110+
_ -> []) $ Map.toList extras
110111

111112
return $ mkNonRecSet [
112113
"pkgs" $= ("hackage" ==> mkNonRecSet (
@@ -119,7 +120,7 @@ plan2nix args (Plan { packages, extras, compilerVersion, compilerPackages }) = d
119120
]))
120121
, "extras" $= ("hackage" ==> mkNonRecSet [ "packages" $= extrasNix ])
121122
, "modules" $= mkList [
122-
mkNonRecSet [ "packages" $= mkNonRecSet flags ]
123+
mkParamset [("lib", Nothing)] True ==> mkNonRecSet [ "packages" $= mkNonRecSet flags ]
123124
]
124125
]
125126
where
@@ -166,7 +167,9 @@ plan2nix args (Plan { packages, extras, compilerVersion, compilerPackages }) = d
166167
flags2nix :: Text -> HashMap Text Bool -> [Binding NExpr]
167168
flags2nix pkgName pkgFlags =
168169
[ quoted pkgName $= mkNonRecSet
169-
[ "flags" $= mkNonRecSet [ quoted flag $= mkBool val
170+
-- `mkOverride 900` is used here so that the default values will be replaced (they are 1000).
171+
-- Values without a priority are treated as 100 and will replace these ones.
172+
[ "flags" $= mkNonRecSet [ quoted flag $= ("lib" @. "mkOverride" @@ mkInt 900 @@ mkBool val)
170173
| (flag, val) <- Map.toList pkgFlags
171174
]
172175
]

stack2nix/Stack2nix.hs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ stack2nix args stack@(Stack resolver compiler pkgs pkgFlags ghcOpts) =
8080
| (Just c) <- [compiler], let name = filter (`elem` ((['a'..'z']++['0'..'9']) :: [Char])) c]))
8181
, "resolver" $= fromString (quoted resolver)
8282
, "modules" $= mkList [
83-
mkNonRecSet [ "packages" $= mkNonRecSet flags ]
83+
mkParamset [("lib", Nothing)] True ==> mkNonRecSet [ "packages" $= mkNonRecSet flags ]
8484
, mkNonRecSet [ "packages" $= mkNonRecSet ghcOptions ] ]
8585
] ++ [
8686
"compiler" $= fromString (quoted c) | (Just c) <- [compiler]
@@ -112,7 +112,9 @@ extraDeps2nix pkgs =
112112
flags2nix :: PackageFlags -> [Binding NExpr]
113113
flags2nix pkgFlags =
114114
[ quoted pkgName $= mkNonRecSet
115-
[ "flags" $= mkNonRecSet [ quoted flag $= mkBool val
115+
-- `mkOverride 900` is used here so that the default values will be replaced (they are 1000).
116+
-- Values without a priority are treated as 100 and will replace these ones.
117+
[ "flags" $= mkNonRecSet [ quoted flag $= ("lib" @. "mkOverride" @@ mkInt 900 @@ mkBool val)
116118
| (flag, val) <- HM.toList flags
117119
]
118120
]

0 commit comments

Comments
 (0)