Subject: [bug#41360] [PATCH 03/12] gnu: java-openjfx-graphics: Implement a complete compilation.

From: Alexey Abramov <[email-masked]>
Date: Sat, 30 May 2020 18:45:08 +0200

Ludovic Courtès <[email-masked]> writes:

> Alexey Abramov <[email-masked]> skribis:
>
>> ---
>>  gnu/packages/java.scm | 643 +++++++++++++++++++++++++++++++++++++++++-
>>  1 file changed, 635 insertions(+), 8 deletions(-)
>
> Please add a commit log.
>
>> +              (java-aux-class?
>> +               (lambda (class)
>> +                 (string-match "\\$[0-9]+.class" class)))
>
> Probably “\\.class” instead of “.class”?

Ah, that sneaky dot. Thanks!

>
>> +           (add-after 'chdir-to-a-module-directory 'compile-prism-compilers
>> +             (lambda _
>
> Maybe add a comment explaining why this phase is necessary.

Well, you know, I managed to eliminate it. Thanks!

>
>> +               (let ((prism-compilers-classes "build/classes/jsl-compilers/prism")
>> +                     (prism-src "src/main/jsl-prism/"))
>> +                 (mkdir-p prism-compilers-classes)
>> +                 (apply invoke `("javac"
>> +                                 "-d" ,prism-compilers-classes
>> +                                 ,@javac/h-flags
>> +                                 ,@(find-files prism-src "\\.java"))))
>
> This can be shortened as:
>
>   (apply invoke "javac" "-d" prism-compilers-classes
>          (append javac/h-flags (find-files prism-src "\\.java")))
>
> These two comments apply to the other phases too.
>
> More generally, why are there so many phases?  How do people normally
> build it?  Gradle?
>
> Would it make sense to factorize helpers in a new (gnu build
> java-openjfx) module or similar?

You are right, javafx builds with Gradel. I basically replicated gradle
stages, by inspecting ./gradlew build ... --info

The reason I didn't start building any helpers is because OpenJFX 8u and OpenJFX 9u or later use different instuctions as it states here [1]. I don't know if these helpers will apply to 9u, also having a (gnu build gradle) would eliminate the need in helpers as well. In any case I think it won't be a problem to do that with a second iteration of openjfx build.

--
Alexey

Footnotes:

[1] https://wiki.openjdk.java.net/display/OpenJFX/Building+OpenJFX+8u