diff options
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/build-support/setup-hooks/set-java-classpath.sh | 13 | ||||
-rw-r--r-- | pkgs/development/eclipse/ecj/default.nix | 16 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 2 |
3 files changed, 21 insertions, 10 deletions
diff --git a/pkgs/build-support/setup-hooks/set-java-classpath.sh b/pkgs/build-support/setup-hooks/set-java-classpath.sh new file mode 100644 index 000000000000..76e8e42ca268 --- /dev/null +++ b/pkgs/build-support/setup-hooks/set-java-classpath.sh @@ -0,0 +1,13 @@ +# This setup hook adds every JAR in the share/java subdirectories of +# the build inputs to $CLASSPATH. + +export CLASSPATH + +addPkgToClassPath () { + local jar + for jar in $1/share/java/*.jar; do + export CLASSPATH=''${CLASSPATH}''${CLASSPATH:+:}''${jar} + done +} + +envHooks=(''${envHooks[@]} addPkgToClassPath) diff --git a/pkgs/development/eclipse/ecj/default.nix b/pkgs/development/eclipse/ecj/default.nix index 7b3940cc2e1e..432bdc72b3c8 100644 --- a/pkgs/development/eclipse/ecj/default.nix +++ b/pkgs/development/eclipse/ecj/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, unzip, ant, jdk }: +{ stdenv, fetchurl, unzip, ant, jdk, makeWrapper }: let version = "3.7.2"; @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { sha256 = "0swyysbyfmv068x8q1c5jqpwk5zb4xahg17aypx5rwb660f8fpbm"; }; - buildInputs = [ unzip ant jdk ]; + buildInputs = [ unzip ant jdk makeWrapper ]; unpackPhase = '' mkdir "${name}" @@ -25,16 +25,12 @@ stdenv.mkDerivation rec { buildPhase = "ant build"; installPhase = '' - mkdir -pv $out/lib/java - cp -v *.jar $out/lib/java + mkdir -pv $out/share/java + cp -v *.jar $out/share/java mkdir -pv $out/bin - cat > $out/bin/ecj <<EOF - #! /bin/sh - exec ${jdk.jre}/bin/java -cp $out/lib/java/ecj.jar org.eclipse.jdt.internal.compiler.batch.Main "\$@" - EOF - - chmod u+x $out/bin/ecj + makeWrapper ${jdk.jre}/bin/java $out/bin/ecj \ + --add-flags "-cp $out/share/java/ecj.jar org.eclipse.jdt.internal.compiler.batch.Main" ''; meta = { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7d3eb8c2e5d6..c038b38acf7a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -385,6 +385,8 @@ let platforms = import ./platforms.nix; + setJavaClassPath = makeSetupHook { } ../build-support/setup-hooks/set-java-classpath.sh; + ### TOOLS |