diff options
Diffstat (limited to 'pkgs/build-support/release/ant-build.nix')
-rw-r--r-- | pkgs/build-support/release/ant-build.nix | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/pkgs/build-support/release/ant-build.nix b/pkgs/build-support/release/ant-build.nix index e761205f663f..779841aec6ac 100644 --- a/pkgs/build-support/release/ant-build.nix +++ b/pkgs/build-support/release/ant-build.nix @@ -1,5 +1,6 @@ { src -, stdenv +, pkgs +, stdenv ? pkgs.stdenv , name , antTargets ? [] , jars ? [] @@ -7,14 +8,19 @@ , antProperties ? [] , antBuildInputs ? [] , buildfile ? "build.xml" +, ant ? pkgs.ant +, jre ? pkgs.jre +, hydraAntLogger ? pkgs.hydraAntLogger , ... } @ args: let - antFlags = "-f ${buildfile} " + stdenv.lib.concatMapStrings ({name, value}: "-D${name}=${value}" ) antProperties ; + antFlags = "-f ${buildfile} " + stdenv.lib.concatMapStrings ({name, value}: "-D${name}=${value} " ) antProperties ; + lib = stdenv.lib; in stdenv.mkDerivation ( { + inherit jre ant; showBuildStats = true; postPhases = @@ -44,14 +50,18 @@ stdenv.mkDerivation ( done ''; - generateWrappersPhase = '' + generateWrappersPhase = + let + cp = w: "-cp ${lib.optionalString (w ? classPath) w.classPath}${lib.optionalString (w ? mainClass) ":$out/lib/java/${w.jar}"}"; + in + '' header "Generating jar wrappers" '' + (stdenv.lib.concatMapStrings (w: '' cat >> $out/bin/${w.name} <<EOF #! /bin/sh export JAVA_HOME=$jre - $jre/bin/java ${if w ? mainClass then "-cp $out/lib/java/${w.jar} ${w.mainClass}" else "-jar $out/lib/java/${w.jar}"} \$@ + $jre/bin/java ${cp w} ${if w ? mainClass then w.mainClass else "-jar ${w.jar}"} \$@ EOF chmod a+x $out/bin/${w.name} || exit 1 @@ -79,11 +89,13 @@ stdenv.mkDerivation ( ''; } - // removeAttrs args ["antProperties"] // + // removeAttrs args ["antProperties" "buildInputs" "pkgs" "jarWrappers"] // { name = name + (if src ? version then "-" + src.version else ""); + buildInputs = [ant jre] ++ stdenv.lib.optional (args ? buildInputs) args.buildInputs ; + postHook = '' ensureDir $out/nix-support echo "$system" > $out/nix-support/system |