Skip to content

Commit 6e6af2e

Browse files
authored
Expose conditional modules (hard-coded) (#2211)
1 parent 63b9e01 commit 6e6af2e

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

lib/call-cabal-project-to-nix.nix

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -439,7 +439,22 @@ let
439439
cat $cabal_file | sed -e 's/@ProjectVersionMunged@/${ghc.version}/g' -e 's/default: *@[A-Za-z0-9]*@/default: False/g' -e 's/@Suffix@//g' > $fixed_cabal_file
440440
json_cabal_file=$(mktemp)
441441
cabal2json $fixed_cabal_file > $json_cabal_file
442-
EXPOSED_MODULES_${varname name}="$(jq -r '.library."exposed-modules"[]|select(type=="array")[]' $json_cabal_file | tr '\n' ' ')"
442+
443+
exposed_modules="$(jq -r '.library."exposed-modules"[]|select(type=="array")[]' $json_cabal_file)"
444+
reexported_modules="$(jq -r '.library."reexported-modules"//[]|.[]|select(type=="array")[]' $json_cabal_file)"
445+
446+
# FIXME This is a bandaid. Rather than doing this, conditionals should be interpreted.
447+
${pkgs.lib.optionalString pkgs.stdenv.targetPlatform.isGhcjs ''
448+
exposed_modules+=" $(jq -r '.library."exposed-modules"[]|select(type=="object" and .if.arch == "javascript")|.then[]' $json_cabal_file)"
449+
''}
450+
${pkgs.lib.optionalString pkgs.stdenv.targetPlatform.isWindows ''
451+
exposed_modules+=" $(jq -r '.library."exposed-modules"[]|select(type=="object" and .if.os == "windows")|.then[]' $json_cabal_file)"
452+
''}
453+
${pkgs.lib.optionalString (!pkgs.stdenv.targetPlatform.isWindows) ''
454+
exposed_modules+=" $(jq -r '.library."exposed-modules"[]|select(type=="object" and .if.not.os == "windows")|.then[]' $json_cabal_file)"
455+
''}
456+
457+
EXPOSED_MODULES_${varname name}="$(tr '\n' ' ' <<< "$exposed_modules $reexported_modules")"
443458
DEPS_${varname name}="$(jq -r '.library."build-depends"[]|select(type=="array")[],select(type=="object").then[]' $json_cabal_file | sed 's/^\([A-Za-z0-9-]*\).*$/\1/g' | sort -u | tr '\n' ' ')"
444459
VER_${varname name}="$(jq -r '.version' $json_cabal_file)"
445460
PKGS+=" ${name}"

0 commit comments

Comments
 (0)