1{ lib
2, stdenv
3, fetchurl
4, unzip
5, ant
6, jdk8
7, makeWrapper
8, stripJavaArchivesHook
9, callPackage
10}:
11
12let
13 jdk = jdk8;
14 jre = jdk8.jre;
15
16in stdenv.mkDerivation (finalAttrs: {
17 pname = "jasmin";
18 version = "2.4";
19
20 src = fetchurl {
21 url = "mirror://sourceforge/jasmin/jasmin-${finalAttrs.version}.zip";
22 hash = "sha256-6qEMaM7Gggb9EC6exxE3OezNeQEIoblabow+k/IORJ0=";
23 };
24
25 nativeBuildInputs = [
26 unzip
27 ant
28 jdk
29 makeWrapper
30 stripJavaArchivesHook
31 ];
32
33 buildPhase = ''
34 runHook preBuild
35 ant all
36 runHook postBuild
37 '';
38
39 installPhase = ''
40 runHook preInstall
41
42 install -Dm644 jasmin.jar $out/share/java/jasmin.jar
43 makeWrapper ${jre}/bin/java $out/bin/jasmin \
44 --add-flags "-jar $out/share/java/jasmin.jar"
45
46 runHook postInstall
47 '';
48
49 passthru.tests = {
50 minimal-module = callPackage ./test-assemble-hello-world {};
51 };
52
53 meta = with lib; {
54 description = "Assembler for the Java Virtual Machine";
55 downloadPage = "https://sourceforge.net/projects/jasmin/files/latest/download";
56 homepage = "https://jasmin.sourceforge.net/";
57 license = licenses.bsd3;
58 mainProgram = "jasmin";
59 maintainers = with maintainers; [ fgaz ];
60 platforms = platforms.all;
61 };
62})