Build logic renovation?
Philip Race
philip.race at oracle.com
Tue May 27 19:55:43 UTC 2025
I am with John that the direction we should invest in is the path Johan
suggested, and give it our best shot.
A build system isn't just "done once". It is a continual maintenance task.
And if we can largely leverage the work done for JDK it will mean
savings all round, now and in the future.
-phil.
On 5/27/25 12:27 PM, John Neffenger wrote:
> Hi, Jesper. My comments below are not meant to discourage you entirely
> from your plans -- really! :-) -- but rather to help you understand,
> based on my own experience, the scope of the work involved.
>
> On 5/27/25 6:41 AM, Jesper Skov wrote:
>> Would there be interest in reworking the build logic?
>
> Yes, but perhaps more like this:
>
> Building OpenJFX using JDK
> https://johanvos.wordpress.com/2025/02/27/building-openjfx-using-jdk/
>
>> All the procedural Gradle in one large file makes it hard to
>> understand the build logic.
>
> Indeed.
>
>> It looks very complex.
>
> It is very complex.
>
>> And it may be performing below optimum (this is just a conjecture).
>
> Without a doubt.
>
>> I know that the current build is very obviously working.
>
> Barely. :-)
>
>> And that there may good reasons to keep it in its current form.
>
> No, not really, except for the "very obviously working" part.
>
>> But if there is an interest, I would like to make the build more
>> idiomatic Gradle.
>
> Personally, I'm done with Gradle for any of my own projects. It's
> difficult to pin down precisely the way in which Gradle fails to be a
> good build system, but I think Bruce Eckel summarized it best in his
> article below:
>
> Jan 2, 2021 - 16 minute read
> The Problem with Gradle
> https://www.bruceeckel.com/2021/01/02/the-problem-with-gradle/
>
>> Changing the build would be an explorative and iterative task.
>
> The JavaFX build system is remarkably complicated. It is based on
> Gradle but also uses other build tools such as Apache Maven, Apache
> Ant, GNU Make, CMake, Ninja, GNU GCC, Apple Xcode, Microsoft Visual
> Studio, and even Windows batch files. It runs on Linux, macOS, and
> Windows, and supports eight different hardware architectures (last
> time I counted).
>
> Testing requires you to configure and run hundreds (!) of these complex
> builds and unit tests on multiple systems under Linux, macOS, and
> Windows.
>
> I'm tempted to say that having (almost) reproducible builds in JavaFX
> would help in verifying that you're creating the same artifacts before
> and after, but there are just so many artifacts to verify. It's not
> one build that produces a set of artifacts. Rather, it's multiple
> builds that produce multiple sets of artifacts on multiple systems.
>
>> And I would need to know if there are some non-obvious out-of-tree
>> features that need special handling.
>
> Almost everything in it needs special handling.
>
>> I can understand if you would be wary about this proposal; I may not
>> be able to complete the transition from the current to a new build.
>
> I think you're looking at a multi-year project.
>
> John
>
More information about the openjfx-dev
mailing list