RFR: 8244417: support static build for Windows
Kevin Rushforth
kcr at openjdk.java.net
Fri May 8 19:14:59 UTC 2020
On Fri, 8 May 2020 19:01:28 GMT, Johan Vos <jvos at openjdk.org> wrote:
>> Adds support for building static libraries of the OpenJFX modules for the Windows platform. Building static libraries
>> is done by providing the gradle property `-PSTATIC_BUILD=true`.
>> Changes include:
>>
>> - add static flags for the compiler and linker
>> - use `lib` for linking instead of `link`
>> - only build and include version.rc once (from GlassResources.rc)
>> - include library specific `JNI_OnLoad_xxx` methods
>> - functionality loaded via `DllMain` has been implemented at a different location
>
> modules/javafx.graphics/src/main/native-prism-d3d/D3DPipeline.cc line 39:
>
>> 38:
>> 39: static jboolean checkAndClearException(JNIEnv *env) {
>> 40: if (!env->ExceptionCheck()) {
>
> while this looks ok to me, I'm not sure why the old code had `extern` followed by the implementation. There might be
> reasons I don't understand, and in that case it might be safer to #ifdef here with STATIC_BUILD. But maybe
> @kevinrushforth knows why this construct is here?
I suspect it was either a copy/paste or else a holdover from when it really was used from more than one file. I think
it should be fine to make it static.
There is a function of the same name in two other places: native-prism-font and native-iio. In native-prism-font it
really is defined in one place and used in multiple files. In native-iio it is only used in a single file and defined
as a static function.
I'll test this with a default (non-static) build to make sure there are no unintended changes.
-------------
PR: https://git.openjdk.java.net/jfx/pull/214
More information about the openjfx-dev
mailing list