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