gnu: Add java-jansi-native.

* gnu/packages/java.scm (java-jansi-native): New variable.
This commit is contained in:
Julien Lepiller 2017-11-18 17:35:36 +01:00
parent 335aa20b96
commit d0c62afa8c
No known key found for this signature in database
GPG key ID: 43111F4520086A0C

View file

@ -7910,3 +7910,59 @@ (define-public java-hawtjni
to implement Java native methods. It is based on the jnigen code generator to implement Java native methods. It is based on the jnigen code generator
that is part of the SWT Tools project.") that is part of the SWT Tools project.")
(license license:asl2.0))) (license license:asl2.0)))
(define-public java-jansi-native
(package
(name "java-jansi-native")
(version "1.7")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/fusesource/jansi-native/"
"archive/jansi-native-" version ".tar.gz"))
(sha256
(base32
"0j2ydlgxbzbgshqkwghbxxxnbnx1mmjgd6k5fw6xfvxw1z956yqf"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "jansi-native.jar"
#:source-dir "src/main/java"
#:tests? #f; no tests
#:phases
(modify-phases %standard-phases
(add-before 'build 'build-native
(lambda* (#:key inputs #:allow-other-keys)
;; there are more required files for windows in windows/
(with-directory-excursion "src/main/native-package/src"
(substitute* "jansi_ttyname.c"
(("#include \"jansi_.*") ""))
(and
(system* "gcc" "-c" "jansi_ttyname.c" "-o" "jansi_ttyname.o"
(string-append "-I" (assoc-ref inputs "java-hawtjni")
"/include")
(string-append "-I" (assoc-ref inputs "jdk")
"/include/linux")
"-fPIC" "-O2")
(system* "gcc" "-o" "libjansi.so" "-shared" "jansi_ttyname.o")))))
(add-before 'build 'install-native
(lambda _
(let ((dir (string-append "build/classes/META-INF/native/"
,(match (%current-system)
((or "i686-linux" "armhf-linux")
"linux32")
((or "x86_64-linux" "aarch64-linux")
"linux64")))))
(install-file "src/main/native-package/src/libjansi.so" dir))
#t))
(add-after 'install 'install-native
(lambda* (#:key outputs #:allow-other-keys)
(mkdir-p (string-append (assoc-ref outputs "out") "/include"))
(install-file "src/main/native-package/src/jansi.h"
(string-append (assoc-ref outputs "out") "/include"))
#t)))))
(inputs
`(("java-hawtjni" ,java-hawtjni)))
(home-page "https://fusesource.github.io/jansi/")
(synopsis "Native library for jansi")
(description "Java-jansi-native contains the native library for the jansi
frobnication library/framework.")
(license license:asl2.0)))