From: Alexey Abramov <levenson@mmer.org>
To: 39746@debbugs.gnu.org
Cc: Alexey Abramov <levenson@mmer.org>
Subject: [bug#39746] [v3 2/2] gnu: java-openjfx-web: Add new variable.
Date: Sat, 14 Mar 2020 07:10:45 +0100 [thread overview]
Message-ID: <20200314061045.308244-2-levenson@mmer.org> (raw)
In-Reply-To: <20200314061045.308244-1-levenson@mmer.org>
---
gnu/packages/java.scm | 179 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 179 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 6db8a3ec7c..826e027fa4 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -47,11 +47,13 @@
#:use-module (gnu packages cpio)
#:use-module (gnu packages cups)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages cmake)
#:use-module (gnu packages elf)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gcc)
+ #:use-module (gnu packages gperf)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages ghostscript) ;lcms
@@ -71,8 +73,10 @@
#:use-module (gnu packages wget)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages perl)
+ #:use-module (gnu packages python)
#:use-module (gnu packages popt)
#:use-module (gnu packages kerberos)
+ #:use-module (gnu packages ruby)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (gnu packages texinfo)
@@ -3142,6 +3146,181 @@ modern, efficient, and fully featured toolkit for developing rich client
applications. This package contains media-related classes for the
OpenJFX distribution.")))
+(define-public java-openjfx-web
+ (package (inherit java-openjfx-build)
+ (name "java-openjfx-web")
+ (arguments
+ `(#:jar-name "java-openjfx-web.jar"
+ #:source-dir (string-join '("modules/web/src/main/java"
+ "modules/web/src/main/native/Source/WebCore/bindings/java/dom3")
+ ";")
+ #:tests? #f
+ #:modules ((ice-9 match)
+ (guix build ant-build-system)
+ (guix build utils))
+ #:phases
+ (let ((lib-path (string-append (assoc-ref %outputs "out")
+ ,(match (%current-system)
+ ("i686-linux"
+ "/lib/i386")
+ ("x86_64-linux"
+ "/lib/amd64")
+ ("armhf-linux"
+ "/lib/arm")
+ ("aarch64-linux"
+ "/lib/aarch64")
+ ;; We need a catch-all, dropping
+ ;; '-linux' works in most cases.
+ (_
+ (string-append
+ "/lib/"
+ (string-drop-right
+ (%current-system) 6)))))))
+ (modify-phases %standard-phases
+ (replace 'build
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let* ((module (string-append (getcwd) "/modules/web"))
+ (classes (string-append module "/build/classes/java/main")))
+ (invoke "ant" "compile" (string-append "-Dclasses.dir=" classes)))
+ #t))
+ (add-after 'build 'generate-headers
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let* ((module (string-append (getcwd) "/modules/web"))
+ (classes (string-append module "/build/classes/java/main"))
+ (web-generated-headers (string-append module "/build/generated-src/headers"))
+ (web-generated-classes '("com.sun.webkit.ContextMenu"
+ "com.sun.webkit.ContextMenuItem"
+ "com.sun.webkit.CursorManager"
+ "com.sun.webkit.PageCache"
+ "com.sun.webkit.PopupMenu"
+ "com.sun.webkit.SharedBuffer"
+ "com.sun.webkit.WebPage"
+ "com.sun.webkit.LoadListenerClient"
+ "com.sun.webkit.event.WCFocusEvent"
+ "com.sun.webkit.event.WCKeyEvent"
+ "com.sun.webkit.event.WCMouseEvent"
+ "com.sun.webkit.event.WCMouseWheelEvent"
+ "com.sun.webkit.graphics.GraphicsDecoder"
+ "com.sun.webkit.graphics.RenderMediaControls"
+ "com.sun.webkit.graphics.RenderTheme"
+ "com.sun.webkit.graphics.ScrollBarTheme"
+ "com.sun.webkit.graphics.WCMediaPlayer"
+ "com.sun.webkit.graphics.WCGraphicsManager"
+ "com.sun.webkit.graphics.WCRenderQueue"
+ "com.sun.webkit.graphics.WCPath"
+ "com.sun.webkit.graphics.WCPathIterator"
+ "com.sun.webkit.Timer"
+ "com.sun.webkit.WCFrameView"
+ "com.sun.webkit.WCPasteboard"
+ "com.sun.webkit.WCPluginWidget"
+ "com.sun.webkit.dom.CharacterDataImpl"
+ "com.sun.webkit.dom.JSObject"
+ "com.sun.webkit.network.SocketStreamHandle"
+ "com.sun.webkit.network.URLLoader"
+ "com.sun.webkit.text.TextBreakIterator"
+ "com.sun.webkit.text.TextNormalizer"))
+ (graphics (assoc-ref inputs "java-openjfx-graphics")))
+ (mkdir-p web-generated-headers)
+ (apply invoke
+ "javah"
+ "-Djava.ext.dirs="
+ "-XDignore.symbol.file"
+ "-XDuseUnsharedTable=true"
+ "-d" web-generated-headers
+ "-cp" (string-join (cons* classes (find-files graphics ".jar$")) ":")
+ web-generated-classes))
+ #t))
+
+ (add-after 'generate-headers 'compile-native-linux
+ (lambda* (#:key inputs system outputs #:allow-other-keys)
+ (let* ((module (string-append (getcwd) "/modules/web"))
+ ;;
+ (webkit-native-dest (string-append module "/build/linux"))
+ (webkit-native-src (string-append module "/src/main/native"))
+ ;; uname -m
+ (machine (match system
+ ("x86_64-linux" "x86_64")
+ ("i686-linux" "i686")
+ ;; Prevent errors when querying this
+ ;; package on unsupported platforms,
+ ;; e.g. when running "guix package
+ ;; --search="
+ (_ "UNSUPPORTED"))))
+
+ (mkdir-p webkit-native-dest)
+ (setenv "PYTHONDONTWRITEBYTECODE" "1")
+ (setenv "WEBKIT_OUTPUTDIR" webkit-native-dest)
+ (apply invoke `("perl"
+ ,(string-append webkit-native-src "/Tools/Scripts/set-webkit-configuration")
+ ,(if ,(target-64bit?) "--64-bit" "--32-bit")
+ "--release"))
+
+ (invoke "perl"
+ (string-append webkit-native-src "/Tools/Scripts/build-webkit")
+ "--java" ; webkit port
+ "--skip-library-update"
+ "--verbose"
+ (string-append
+ "--cmakeargs="
+ (string-join
+ (list "-DCMAKE_SYSTEM_NAME=Linux"
+ ;; ensure that the libraries are installed into /lib
+ (string-append "-DCMAKE_INSTALL_LIBDIR=" lib-path)
+ ;; add input libraries to rpath
+ "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE"
+ ;; enable verbose output from builds
+ "-DCMAKE_VERBOSE_MAKEFILE=ON"
+ (string-append "-DCMAKE_SHARED_LINKER_FLAGS="
+ "\"-Wl,-rpath=" lib-path "\"")
+ (string-append "-DCMAKE_SYSTEM_PROCESSOR=" machine)
+
+ "-DJAVAFX_RELEASE_VERSION=8.0"
+ "-W"
+ "-Wall"
+ "-Werror=implicit-function-declaration"
+ "-Wl,--gc-sections"
+ "-Wno-parentheses"
+ "-Wno-unused"
+ "-fPIC"
+ "-fno-omit-frame-pointer"
+ "-fno-strict-aliasing"
+ "-fstack-protector")))))
+ #t))
+
+ (add-after 'compile-native-linux 'install-native
+ (lambda* (#:key outputs #:allow-other-keys)
+ (for-each (lambda (file)
+ (install-file file lib-path))
+ (find-files "." "\\.so$"))))
+
+ (add-before 'install 'build-jar
+ (lambda _
+ (let* ((module (string-append (getcwd) "/modules/web"))
+ (resources (string-append module "/src/main/resources"))
+ (classes (string-append module "/build/classes/java/main")))
+ (copy-recursively resources classes)
+ (invoke "ant" "jar" (string-append "-Dclasses.dir=" classes)))
+ #t))))))
+ (inputs
+ `(("antlr3" ,antlr3)
+ ("java-stringtemplate" ,java-stringtemplate)))
+ (native-inputs
+ `(("java-junit" ,java-junit)
+ ("java-hamcrest-core" ,java-hamcrest-core)
+ ("cmake" ,cmake)
+ ("gcc" ,gcc)
+ ("gtk" ,gtk+-2)
+ ("gtk3" ,gtk+)
+ ("ruby" ,ruby)
+ ("perl" ,perl)
+ ("gperf" ,gperf)
+ ("python-2" ,python-2)
+ ("pkg-config" ,pkg-config)))
+ (propagated-inputs
+ `(("java-openjfx-controls" ,java-openjfx-controls)
+ ("java-openjfx-media" ,java-openjfx-media)
+ ("java-openjfx-graphics" ,java-openjfx-graphics)))))
+
(define-public javacc-4
(package
(name "javacc")
--
2.24.1
next prev parent reply other threads:[~2020-03-14 6:12 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-22 20:17 [bug#39742] [PATCH 1/7] gnu: java-openjfx-build: Add helpful patch Alexey Abramov
2020-02-22 20:17 ` [bug#39744] [PATCH 2/7] gnu: java-openjfx-build: Fix indentation Alexey Abramov
2020-02-22 20:17 ` [bug#39747] [PATCH 3/7] gnu: java-openjfx-graphics: Implement a complete compilation Alexey Abramov
2020-03-04 3:00 ` Leo Famulari
2020-03-09 13:08 ` levenson
2020-03-09 12:46 ` [bug#39747] [v2] " Alexey Abramov
2020-02-22 20:17 ` [bug#39745] [PATCH 4/7] gnu: java-openjfx-swing: Add new variable Alexey Abramov
2020-03-04 3:04 ` Leo Famulari
2020-03-09 22:08 ` [bug#39741] " levenson
2020-03-09 16:15 ` [bug#39745] [v2] gnu: java-openjfx-build: Fix openjfx-swing component build for JDKu8 Alexey Abramov
2020-03-09 16:36 ` [bug#39745] [v3 1/2] " Alexey Abramov
2020-03-09 16:36 ` [bug#39745] [v3 2/2] gnu: java-openjfx-swing: Add new variable Alexey Abramov
2020-03-11 10:36 ` [bug#39745] [v4 1/2] gnu: java-openjfx-build: Fix openjfx-swing component build for JDKu8 Alexey Abramov
2020-03-11 10:36 ` [bug#39745] [v4 2/2] gnu: java-openjfx-swing: Add new variable Alexey Abramov
2020-02-22 20:17 ` [bug#39741] [PATCH 5/7] gnu: java-openjfx-swt: " Alexey Abramov
2020-03-09 16:41 ` [bug#39741] [v2] " Alexey Abramov
2020-02-22 20:17 ` [bug#39743] [PATCH 6/7] gnu: java-openjfx-controls: " Alexey Abramov
2020-03-09 16:54 ` [bug#39743] [v2] " Alexey Abramov
2020-02-22 20:17 ` [bug#39746] [PATCH 7/7] gnu: java-openjfx-web: " Alexey Abramov
2020-03-04 3:07 ` Leo Famulari
2020-03-09 22:13 ` [bug#39741] " levenson
2020-03-17 22:17 ` Tobias Geerinckx-Rice via Guix-patches via
2020-03-09 21:41 ` [bug#39746] [v2 1/2] gnu: java-openjfx-build: Prepare a patch to build openjfx-web Alexey Abramov
2020-03-09 21:41 ` [bug#39746] [v2 2/2] gnu: java-openjfx-web: Add new variable Alexey Abramov
2020-03-14 6:10 ` [bug#39746] [v3 1/2] gnu: java-openjfx-build: Prepare a patch to build openjfx-web Alexey Abramov
2020-03-14 6:10 ` Alexey Abramov [this message]
2020-03-03 17:33 ` [bug#39742] [PATCH 1/7] gnu: java-openjfx-build: Add helpful patch levenson
2020-03-04 2:56 ` Leo Famulari
2020-03-05 20:42 ` Alexey Abramov
2020-03-05 19:09 ` Björn Höfling
2020-03-05 20:10 ` Alexey Abramov
2020-03-05 21:35 ` Björn Höfling
2020-03-08 19:40 ` [bug#39742] [v2] " Alexey Abramov
2020-03-15 18:19 ` bug#39742: " Leo Famulari
2020-03-17 21:12 ` [bug#39742] " Björn Höfling
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200314061045.308244-2-levenson@mmer.org \
--to=levenson@mmer.org \
--cc=39746@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.