me
/
guix
Archived
1
0
Fork 0

gnu: Add java-jansi-native.

* gnu/packages/java.scm (java-jansi-native): New variable.
master
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
1 changed files with 56 additions and 0 deletions

View File

@ -7910,3 +7910,59 @@ including pre-existing objects that you do not have source-code of.")
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)))