BefatorNix/jdk/ecj.nix
2025-09-06 15:09:00 +02:00

36 lines
1.1 KiB
Nix

{stdenv, fetchzip, ant-bootstrap, gnu-classpath_93, jamvm_1_5_1, jikes}: stdenv.mkDerivation rec {
pname = "ecj";
version = "3.2.1"; #Compiler meldet 3.2.1 bei 3.2.2 source
src = fetchzip {
url = "https://archive.eclipse.org/eclipse/downloads/drops/R-3.2.2-200702121330/eclipse-sourceBuild-srcIncluded-3.2.2.zip";
hash = "sha256-7FYd+SHyJ9FPYBRJIgHW5IgKbF8HhlKMlSXE8oeyuZk=";
stripRoot=false;
};
nativeBuildInputs = [ant-bootstrap jamvm_1_5_1 jikes];
env = {
JAVA_HOME="${gnu-classpath_93}";
CLASSPATH="${gnu-classpath_93}/share/classpath/glibj.zip";
ANT_OPTS="-Dbuild.compiler=jikes";
};
buildPhase = ''
cd jdtcoresrc
ant -f compilejdtcorewithjavac.xml
cd ..
'';
installPhase = ''
mkdir -p $out/bin
cp -r ./jdtcoresrc/ecj.jar $out/bin/ecj.jar
cat << 'EOF' > $out/bin/ecj
#!/bin/bash
exec ${jamvm_1_5_1}/bin/jamvm -Xmx768M -cp $out/bin/ecj.jar org.eclipse.jdt.internal.compiler.batch.Main "$@"
EOF
sed -i "s|\$out|$out|g" $out/bin/ecj
chmod +x $out/bin/ecj
'';
}