To do this the following restructuring is performed:
- Move decorations specific classes to darklaf-platform-decorations
- Move SystemInfo to darklaf-platform-base
- Move theme specification specific classes to darklaf-theme-spec
- Create new module darklaf-platform-preferences for the reporting related classes
Some modules explicitly export only to darklaf.core, because
they are implementation modules. To avoid compiler warnings
we stub the module definition.
Installing the custom decorations may cause the window to be resized
as Cocoa tries to compensate for the removal of the titlebar. Hence,
any previously set size for the window wil be incorrect. We circumvent
this issue by restoring the window bounds after the installation is
completed.
Relates to #292
This allows us to move the dependency versions back into
gradle.properties so version for plugins and dependencies are declared
in a centralized way.
This commit also removes the legacy macOS framework dependencies.
The client-property approach for java >= 12 resulted in window resizing failing
if it causes the window to be realized. Setting the 'fullSizeContentView' and
'transparentTitleBar' client-properties resulted in a native resize happening
inside 'Component#reshape' causing unexpected resize results.
We replace it with our jni approach to have better control over what happens to the window sizes.
Fixes#230
We add a custom task to compile the module-info with a newer java version.
To ensure the module-info is correct we need to compile it together with all other project sources.
Upload the arm64 library on macos so it can be consumed by the build on other platforms. We also print the file information to check that the produced library really targets the correct arch.
To do this properly we add new flags to SystemInfo indicating whether the current arch supports X86 or is an ARM/M1 based cpu. The X86 support detection is most definitely incorrect but will work for most common processors. Relates to #240
Upgrade gradle version to 7.0. Make use of typesafe project and library accessors. These replace the current bom project.
Handle different xCode version on macOS.