diff --git a/pkgs/build-support/release/ant-build.nix b/pkgs/build-support/release/ant-build.nix new file mode 100644 index 000000000000..7aa449af3a6a --- /dev/null +++ b/pkgs/build-support/release/ant-build.nix @@ -0,0 +1,85 @@ +{ src +, stdenv +, name +, antTargets ? [] +, jars ? [] +, jarWrappers ? [] +, antProperties ? [] +, ... } @ args: + +let + antFlags = stdenv.lib.concatMapStrings ({name, value}: "-D${name}=${value}" ) antProperties ; +in +stdenv.mkDerivation ( + + { + showBuildStats = true; + + postPhases = + ["generateWrappersPhase" "finalPhase"]; + + installPhase = '' + ensureDir $out/lib/java + ${ if jars == [] then '' + find . -name "*.jar" | xargs -I{} cp -v {} $out/lib/java + '' else stdenv.lib.concatMapStrings (j: '' + cp -v ${j} $out/lib/java + echo file jar $out/lib/java/${j} >> $out/nix-support/hydra-build-products + '') jars } + ''; + + generateWrappersPhase = '' + header "Generating jar wrappers" + '' + (stdenv.lib.concatMapStrings (w: '' + + cat >> $out/bin/jclasslib < $out/nix-support/system + + # If `src' is the result of a call to `makeSourceTarball', then it + # has a subdirectory containing the actual tarball(s). If there are + # multiple tarballs, just pick the first one. + origSrc=$src + if test -d $src/tarballs; then + src=$(ls $src/tarballs/*.tar.bz2 $src/tarballs/*.tar.gz | sort | head -1) + fi + + ''; + } +) diff --git a/pkgs/build-support/release/default.nix b/pkgs/build-support/release/default.nix index 1177024c8573..357a5227cbda 100644 --- a/pkgs/build-support/release/default.nix +++ b/pkgs/build-support/release/default.nix @@ -14,6 +14,10 @@ rec { { inherit stdenv; } // args); + antBuild = args: import ./ant-build.nix ( + { inherit stdenv; + } // args); + nixBuild = args: import ./nix-build.nix ( { inherit stdenv; } // args);