haskell: export build flags as a shell variable

This is useful so that you can call `Setup build` on other targets e.g.
for code generation while still having the same flags.

The context that led me to write this patch is that we have HIE file
generation in an overlay at work and I was packaging Glean, which
requires a code gen component get built, and it was building twice due
to the hie flags not getting propagated to the Setup build commands I
was running manually.
This commit is contained in:
Jade Lovelace
2025-11-21 16:18:01 -08:00
parent 39a15b69c5
commit 2a9345daf1
@@ -302,8 +302,6 @@ let
makeGhcOptions = opts: lib.concatStringsSep " " (map (opt: "--ghc-option=${opt}") opts);
buildFlagsString = optionalString (buildFlags != [ ]) (" " + concatStringsSep " " buildFlags);
defaultConfigureFlags = [
"--verbose"
"--prefix=$out"
@@ -735,7 +733,7 @@ lib.fix (
# Cabal takes flags like `--configure-option=--host=...` instead
configurePlatforms = [ ];
inherit configureFlags;
inherit configureFlags buildFlags;
# Note: the options here must be always added, regardless of whether the
# package specifies `hardeningDisable`.
@@ -769,7 +767,7 @@ lib.fix (
find dist/build -exec touch -d '1970-01-01T00:00:00Z' {} +
''
+ ''
${setupCommand} build ${buildTarget}${buildFlagsString}
${setupCommand} build ${buildTarget} $buildFlags
runHook postBuild
'';