diff options
Diffstat (limited to 'pkgs/development/eclipse/ecj/default.nix')
-rw-r--r-- | pkgs/development/eclipse/ecj/default.nix | 84 |
1 files changed, 42 insertions, 42 deletions
diff --git a/pkgs/development/eclipse/ecj/default.nix b/pkgs/development/eclipse/ecj/default.nix index ba3e643a4fea..0f52e879863e 100644 --- a/pkgs/development/eclipse/ecj/default.nix +++ b/pkgs/development/eclipse/ecj/default.nix @@ -1,59 +1,59 @@ -{ stdenv, fetchurl, unzip, ant, gcj }: +{ stdenv, fetchurl, unzip, ant, jdk, makeWrapper }: let version = "3.7.2"; date = "201202080800"; - isGCJ = stdenv.lib.strings.substring 0 3 gcj.name == "gcj"; - javaExec = if isGCJ then "gij" else "java"; - javaFlags = if isGCJ then "--cp" else "-cp"; in - stdenv.mkDerivation rec { - name = "ecj-${version}"; - src = fetchurl { - url = "http://eclipse.ialto.org/eclipse/downloads/drops/R-${version}-${date}/ecjsrc-${version}.jar"; - sha256 = "0swyysbyfmv068x8q1c5jqpwk5zb4xahg17aypx5rwb660f8fpbm"; - }; +stdenv.mkDerivation rec { + name = "ecj-${version}"; - buildInputs = [ unzip ant gcj ]; + src = fetchurl { + url = "http://eclipse.ialto.org/eclipse/downloads/drops/R-${version}-${date}/ecjsrc-${version}.jar"; + sha256 = "0swyysbyfmv068x8q1c5jqpwk5zb4xahg17aypx5rwb660f8fpbm"; + }; - unpackPhase = '' - mkdir "${name}" - cd "${name}" - unzip "$src" - ''; + buildInputs = [ unzip ant jdk makeWrapper ]; - # Use whatever compiler Ant knows. - buildPhase = "ant build"; + unpackPhase = '' + mkdir "${name}" + cd "${name}" + unzip "$src" + ''; - installPhase = '' - mkdir -pv "$out/lib/java" - cp -v *.jar "$out/lib/java" + # Use whatever compiler Ant knows. + buildPhase = "ant build"; - mkdir -pv "$out/bin" - cat > "$out/bin/ecj" <<EOF -#! /bin/sh -exec "$(type -P ${javaExec})" ${javaFlags} "$out/lib/java/ecj.jar" org.eclipse.jdt.internal.compiler.batch.Main \$@ -EOF + installPhase = '' + mkdir -pv $out/share/java + cp -v *.jar $out/share/java - chmod u+x "$out/bin/ecj" - ''; + mkdir -pv $out/bin + makeWrapper ${jdk.jre}/bin/java $out/bin/ecj \ + --add-flags "-cp $out/share/java/ecj.jar org.eclipse.jdt.internal.compiler.batch.Main" - meta = { - description = "The Eclipse Compiler for Java (ECJ)"; + # Add a setup hook that causes Ant to use the ECJ. + mkdir -p $out/nix-support + cat <<EOF > $out/nix-support/setup-hook + export NIX_ANT_ARGS="-Dbuild.compiler=org.eclipse.jdt.core.JDTCompilerAdapter \$NIX_ANT_ARGS" + EOF + ''; - longDescription = '' - ECJ is an incremental Java compiler. Implemented as an Eclipse - builder, it is based on technology evolved from VisualAge for Java - compiler. In particular, it allows users to run and debug code which - still contains unresolved errors. - ''; + meta = { + description = "The Eclipse Compiler for Java (ECJ)"; + + longDescription = '' + ECJ is an incremental Java compiler. Implemented as an Eclipse + builder, it is based on technology evolved from VisualAge for Java + compiler. In particular, it allows users to run and debug code which + still contains unresolved errors. + ''; - homepage = http://www.eclipse.org/jdt/core/index.php; + homepage = http://www.eclipse.org/jdt/core/index.php; - # http://www.eclipse.org/legal/epl-v10.html (free software, copyleft) - license = "EPLv1.0"; + # http://www.eclipse.org/legal/epl-v10.html (free software, copyleft) + license = "EPLv1.0"; - maintainers = [ ]; - }; - } + platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin; + }; +} |