Hi,

I introduced this topic during the OpenJDK Committers' workshop in
Brussels, on Feb 3, 2025.
For a long time, I was thinking about building OpenJFX using the JDK
buildsystem, and I just blogged about a very basic and limited POC for
doing so on Linux:
https://johanvos.wordpress.com/2025/02/27/building-openjfx-using-jdk/ . The
POC I have for this (linux-only at the moment) is at
https://github.com/johanvos/jdk/tree/jfxpoc-blog
This is just a personal idea and effort, but I would be more than happy to
discuss how we as the OpenJFX developers might benefit from this.

One of the main reasons for doing this (I list a number of reasons in my
blog post), is the cross-compilation capability. It is also very convenient
that the result of the build is now a full JDK image, including the JavaFX
modules. I am aware that some companies distribute JavaFX modules with
their JDK distribution, and this might help a better alignment.

Since I am also the OpenJDK/Mobile project lead, I have to work with the
JDK build system anyhow. To me personally, it saves a major amount of time
if I only have to use 1 build system (configure/make) instead of 2 build
systems. This is no criticism at all to Gradle, but I lack the expertise
(and time to learn) needed to work efficiently with it. With all the
projects I do, I try to be as efficient as possible with my time, and
streamlining build systems helps.
The JDK build system is really excellent, and since it is used by so many
OpenJDK developers, it feels very familiar. The delta that is needed to
have it working and support for JavaFX is very small.

The POC I did is far from complete. There are a number of issues that need
to be tackled, e.g.:
* what about webkit?
* we have a code-generator for shaders, that is using a very old external
dependency. While the JDK build system has great support to generate code,
I'm not sure this is the ideal approach
* warnings, warnings and warnings.

The last item is something that I believe should be tacklked in any case. I
had to disable the warnings-as-errors, and I had to add a fair amount of
exceptions to javac warnings. This might be a good time to look into this
as well.

Again, I want to stress that this is just an experiment I did because it
would save me lots of time, and make it much easier for me to understand
what is going on in builds. I absolutely do not want to imply that this is
much better than what we currently have. But maybe others are interested as
well, and in that case we can discuss this.

- Johan

Reply via email to