summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Lepiller <julien@lepiller.eu>2017-11-18 17:09:49 +0100
committerJulien Lepiller <julien@lepiller.eu>2018-02-10 19:03:38 +0100
commit335aa20b96fb18689f3dc10406b9b7c8926e2e03 (patch)
treeee969dca80c032451d7e3d8be01ab6775b5a20ed
parent8d510f65ec9aece40262653b0fc0fd3b480bd149 (diff)
downloadguix-patches-335aa20b96fb18689f3dc10406b9b7c8926e2e03.tar
guix-patches-335aa20b96fb18689f3dc10406b9b7c8926e2e03.tar.gz
gnu: Add java-hawtjni.
* gnu/packages/java.scm (java-hawtjni): New variable.
-rw-r--r--gnu/packages/java.scm52
1 files changed, 52 insertions, 0 deletions
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 0a5604b63f..ca8be38081 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -7858,3 +7858,55 @@ Objects into their JSON representation. It can also be used to convert a JSON
string to an equivalent Java object. Gson can work with arbitrary Java objects
including pre-existing objects that you do not have source-code of.")
(license license:asl2.0)))
+
+(define-public java-hawtjni
+ (package
+ (name "java-hawtjni")
+ (version "1.15")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/fusesource/hawtjni/archive/"
+ "hawtjni-project-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1bqfd732rmh6svyx17fpw9175gc9gzkcbyps2yyrf50c3zzjas6g"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "hawtjni.jar"
+ #:source-dir "hawtjni-generator/src/main/java:hawtjni-runtime/src/main/java"
+ #:tests? #f; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'build-native
+ (lambda* (#:key inputs #:allow-other-keys)
+ (with-directory-excursion "hawtjni-generator/src/main/resources/"
+ (and
+ (system* "gcc" "-c" "hawtjni.c" "-o" "hawtjni.o"
+ "-fPIC" "-O2"
+ (string-append "-I" (assoc-ref inputs "jdk") "/include/linux"))
+ (system* "gcc" "-c" "hawtjni-callback.c" "-o" "hawtjni-callback.o"
+ "-fPIC" "-O2"
+ (string-append "-I" (assoc-ref inputs "jdk") "/include/linux"))
+ (system* "gcc" "-o" "libhawtjni.so" "-shared"
+ "hawtjni.o" "hawtjni-callback.o")))))
+ (add-after 'install 'install-native
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib"))
+ (inc (string-append out "/include")))
+ (mkdir-p lib)
+ (mkdir-p inc)
+ (with-directory-excursion "hawtjni-generator/src/main/resources/"
+ (copy-file "libhawtjni.so" (string-append lib "/libhawtjni.so"))
+ (copy-file "hawtjni.h" (string-append inc "/hawtjni.h"))))
+ #t)))))
+ (inputs
+ `(("java-commons-cli" ,java-commons-cli)
+ ("java-asm" ,java-asm)
+ ("java-geronimo-xbean-finder" ,java-geronimo-xbean-finder)))
+ (home-page "https://fusesource.github.io/hawtjni/")
+ (synopsis "JNI code generator")
+ (description "HawtJNI is a code generator that produces the JNI code needed
+to implement Java native methods. It is based on the jnigen code generator
+that is part of the SWT Tools project.")
+ (license license:asl2.0)))