diff --git a/doc/language-support.xml b/doc/language-support.xml index cb40be4bf57f..277f3115f736 100644 --- a/doc/language-support.xml +++ b/doc/language-support.xml @@ -236,7 +236,7 @@ twisted = buildPythonPackage {
Java Java packages should install JAR files in -$out/lib/java. +$out/share/java.
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 <