diff --git a/.gitattributes b/.gitattributes index 3ab79411..c3a3cc0a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -15,8 +15,11 @@ # BINARY FILES: # Disable line ending normalize on checkin. +*.dll binary +*.dylib binary *.gif binary *.jar binary *.png binary *.sketch binary +*.so binary *.zip binary diff --git a/.github/workflows/natives.yml b/.github/workflows/natives.yml new file mode 100644 index 00000000..8291ac36 --- /dev/null +++ b/.github/workflows/natives.yml @@ -0,0 +1,56 @@ +# https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle + +name: Native Libraries + +on: + push: + branches: + - '*' + tags: + - '[0-9]*' + paths: + - '**.cpp' + - '**.h' + pull_request: + branches: + - '*' + paths: + - '**.cpp' + - '**.h' + +jobs: + Windows: + runs-on: windows-latest + + steps: + - uses: actions/checkout@v2 + + - uses: gradle/wrapper-validation-action@v1 + + - name: Setup Java 1.8 + uses: actions/setup-java@v1 + with: + java-version: 1.8 + + - name: Cache Gradle wrapper + uses: actions/cache@v1 + with: + path: ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties') }} + + - name: Cache Gradle cache + uses: actions/cache@v2 + with: + path: ~/.gradle/caches + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle.kts') }} + restore-keys: ${{ runner.os }}-gradle + + - name: Build with Gradle + run: ./gradlew :flatlaf-natives-windows:build + + - name: Upload artifacts + uses: actions/upload-artifact@v2 + with: + name: FlatLaf-natives-windows-build-artifacts + path: | + flatlaf-natives/flatlaf-natives-windows/build diff --git a/flatlaf-core/build.gradle.kts b/flatlaf-core/build.gradle.kts index 7d6c5038..3854d8ea 100644 --- a/flatlaf-core/build.gradle.kts +++ b/flatlaf-core/build.gradle.kts @@ -27,6 +27,16 @@ java { } tasks { + compileJava { + // generate JNI headers + options.headerOutputDirectory.set( buildDir.resolve( "generated/jni-headers" ) ) + } + + processResources { + // build native libraries + dependsOn( ":flatlaf-natives-windows:assemble" ) + } + jar { archiveBaseName.set( "flatlaf" ) diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java index a8914ea9..fa6f0402 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java @@ -165,7 +165,7 @@ public abstract class FlatLaf *

* Returns also {@code false} on Windows 10 if: *