on iko/ghcjs-patch-master help sign in
Don't have a setup derivation at all when buildType == "Simple"
e68f852Will Fancher
builder/default.nix+20−22
@@ -25,35 +25,33 @@ let
25 '';
25 '';
26 defaultSetup = runCommand "default-Setup" { nativeBuildInputs = [ghc]; } ''
26 defaultSetup = runCommand "default-Setup" { nativeBuildInputs = [ghc]; } ''
27 cat ${defaultSetupSrc} > Setup.hs
27 cat ${defaultSetupSrc} > Setup.hs
28+ mkdir -p $out/bin
28− ghc Setup.hs --make -o $out
29+ ghc Setup.hs --make -o $out/bin/Setup
29 '';
30 '';
30
31
32+ setup = if package.buildType == "Simple"
33+ then defaultSetup
31− setup = stdenv.mkDerivation {
34+ else stdenv.mkDerivation {
32− name = "${name}-setup";
35+ name = "${name}-setup";
33− nativeBuildInputs = [ghc];
36+ nativeBuildInputs = [ghc];
34− inherit src;
37+ inherit src;
35− phases = ["unpackPhase" "buildPhase" "installPhase"];
38+ phases = ["unpackPhase" "buildPhase" "installPhase"];
36− buildPhase = ''
39+ buildPhase = ''
37− setup=${defaultSetup}
38− for f in Setup.hs Setup.lhs; do
40+ for f in Setup.hs Setup.lhs; do
39− if [ -f $f ]; then
41+ if [ -f $f ]; then
40− if ! (diff $f ${defaultSetupSrc} > /dev/null); then
41 echo Compiling package $f
42 echo Compiling package $f
42 ghc $f --make -o ./Setup
43 ghc $f --make -o ./Setup
43 setup=$(pwd)/Setup
44 setup=$(pwd)/Setup
44− else
45− echo Using default Setup
46 fi
45 fi
47− break
48− fi
49− done
46+ done
47+ [ -f ./Setup ] || (echo Failed to build Setup && exit 1)
50− '';
48+ '';
51
49
52− installPhase = ''
50+ installPhase = ''
53− mkdir -p $out/bin
51+ mkdir -p $out/bin
54− install $setup $out/bin/Setup
52+ install ./Setup $out/bin/Setup
55− '';
53+ '';
56− };
54+ };
57
55
58 comp-builder = haskellLib.weakCallPackage pkgs ./comp-builder.nix { inherit ghc haskellLib; };
56 comp-builder = haskellLib.weakCallPackage pkgs ./comp-builder.nix { inherit ghc haskellLib; };
59
57