1{
2 lib,
3 stdenv,
4 fetchurl,
5 ant,
6 jdk,
7 makeWrapper,
8 stripJavaArchivesHook,
9}:
10
11stdenv.mkDerivation (finalAttrs: {
12 pname = "java-cup";
13 version = "11b-20160615";
14
15 src = fetchurl {
16 url = "http://www2.cs.tum.edu/projects/cup/releases/java-cup-src-${finalAttrs.version}.tar.gz";
17 hash = "sha256-4OdzYG5FzhqorROD5jk9U+2dzyhh5D76gZT1Z+kdv/o=";
18 };
19
20 sourceRoot = ".";
21
22 patches = [ ./javacup-0.11b_beta20160615-build-xml-git.patch ];
23
24 nativeBuildInputs = [
25 ant
26 jdk
27 makeWrapper
28 stripJavaArchivesHook
29 ];
30
31 buildPhase = ''
32 runHook preBuild
33 ant
34 runHook postBuild
35 '';
36
37 installPhase = ''
38 runHook preInstall
39
40 install -Dm644 dist/java-cup-11b.jar -t $out/share/java-cup
41 install -Dm644 dist/java-cup-11b-runtime.jar -t $out/share/java
42
43 makeWrapper ${jdk.jre}/bin/java $out/bin/javacup \
44 --add-flags "-jar $out/share/java-cup/java-cup-11b.jar"
45
46 runHook postInstall
47 '';
48
49 meta = {
50 description = "LALR parser generator for Java";
51 homepage = "http://www2.cs.tum.edu/projects/cup/";
52 license = lib.licenses.mit;
53 mainProgram = "javacup";
54 maintainers = [ lib.maintainers.romildo ];
55 platforms = lib.platforms.all;
56 };
57})