* OpenJFX 14, gradle
@ 2020-05-04 2:00 Michael Zucchi
2020-05-04 3:12 ` Julien Lepiller
2020-05-04 8:53 ` Alexey Abramov
0 siblings, 2 replies; 4+ messages in thread
From: Michael Zucchi @ 2020-05-04 2:00 UTC (permalink / raw)
To: guix-devel
Morning,
I'm trying to work on updating some java stuff as guix currently only
has java12 which is a year out of date and javafx8 which is ancient.
Apart from openjdk 13 and 14 which is in motion I've started looking at
openjfx 14.
But openjfx needs to be compiled with gradle 6 now - the openjfx8
package uses ant but that is no longer an option (there's some netbeans
ant files there but they seem non functional). guix has no build-system
gradle and looking at gradle I can't imagine there will ever be a
source-bootstrapped package for it - the 6.0 distribution is 215 jar
files, mostly external libraries, and it needs gradle to build (because
of course it does). I'm assuming that guix wouldn't accept using
gradle-wrapper here which is the `supported' build mechanism for the
openjfx project.
Partly out of curiosity and partly as a potential alternative I spent
the weekend creating a single 1000 line gnu makefile to replace the
>10kloc of gradle scripts and existing makefiles. I haven't bothered
with javafx.web or javafx-swt but otherwise it's complete and only
requires antlr 4.7 at build time. It uses gnu make features
specifically and assumes a gnu environment, but it's 3-4x faster on my
machine (amd r9-3900x).
Another alternative could be simple build script that forgoes
incremental and parallel compilation support for a smaller script. I can
possibly get that down to a few dozen lines of bash if i can utilise the
existing makefiles.
Is either approach worth pursuing or is the whole idea a lost cause?
Regards,
Michael
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: OpenJFX 14, gradle
2020-05-04 2:00 OpenJFX 14, gradle Michael Zucchi
@ 2020-05-04 3:12 ` Julien Lepiller
2020-05-04 8:53 ` Alexey Abramov
1 sibling, 0 replies; 4+ messages in thread
From: Julien Lepiller @ 2020-05-04 3:12 UTC (permalink / raw)
To: guix-devel, Michael Zucchi
Le 3 mai 2020 22:00:24 GMT-04:00, Michael Zucchi <notzed@gmail.com> a écrit :
>
>Morning,
>
>I'm trying to work on updating some java stuff as guix currently only
>has java12 which is a year out of date and javafx8 which is ancient.
>Apart from openjdk 13 and 14 which is in motion I've started looking at
>
>openjfx 14.
>
>But openjfx needs to be compiled with gradle 6 now - the openjfx8
>package uses ant but that is no longer an option (there's some netbeans
>
>ant files there but they seem non functional). guix has no
>build-system
>gradle and looking at gradle I can't imagine there will ever be a
>source-bootstrapped package for it - the 6.0 distribution is 215 jar
>files, mostly external libraries, and it needs gradle to build (because
>
>of course it does). I'm assuming that guix wouldn't accept using
>gradle-wrapper here which is the `supported' build mechanism for the
>openjfx project.
>
>Partly out of curiosity and partly as a potential alternative I spent
>the weekend creating a single 1000 line gnu makefile to replace the
> >10kloc of gradle scripts and existing makefiles. I haven't bothered
>with javafx.web or javafx-swt but otherwise it's complete and only
>requires antlr 4.7 at build time. It uses gnu make features
>specifically and assumes a gnu environment, but it's 3-4x faster on my
>machine (amd r9-3900x).
>
>Another alternative could be simple build script that forgoes
>incremental and parallel compilation support for a smaller script. I
>can
>possibly get that down to a few dozen lines of bash if i can utilise
>the
>existing makefiles.
>
>Is either approach worth pursuing or is the whole idea a lost cause?
>
>Regards,
> Michael
Note that the ant-build-system is able to generate its own build.xml. that's going to be tough, so whatever works for you is fine, as long as everything is free software and source-bootstrapped.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: OpenJFX 14, gradle
2020-05-04 2:00 OpenJFX 14, gradle Michael Zucchi
2020-05-04 3:12 ` Julien Lepiller
@ 2020-05-04 8:53 ` Alexey Abramov
2020-05-05 2:30 ` Michael Zucchi
1 sibling, 1 reply; 4+ messages in thread
From: Alexey Abramov @ 2020-05-04 8:53 UTC (permalink / raw)
To: Michael Zucchi; +Cc: guix-devel
Hi Michael,
I did almost the same thing but for JDKu8, You can check it https://gitlab.com/Levenson/ in a wip-davmail branch. I packaged graphics, swing, swt and friends. Unfortunatelly tests are disabled for now. I and am trying to make them work. It seems to me that even they do have tests for modules, a bundle needs to be created with all the modules first.
I thought about makefiles, ant and build.xml, but decided to do everything in scheme for now. My plan is to make tests work, and then polish packages definition.
--
Alexey
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: OpenJFX 14, gradle
2020-05-04 8:53 ` Alexey Abramov
@ 2020-05-05 2:30 ` Michael Zucchi
0 siblings, 0 replies; 4+ messages in thread
From: Michael Zucchi @ 2020-05-05 2:30 UTC (permalink / raw)
To: Alexey Abramov; +Cc: guix-devel
Hi Alexey,
On 4/5/20 6:23 pm, Alexey Abramov wrote:
> Hi Michael,
>
> I did almost the same thing but for JDKu8, You can check it https://gitlab.com/Levenson/ in a wip-davmail branch. I packaged graphics, swing, swt and friends. Unfortunatelly tests are disabled for now. I and am trying to make them work. It seems to me that even they do have tests for modules, a bundle needs to be created with all the modules first.
At least for openjfx14 the main module resources need to be inside a jar
file otherwise they can't be found, having them on the classpath isn't
sufficient. For the css files for example resolving resources in
"com/sun/javafx/scene/control/skin" takes a different code path that
seems to enforce this.
An additional wrinkle with 14 using modular java is that the tests need
some proxy classes built into the modules - i found the easiest way is
just to recompile everything again with the additional sources on the
module source path. It doesn't take very long at least.
I've only looked at the per-module unit tests and i got them to run ok
apart from one test which seems to be locale related (LANG=C works).
Those all-commented-out tests are still all-commented-out in
javafx14(!). There seems to be a surprising amount of baggage like that
in the repository like the netbeans stuff, which seems nonfunctional.
> I thought about makefiles, ant and build.xml, but decided to do everything in scheme for now. My plan is to make tests work, and then polish packages definition.
>
I just don't know enough scheme or guix and looking at the scheme source
it looks pretty ugly when running a bunch of shell commands in
sequence. ant is so very painful for non-trivial builds and pretty
useless otherwise. make has the benefit of easily supporting parallel
compilation which speeds it up quite a bit (at least without javafx.web
dominating). The bash script i have is about 240 lines so somewhat more
compact than the makefile i have but it uses the exising javafx.media
makefiles which cuts it down quite a bit.
Thanks for the link, that will help trying to work out how to get this
going within the guix build system. I also need antlr4 which i'm hoping
wont be too hard if i remove some of the optional parts/languages.
Cheers,
Michael
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-05-05 2:31 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-04 2:00 OpenJFX 14, gradle Michael Zucchi
2020-05-04 3:12 ` Julien Lepiller
2020-05-04 8:53 ` Alexey Abramov
2020-05-05 2:30 ` Michael Zucchi
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).