diff --git a/.github/workflows/build-natives.yml b/.github/workflows/build-natives.yml
index 4670e499..f4afe8c4 100644
--- a/.github/workflows/build-natives.yml
+++ b/.github/workflows/build-natives.yml
@@ -16,36 +16,7 @@ on:
branches:
- main
-env:
- MACOSX_DEPLOYMENT_TARGET: "10.10"
-
jobs:
- apple-natives:
- runs-on: macos-13
- steps:
- - uses: actions/checkout@v4
- with:
- submodules: 'recursive'
- - name: Set up JDK 17
- uses: actions/setup-java@v4
- with:
- distribution: 'temurin'
- java-version: '17'
- - run: echo "JAVA_17=$JAVA_HOME" >> $GITHUB_ENV
- - name: Set up Gradle
- uses: gradle/actions/setup-gradle@v3
- - name: Build natives
- run: |
- ./gradlew jniGen jnigenBuildMacOsX64 jnigenBuildMacOsXARM64 jnigenBuildIOS
- - name: Test
- run: |
- ./gradlew :example:test :jsr223:test :jpms-example:run
- - name: Upload macOS natives
- uses: actions/upload-artifact@v4
- with:
- name: apple-natives
- path: ./*/libs
- retention-days: 5
most-natives:
environment: Codecov
runs-on: ubuntu-20.04
@@ -217,86 +188,12 @@ jobs:
- name: Test
run: |
./gradlew --info --stacktrace :example:test :jsr223:test :jpms-example:run
- android-testing:
- runs-on: ubuntu-latest
- strategy:
- matrix:
- api-level: [ 21 ]
- android-arch: [ 'x86_64', 'x86' ]
- include:
- - api-level: 24
- android-arch: 'x86'
- - api-level: 33
- android-arch: 'x86_64'
- needs:
- - most-natives
- steps:
- - uses: actions/checkout@v4
- with:
- submodules: 'recursive'
- - name: Set up JDK 8
- uses: actions/setup-java@v4
- with:
- distribution: 'temurin'
- java-version: '8'
- - run: echo "JAVA_8=$JAVA_HOME" >> $GITHUB_ENV
- - name: Set up JDK 11
- uses: actions/setup-java@v4
- with:
- distribution: 'temurin'
- java-version: '11'
- - run: echo "JAVA_11=$JAVA_HOME" >> $GITHUB_ENV
- - name: Set up Gradle
- uses: gradle/actions/setup-gradle@v3
- - name: Download most-natives artifact
- uses: actions/download-artifact@v4
- with:
- name: most-natives
- - name: JniGen
- run: |
- ./gradlew jniGen
- - name: Pack Android natives
- run: |
- ./gradlew :android:assemble
- - name: AVD cache
- uses: actions/cache@v4
- id: avd-cache
- with:
- path: |
- ~/.android/avd/*
- ~/.android/adb*
- key: avd-${{ matrix.api-level }}-${{ matrix.android-arch }}
- - name: Enable KVM for linux runners
- run: |
- echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
- sudo udevadm control --reload-rules
- sudo udevadm trigger --name-match=kvm
- - name: Create AVD and generate snapshot for caching
- if: steps.avd-cache.outputs.cache-hit != 'true'
- uses: reactivecircus/android-emulator-runner@v2
- with:
- api-level: ${{ matrix.api-level }}
- arch: ${{ matrix.android-arch }}
- force-avd-creation: false
- emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
- disable-animations: false
- script: echo "Generated AVD snapshot for caching."
- - name: Test on Android AVD
- uses: reactivecircus/android-emulator-runner@v2
- with:
- api-level: ${{ matrix.api-level }}
- arch: ${{ matrix.android-arch }}
- force-avd-creation: false
- emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
- disable-animations: true
- script: ./gradlew --info --stacktrace :android:android-test:connectedAndroidTest
+
pack-natives:
environment: OSSRH
needs:
- - apple-natives
- most-natives
- windows-testing
- - android-testing
- linux-testing
runs-on: ubuntu-20.04
steps:
@@ -335,9 +232,9 @@ jobs:
ant -f lua53/jni/build.xml pack-natives
ant -f lua54/jni/build.xml pack-natives
ant -f luajit/jni/build.xml pack-natives
- - name: Pack Android AAR
- run: |
- ./gradlew :android:assemble
+ # - name: Pack Android AAR
+ # run: |
+ # ./gradlew :android:assemble
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
@@ -374,18 +271,18 @@ jobs:
with:
draft: true
files: example/build/libs/example-all.jar
- mac-arm-test:
- needs:
- - pack-natives
- runs-on: macos-14
- steps:
- - name: Download example tests
- uses: actions/download-artifact@v4
- with:
- name: example
- - name: Run example tests
- run: |
- java -jar example-all.jar --test
+ # mac-arm-test:
+ # needs:
+ # - pack-natives
+ # runs-on: macos-14
+ # steps:
+ # - name: Download example tests
+ # uses: actions/download-artifact@v4
+ # with:
+ # name: example
+ # - name: Run example tests
+ # run: |
+ # java -jar example-all.jar --test
linux-arm-test:
environment: Bitrise
needs:
diff --git a/.github/workflows/publish-luajava-api.yml b/.github/workflows/publish-luajava-api.yml
index 78024200..f8dc9809 100644
--- a/.github/workflows/publish-luajava-api.yml
+++ b/.github/workflows/publish-luajava-api.yml
@@ -1,4 +1,4 @@
-name: Build
+name: Build and Publish LuaJava to Github Packages
permissions:
packages: write
diff --git a/.github/workflows/publish-natives.yml b/.github/workflows/publish-natives.yml
new file mode 100644
index 00000000..eaeabae0
--- /dev/null
+++ b/.github/workflows/publish-natives.yml
@@ -0,0 +1,43 @@
+name: Build and Publish Natives to Github Packages
+permissions:
+ packages: write
+on:
+ workflow_dispatch:
+ push:
+ branches: [main]
+ tags: ["*"]
+
+jobs:
+ build-linux-windows:
+ runs-on: ubuntu-latest
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ GITHUB_ACTOR: ${{ github.actor }}
+ GITHUB_REPOSITORY: ${{ github.repository }}
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ submodules: 'recursive'
+ - name: Set up JDK 8
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'temurin'
+ java-version: '8'
+ - name: Install cross-compilation toolchains
+ run: |
+ sudo apt update
+ sudo apt install -y --force-yes gcc g++ mingw-w64
+ sudo apt install -y --force-yes gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
+ - name: Set up Gradle
+ uses: gradle/actions/setup-gradle@v3
+ - name: Build natives for Linux/Windows
+ run: |
+ ./gradlew :luajit:jnigen :luajit:jnigenBuildLinux64 :luajit:jnigenBuildWindows64
+ ./gradlew :lua54:jnigen :lua54:jnigenBuildLinux64 :lua54:jnigenBuildWindows64
+ - name: Publish to GitHub Packages (GHCR)
+ run: |
+ ./gradlew :luajit:publish :lua54:publish --info
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ GITHUB_ACTOR: ${{ github.actor }}
+ GITHUB_REPOSITORY: ${{ github.repository }}
\ No newline at end of file
diff --git a/android/android-test/build.gradle b/android/android-test/build.gradle
deleted file mode 100644
index 1a88b48c..00000000
--- a/android/android-test/build.gradle
+++ /dev/null
@@ -1,81 +0,0 @@
-plugins {
- id 'com.android.library'
-}
-
-repositories {
- mavenLocal()
- google()
- mavenCentral()
- maven {
- url 'https://jitpack.io'
- }
-}
-
-group = rootProject.group
-version = rootProject.version
-
-ext {
- luaVersions = ['lua51', 'lua52', 'lua53', 'lua54', 'luajit']
-}
-
-// Lint involves an outdated version of Kotlin, which cause weird errors.
-lint.enabled = false
-
-android {
- namespace = project(':').group
-
- defaultConfig {
- minSdk 21
- targetSdk 34
- compileSdk 33
- versionCode 1
- versionName '3.1'
- testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
- }
-
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
- }
- }
-
- buildFeatures {
- viewBinding true
- }
-
- sourceSets {
- androidTest {
- }
- }
-
- packagingOptions {
- excludes += 'META-INF/LICENSE*'
- }
-
- compileOptions {
- coreLibraryDesugaringEnabled true
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
- }
-}
-
-dependencies {
- coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4'
- implementation project(':luajava')
- implementation project(':lua51')
- implementation project(':lua52')
- implementation project(':lua53')
- implementation project(':lua54')
- implementation project(':luajit')
- implementation project(':luaj')
- implementation project(':example:suite')
- androidTestImplementation 'junit:junit:4.13.2'
- androidTestImplementation 'androidx.test:core:1.5.0'
- androidTestImplementation 'androidx.test:rules:1.5.0'
- androidTestImplementation 'androidx.test.ext:junit:1.1.5'
- androidTestImplementation 'androidx.test:runner:1.5.2'
- luaVersions.forEach { ver ->
- androidTestImplementation files("${project(':android').buildDir}/outputs/aar/android-${ver}-release.aar")
- }
-}
diff --git a/android/android-test/src/androidTest/java/party/iroiro/luajava/AndroidLuaTest.java b/android/android-test/src/androidTest/java/party/iroiro/luajava/AndroidLuaTest.java
deleted file mode 100644
index 7eddca35..00000000
--- a/android/android-test/src/androidTest/java/party/iroiro/luajava/AndroidLuaTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package party.iroiro.luajava;
-
-import java.lang.reflect.Constructor;
-import org.junit.Test;
-import party.iroiro.luajava.lua51.Lua51;
-import party.iroiro.luajava.lua52.Lua52;
-import party.iroiro.luajava.lua53.Lua53;
-import party.iroiro.luajava.lua54.Lua54;
-import party.iroiro.luajava.luajit.LuaJit;
-
-public class AndroidLuaTest {
- @Test
- public void lua51Test() {
- try (Lua51 L = new Lua51()) {
- new LuaTestSuite<>(L, Lua51::new).test();
- }
- }
-
- @Test
- public void lua52Test() {
- try (Lua52 L = new Lua52()) {
- new LuaTestSuite<>(L, Lua52::new).test();
- }
- }
-
- @Test
- public void lua53Test() {
- try (Lua53 L = new Lua53()) {
- new LuaTestSuite<>(L, Lua53::new).test();
- }
- }
-
- @Test
- public void lua54Test() {
- try (Lua54 L = new Lua54()) {
- new LuaTestSuite<>(L, Lua54::new).test();
- }
- }
-
- @Test
- public void luaJitTest() {
- try (LuaJit L = new LuaJit()) {
- new LuaTestSuite<>(L, LuaJit::new).test();
- }
- }
-
- @Test
- public void luaJTest() {
- org.junit.Assume.assumeTrue(android.os.Build.VERSION.SDK_INT >= 30);
- try (AbstractLua L = getLuaJ()) {
- new LuaTestSuite<>(L, AndroidLuaTest::getLuaJ).test();
- }
- }
-
- public static AbstractLua getLuaJ() {
- try {
- Constructor> constructor = Class.forName("party.iroiro.luajava.luaj.LuaJ")
- .getConstructor();
- return (AbstractLua) constructor.newInstance();
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
-
-}
diff --git a/android/android-test/src/androidTest/java/party/iroiro/luajava/AndroidScriptTest.java b/android/android-test/src/androidTest/java/party/iroiro/luajava/AndroidScriptTest.java
deleted file mode 100644
index ccf8822a..00000000
--- a/android/android-test/src/androidTest/java/party/iroiro/luajava/AndroidScriptTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package party.iroiro.luajava;
-
-import org.junit.Test;
-import party.iroiro.luajava.lua51.Lua51;
-import party.iroiro.luajava.lua52.Lua52;
-import party.iroiro.luajava.lua53.Lua53;
-import party.iroiro.luajava.lua54.Lua54;
-import party.iroiro.luajava.luajit.LuaJit;
-
-public class AndroidScriptTest {
- @Test
- public void lua51Test() {
- try (Lua51 L = new Lua51()) {
- new LuaScriptSuite<>(L).test();
- }
- }
-
- @Test
- public void lua52Test() {
- try (Lua52 L = new Lua52()) {
- new LuaScriptSuite<>(L).test();
- }
- }
-
- @Test
- public void lua53Test() {
- try (Lua53 L = new Lua53()) {
- new LuaScriptSuite<>(L).test();
- }
- }
-
- @Test
- public void lua54Test() {
- try (Lua54 L = new Lua54()) {
- new LuaScriptSuite<>(L).test();
- }
- }
-
- @Test
- public void luaJitTest() {
- try (LuaJit L = new LuaJit()) {
- new LuaScriptSuite<>(L).test();
- }
- }
-
- @Test
- public void luaJTest() {
- org.junit.Assume.assumeTrue(android.os.Build.VERSION.SDK_INT >= 30);
- try (AbstractLua L = AndroidLuaTest.getLuaJ()) {
- new LuaScriptSuite<>(L).test();
- }
- }
-
- @Test
- public void memoryTest() {
- //noinspection resource
- Lua[] Ls = new Lua[]{
- new Lua51(),
- new Lua52(),
- new Lua53(),
- new Lua54(),
- new LuaJit(),
- };
- for (Lua L : Ls) {
- LuaScriptSuite.memoryTest(L);
- L.close();
- }
- if (android.os.Build.VERSION.SDK_INT >= 30) {
- Lua L = AndroidLuaTest.getLuaJ();
- LuaScriptSuite.memoryTest(L);
- L.close();
- }
- }
-}
diff --git a/android/android-test/src/androidTest/java/party/iroiro/luajava/AndroidValueTest.java b/android/android-test/src/androidTest/java/party/iroiro/luajava/AndroidValueTest.java
deleted file mode 100644
index 5d717fe6..00000000
--- a/android/android-test/src/androidTest/java/party/iroiro/luajava/AndroidValueTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package party.iroiro.luajava;
-
-import org.junit.Test;
-import party.iroiro.luajava.lua51.Lua51;
-import party.iroiro.luajava.lua52.Lua52;
-import party.iroiro.luajava.lua53.Lua53;
-import party.iroiro.luajava.lua54.Lua54;
-import party.iroiro.luajava.luajit.LuaJit;
-import party.iroiro.luajava.value.LuaValueSuite;
-
-public class AndroidValueTest {
- @Test
- public void lua51Test() {
- try (Lua51 L = new Lua51()) {
- new LuaValueSuite<>(L).test();
- }
- }
-
- @Test
- public void lua52Test() {
- try (Lua52 L = new Lua52()) {
- new LuaValueSuite<>(L).test();
- }
- }
-
- @Test
- public void lua53Test() {
- try (Lua53 L = new Lua53()) {
- new LuaValueSuite<>(L).test();
- }
- }
-
- @Test
- public void lua54Test() {
- try (Lua54 L = new Lua54()) {
- new LuaValueSuite<>(L).test();
- }
- }
-
- @Test
- public void luaJitTest() {
- try (LuaJit L = new LuaJit()) {
- new LuaValueSuite<>(L).test();
- }
- }
-
- @Test
- public void luaJTest() {
- org.junit.Assume.assumeTrue(android.os.Build.VERSION.SDK_INT >= 30);
- try (Lua L = AndroidLuaTest.getLuaJ()) {
- new LuaValueSuite<>(L).test();
- }
- }
-
-}
diff --git a/android/android-test/src/main/AndroidManifest.xml b/android/android-test/src/main/AndroidManifest.xml
deleted file mode 100644
index 76073216..00000000
--- a/android/android-test/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/android/build.gradle b/android/build.gradle
deleted file mode 100644
index 83974a11..00000000
--- a/android/build.gradle
+++ /dev/null
@@ -1,149 +0,0 @@
-plugins {
- id 'com.android.library'
-}
-
-repositories {
- mavenLocal()
- google()
- mavenCentral()
-}
-
-group = rootProject.group
-version = rootProject.version
-
-ext {
- luaVersions = ['lua51', 'lua52', 'lua53', 'lua54', 'luajit']
-}
-
-android {
- namespace = project(':').group
-
- defaultConfig {
- minSdk 21
- targetSdk 34
- compileSdk 33
- versionCode 1
- versionName '3.1'
- }
-
- sourceSets { container ->
- luaVersions.each { v ->
- String ver = v
- container.create(ver) {
- namespace "${project(':').group}.${ver}"
- manifest.srcFile 'AndroidManifest.xml'
- jniLibs.srcDirs = ["${ver}-libs"]
- }
- }
- }
-
- flavorDimensions += 'lua'
-
- productFlavors { container ->
- luaVersions.each { ver ->
- String v = ver
- container.create(v) {
- dimension 'lua'
- }
- }
- }
-
- buildTypes { container ->
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
- }
- debug {
- matchingFallbacks ['release']
- }
- }
-
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
- }
-}
-
-tasks.register('copyAndroidNatives') {
- doFirst {
- List platforms = ['armeabi-v7a', 'arm64-v8a', 'x86_64', 'x86']
- luaVersions.forEach { ver ->
- platforms.forEach { platform ->
- String outputDir = "${ver}-libs/${platform}"
- file(outputDir).mkdirs()
-
- copy {
- from fileTree(project(":${ver}").projectDir.toPath().toAbsolutePath()
- .resolve("libs/${platform}"))
- into outputDir
- include "*.so"
- }
- }
- }
- }
-}
-
-tasks.configureEach { packageTask ->
- if (packageTask.name.contains("merge") && packageTask.name.contains("JniLibFolders")) {
- packageTask.dependsOn 'copyAndroidNatives'
- }
-}
-
-apply plugin: 'maven-publish'
-apply plugin: 'signing'
-
-apply from: project(':').file('pom.gradle')
-
-afterEvaluate {
- generateLua51ReleaseBuildConfig.enabled = false
- generateLua52ReleaseBuildConfig.enabled = false
- generateLua53ReleaseBuildConfig.enabled = false
- generateLua54ReleaseBuildConfig.enabled = false
- generateLuajitReleaseBuildConfig.enabled = false
-
- publishing {
- publications {
- create('default', MavenPublication) { container ->
- setPom(pom, '')
- luaVersions.each { v ->
- String ver = v
- String path = "${buildDir}/outputs/aar/android-${ver}-release.aar"
- file(path).getParentFile().mkdirs()
- file(path).createNewFile()
- container.artifact(path) {
- classifier ver
- extension 'aar'
- }
- }
- }
- }
-
- repositories {
- maven {
- name = 'OSSRH'
- url = rootProject.version.toString().endsWith('-SNAPSHOT')
- ? 'https://s01.oss.sonatype.org/content/repositories/snapshots/'
- : 'https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/'
- credentials {
- username = System.getenv("MAVEN_USERNAME")
- password = System.getenv("MAVEN_PASSWORD")
- }
- }
- }
- }
-
- signing {
- useInMemoryPgpKeys(
- System.getenv("GPG_KEY_ID"),
- System.getenv("GPG_SECKEY"),
- System.getenv("GPG_PASSPHRASE"),
- )
- sign publishing.publications.default
- }
-}
-
-tasks.configureEach { packageTask ->
- if (packageTask.name.toLowerCase().contains("maven")) {
- packageTask.dependsOn 'assemble'
- }
-}
diff --git a/android/gradle.properties b/android/gradle.properties
deleted file mode 100644
index c0998c7b..00000000
--- a/android/gradle.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-POM_NAME = Lua Android Binaries
-POM_DESCRIPTION = Lua Native Binaries For Android
diff --git a/android/proguard-rules.pro b/android/proguard-rules.pro
deleted file mode 100644
index 16823d57..00000000
--- a/android/proguard-rules.pro
+++ /dev/null
@@ -1 +0,0 @@
--keep class party.iroiro.luajava.JuaAPI
diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml
deleted file mode 100644
index 76073216..00000000
--- a/android/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/build.gradle b/build.gradle
index e2e95aa5..0cd89395 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,22 +1,15 @@
group 'party.iroiro.luajava'
-version(System.getenv('IS_RELEASE') == 'true' ? '4.0.2' : '4.0.3-SNAPSHOT')
+version(System.getenv('IS_RELEASE') == 'true' ? '4.0.2' : '4.0.4-SNAPSHOT')
-buildscript {
- repositories {
- google()
- mavenCentral()
- }
- dependencies {
- classpath 'com.android.tools.build:gradle:7.4.2'
- }
-}
repositories {
mavenLocal()
mavenCentral()
}
+
+// Only keep desktop subprojects, remove android and android-test from build
subprojects { it ->
if (!['android', 'android-test', 'jpms-example'].contains(it.name)) {
apply plugin: 'java'
diff --git a/lua51/build.gradle b/lua51/build.gradle
index 524dd9dc..34202e96 100644
--- a/lua51/build.gradle
+++ b/lua51/build.gradle
@@ -49,49 +49,15 @@ jnigen {
libraries = ' -lm '
}
- add(Windows, x32)
add(Windows, x64)
- add(Windows, x64, ARM)
-
- add(Linux, x32)
add(Linux, x64)
- add(Linux, x32, ARM)
add(Linux, x64, ARM)
- // TODO: Until we have a RISCV toolchain on Ubuntu.
- // add(Linux, x64, RISCV)
each({ it.os == Linux }) {
String linuxFlags = ' -D_FORTIFY_SOURCE=0 -DLUA_USE_DLOPEN '
cFlags += linuxFlags
cppFlags += linuxFlags
}
-
- add(MacOsX, x64)
- add(MacOsX, x64, ARM)
- each({ it.os == MacOsX }) {
- String macFlags = ' -DLUA_USE_DLOPEN '
- libraries = ''
- cFlags += macFlags
- cppFlags += macFlags
- }
-
- add(Android) {
- String androidFlags = ' -D_FORTIFY_SOURCE=1 -DLUA_USE_DLOPEN '
- cFlags += androidFlags
- cppFlags += androidFlags
- androidApplicationMk = [
- 'APP_PLATFORM := android-21',
- "APP_CFLAG :=$androidFlags",
- ]
- }
-
- robovm {
- forceLinkClasses "java.lang.Class", "java.lang.Throwable", "party.iroiro.luajava.JuaAPI"
- }
- add(IOS, x64) {
- libraries = ''
- xcframeworkBundleIdentifier = "party.iroiro.luajava.lua51"
- minIOSVersion = "11.0"
- }
+ // Removed Android, iOS, MacOS, robovm, and other extra targets for minimal desktop build
}
artifacts {
diff --git a/lua52/build.gradle b/lua52/build.gradle
index 6497cdc2..c21b2272 100644
--- a/lua52/build.gradle
+++ b/lua52/build.gradle
@@ -51,49 +51,15 @@ jnigen {
libraries = ' -lm '
}
- add(Windows, x32)
add(Windows, x64)
- add(Windows, x64, ARM)
-
- add(Linux, x32)
add(Linux, x64)
- add(Linux, x32, ARM)
add(Linux, x64, ARM)
- // TODO: Until we have a RISCV toolchain on Ubuntu.
- // add(Linux, x64, RISCV)
each({ it.os == Linux }) {
String linuxFlags = ' -D_FORTIFY_SOURCE=0 -DLUA_USE_DLOPEN '
cFlags += linuxFlags
cppFlags += linuxFlags
}
-
- add(MacOsX, x64)
- add(MacOsX, x64, ARM)
- each({ it.os == MacOsX }) {
- String macFlags = ' -DLUA_USE_DLOPEN '
- libraries = ''
- cFlags += macFlags
- cppFlags += macFlags
- }
-
- add(Android) {
- String androidFlags = ' -D_FORTIFY_SOURCE=1 -DLUA_USE_DLOPEN '
- cFlags += androidFlags
- cppFlags += androidFlags
- androidApplicationMk = [
- 'APP_PLATFORM := android-21',
- "APP_CFLAG :=$androidFlags",
- ]
- }
-
- robovm {
- forceLinkClasses "java.lang.Class", "java.lang.Throwable", "party.iroiro.luajava.JuaAPI"
- }
- add(IOS, x64) {
- libraries = ''
- xcframeworkBundleIdentifier = "party.iroiro.luajava.lua52"
- minIOSVersion = "11.0"
- }
+ // Removed Android, iOS, MacOS, robovm, and other extra targets for minimal desktop build
}
artifacts {
diff --git a/lua53/build.gradle b/lua53/build.gradle
index d1838889..1e8d2164 100644
--- a/lua53/build.gradle
+++ b/lua53/build.gradle
@@ -51,49 +51,15 @@ jnigen {
libraries = ' -lm '
}
- add(Windows, x32)
add(Windows, x64)
- add(Windows, x64, ARM)
-
- add(Linux, x32)
add(Linux, x64)
- add(Linux, x32, ARM)
add(Linux, x64, ARM)
- // TODO: Until we have a RISCV toolchain on Ubuntu.
- // add(Linux, x64, RISCV)
each({ it.os == Linux }) {
String linuxFlags = ' -D_FORTIFY_SOURCE=0 -DLUA_USE_DLOPEN '
cFlags += linuxFlags
cppFlags += linuxFlags
}
-
- add(MacOsX, x64)
- add(MacOsX, x64, ARM)
- each({ it.os == MacOsX }) {
- String macFlags = ' -DLUA_USE_DLOPEN '
- libraries = ''
- cFlags += macFlags
- cppFlags += macFlags
- }
-
- add(Android) {
- String androidFlags = ' -D_FORTIFY_SOURCE=1 -DLUA_USE_DLOPEN '
- cFlags += androidFlags
- cppFlags += androidFlags
- androidApplicationMk = [
- 'APP_PLATFORM := android-21',
- "APP_CFLAG :=$androidFlags",
- ]
- }
-
- robovm {
- forceLinkClasses "java.lang.Class", "java.lang.Throwable", "party.iroiro.luajava.JuaAPI"
- }
- add(IOS, x64) {
- libraries = ''
- xcframeworkBundleIdentifier = "party.iroiro.luajava.lua53"
- minIOSVersion = "11.0"
- }
+ // Removed Android, iOS, MacOS, robovm, and other extra targets for minimal desktop build
}
artifacts {
diff --git a/lua54/build.gradle b/lua54/build.gradle
index 662e1302..77204763 100644
--- a/lua54/build.gradle
+++ b/lua54/build.gradle
@@ -51,49 +51,15 @@ jnigen {
libraries = ' -lm '
}
- add(Windows, x32)
add(Windows, x64)
- add(Windows, x64, ARM)
-
- add(Linux, x32)
add(Linux, x64)
- add(Linux, x32, ARM)
add(Linux, x64, ARM)
- // TODO: Until we have a RISCV toolchain on Ubuntu.
- // add(Linux, x64, RISCV)
each({ it.os == Linux }) {
String linuxFlags = ' -D_FORTIFY_SOURCE=0 -DLUA_USE_DLOPEN '
cFlags += linuxFlags
cppFlags += linuxFlags
}
-
- add(MacOsX, x64)
- add(MacOsX, x64, ARM)
- each({ it.os == MacOsX }) {
- String macFlags = ' -DLUA_USE_DLOPEN '
- libraries = ''
- cFlags += macFlags
- cppFlags += macFlags
- }
-
- add(Android) {
- String androidFlags = ' -D_FORTIFY_SOURCE=1 -DLUA_USE_DLOPEN '
- cFlags += androidFlags
- cppFlags += androidFlags
- androidApplicationMk = [
- 'APP_PLATFORM := android-21',
- "APP_CFLAG :=$androidFlags",
- ]
- }
-
- robovm {
- forceLinkClasses "java.lang.Class", "java.lang.Throwable", "party.iroiro.luajava.JuaAPI"
- }
- add(IOS, x64) {
- libraries = ''
- xcframeworkBundleIdentifier = "party.iroiro.luajava.lua54"
- minIOSVersion = "11.0"
- }
+ // Removed Android, iOS, MacOS, robovm, and other extra targets for minimal desktop build
}
artifacts {
diff --git a/lua54/jni/lua54 b/lua54/jni/lua54
index 1ab3208a..d1ee2a4d 160000
--- a/lua54/jni/lua54
+++ b/lua54/jni/lua54
@@ -1 +1 @@
-Subproject commit 1ab3208a1fceb12fca8f24ba57d6e13c5bff15e3
+Subproject commit d1ee2a4deb06a335b9ff99530917b828a7ebe3e5
diff --git a/luajit/build.gradle b/luajit/build.gradle
index 5372c3bf..bc12b99a 100644
--- a/luajit/build.gradle
+++ b/luajit/build.gradle
@@ -41,21 +41,10 @@ dependencies {
}
enum Platform {
- Android,
- IOS,
- // Linux
+ // Only keep Linux and Windows platforms needed
Linux64,
- Linux32,
- ARM,
AArch64,
- // Windows
- Win32,
Win64,
- WinAArch64,
- // MacOsX
- MacOsX,
- MacOsXAArch64,
- MacOsXMerged, // Merged libluajit.a
}
// Builds LuaJIT and copies the output libluajit.a to jni/luajit/lib/${platform}
@@ -113,47 +102,19 @@ void buildLuaTargets(String... targets) {
}
buildLuaTargets(
- addLuaJitTarget(Platform.Android,
- ['bash', '../scripts/build-android.sh']),
- addLuaJitTarget(Platform.IOS,
- ['bash', '../scripts/build-ios.sh']),
addLuaJitTarget(Platform.Linux64,
['make', 'amalg',
'CC=gcc -m64 -D_FORTIFY_SOURCE=0', 'CFLAGS=-fPIC ',
'TARGET_SYS=Linux']),
- addLuaJitTarget(Platform.Linux32,
- ['make', 'amalg',
- 'CC=gcc -m32 -I/usr/i686-linux-gnu/include -D_FORTIFY_SOURCE=0', 'CFLAGS=-fPIC',
- 'TARGET_SYS=Linux']),
- addLuaJitTarget(Platform.ARM,
- ['make', 'amalg',
- 'HOST_CC=gcc -m32 -I/usr/i686-linux-gnu/include -D_FORTIFY_SOURCE=0', 'CFLAGS=-fPIC',
- 'TARGET_SYS=Linux', 'CROSS=arm-linux-gnueabihf-']),
addLuaJitTarget(Platform.AArch64,
['make', 'amalg',
'HOST_CC=gcc -m64 -D_FORTIFY_SOURCE=0', 'CFLAGS=-fPIC',
'TARGET_SYS=Linux', 'CROSS=aarch64-linux-gnu-']),
- addLuaJitTarget(Platform.Win32,
- ['make', 'amalg',
- 'HOST_CC=gcc -m32 -I/usr/i686-linux-gnu/include', 'CFLAGS=-fPIC',
- 'BUILDMODE=static',
- 'CROSS=i686-w64-mingw32-', 'TARGET_SYS=Windows']),
addLuaJitTarget(Platform.Win64,
['make', 'amalg',
'HOST_CC=gcc -m64', 'CFLAGS=-fPIC',
'BUILDMODE=static',
- 'CROSS=x86_64-w64-mingw32-', 'TARGET_SYS=Windows']),
- addLuaJitTarget(Platform.WinAArch64,
- ['make', 'amalg',
- 'HOST_CC=gcc -m64', 'CFLAGS=-fPIC',
- 'BUILDMODE=static',
- 'CROSS=aarch64-w64-mingw32-', 'TARGET_SYS=Windows']),
- addLuaJitTarget(Platform.MacOsX,
- ['make', 'amalg', 'TARGET_FLAGS=-arch x86_64',
- 'CFLAGS=-fPIC', 'TARGET_SYS=Darwin']),
- addLuaJitTarget(Platform.MacOsXAArch64,
- ['make', 'amalg', 'TARGET_FLAGS=-arch arm64',
- 'CFLAGS=-fPIC', 'TARGET_SYS=Darwin']),
+ 'CROSS=x86_64-w64-mingw32-', 'TARGET_SYS=Windows'])
)
void linkerConfig(BuildTarget it, Platform platform) {
@@ -175,88 +136,27 @@ jnigen {
cExcludes = ['luajit/**/*']
libraries += ' -lm -lluajit '
headerDirs = ['../../jni/luajava', 'luajit/src', 'mod']
+ cFlags += ' -DLUAJIT_ENABLE_LUA52COMPAT'
+ cppFlags += ' -DLUAJIT_ENABLE_LUA52COMPAT'
}
add(Linux, x64, x86, {
linkerConfig(it, Platform.Linux64)
})
- add(Linux, x32, x86, {
- linkerConfig(it, Platform.Linux32)
- })
- add(Linux, x32, ARM, {
- linkerConfig(it, Platform.ARM)
- })
add(Linux, x64, ARM, {
linkerConfig(it, Platform.AArch64)
})
-
- add(Windows, x32, x86, {
- linkerConfig(it, Platform.Win32)
- })
add(Windows, x64, x86, {
linkerConfig(it, Platform.Win64)
})
- add(Windows, x64, ARM) {
- linkerConfig(it, Platform.WinAArch64)
- }
-
- add(MacOsX, x64, x86, {
- linkerConfig(it, Platform.MacOsXMerged)
- })
- add(MacOsX, x64, ARM, {
- linkerConfig(it, Platform.MacOsXMerged)
- })
-
- robovm {
- forceLinkClasses "java.lang.Class", "java.lang.Throwable", "party.iroiro.luajava.JuaAPI"
- }
- add(IOS, x64) {
- xcframeworkBundleIdentifier = "party.iroiro.luajava.luajit"
- minIOSVersion = "11.0"
- }
-
- add(Android) {
- cFlags += ' -D_FORTIFY_SOURCE=1 '
- cppFlags += ' -D_FORTIFY_SOURCE=1 '
- androidABIs = ['armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64']
- androidApplicationMk = [
- 'APP_PLATFORM := android-21',
- 'APP_CFLAGS := -D_FORTIFY_SOURCE=1 ',
- ]
- linkerFlags += " -L${projectDir}/jni/luajit/lib/android/\$(TARGET_ARCH_ABI) -lluajit "
- }
+ // Removed Android, iOS, MacOS, robovm, and other extra targets for minimal desktop build
}
-tasks.register('buildLuaMacOsXMerge', {
- dependsOn tasks.buildLuaMacOsX, tasks.buildLuaMacOsXAArch64
- String pathX86 = "lib/${Platform.MacOsX.toString().toLowerCase()}"
- String pathAArch64 = "lib/${Platform.MacOsXAArch64.toString().toLowerCase()}"
- String pathA = "lib/${Platform.MacOsXMerged.toString().toLowerCase()}"
- doLast {
- exec {
- workingDir 'jni/luajit'
- commandLine 'mkdir', '-p', pathA
- }
- exec {
- workingDir 'jni/luajit'
- commandLine 'lipo', '-create',
- "${pathX86}/libluajit.a", "${pathAArch64}/libluajit.a",
- '-output', "${pathA}/libluajit.a"
- }
- }
-})
-tasks.jnigenBuildLinux.dependsOn(tasks.buildLuaLinux32)
+// Removed MacOS, Android, iOS, and other extra build dependencies for minimal desktop build
tasks.jnigenBuildLinux64.dependsOn(tasks.buildLuaLinux64)
-tasks.jnigenBuildLinuxARM.dependsOn(tasks.buildLuaARM)
tasks.jnigenBuildLinuxARM64.dependsOn(tasks.buildLuaAArch64)
-tasks.jnigenBuildWindows.dependsOn(tasks.buildLuaWin32)
tasks.jnigenBuildWindows64.dependsOn(tasks.buildLuaWin64)
-tasks.jnigenBuildWindowsARM64.dependsOn(tasks.buildLuaWinAArch64)
-tasks.jnigenBuildMacOsX64.dependsOn(tasks.buildLuaMacOsXMerge)
-tasks.jnigenBuildAndroid.dependsOn(tasks.buildLuaAndroid)
-tasks.jnigenBuildIOS64.dependsOn(tasks.buildLuaIOS)
-tasks.buildLuaIOS.dependsOn(tasks.jnigen)
void addPatchElfTask(String platform) {
String target = "patchElf${platform}"
@@ -297,15 +197,8 @@ void addPatchElfTask(String platform) {
}
}
-addPatchElfTask('Linux32')
-addPatchElfTask('Linux64')
-addPatchElfTask('LinuxARM32')
-addPatchElfTask('LinuxARM64')
-tasks.jnigenBuildLinux.finalizedBy(tasks.patchElfLinux32)
-tasks.jnigenBuildLinux64.finalizedBy(tasks.patchElfLinux64)
-tasks.jnigenBuildLinuxARM.finalizedBy(tasks.patchElfLinuxARM32)
-tasks.jnigenBuildLinuxARM64.finalizedBy(tasks.patchElfLinuxARM64)
+// Removed patchElf tasks for non-desktop targets and only kept relevant finalizedBy for supported platforms
apply plugin: 'com.badlogicgames.gdx.gdx-jnigen'
diff --git a/luajit/jni/luajit b/luajit/jni/luajit
index f5fd2220..eec7a801 160000
--- a/luajit/jni/luajit
+++ b/luajit/jni/luajit
@@ -1 +1 @@
-Subproject commit f5fd22203eadf57ccbaa4a298010d23974b22fc0
+Subproject commit eec7a8016c3381b949b5d84583800d05897fa960
diff --git a/publish.gradle b/publish.gradle
index b28ed4c8..d2768cba 100644
--- a/publish.gradle
+++ b/publish.gradle
@@ -29,44 +29,28 @@ configure([
fromResolutionOf('runtimeClasspath')
}
usage('java-runtime') {
- //noinspection GroovyImplicitNullArgumentCall
fromResolutionResult()
}
}
-
setPom(pom, '')
}
-
if (project.tasks.findByName('jnigen')) {
mavenPlatform(MavenPublication) {
artifactId = artifactId + '-platform'
-
if (project.tasks.findByName('jnigenJarNativesDesktop')) {
artifact jnigenJarNativesDesktop {}
}
- if (project.tasks.findByName('jnigenJarNativesIOS')) {
- artifact jnigenJarNativesIOS {}
- }
- // TODO: Add riscv64 to the list once Android NDK & jnigen supports RISC-V Android builds.
- ['arm64-v8a', 'armeabi-v7a', 'x86_64', 'x86'].each { arch ->
- if (project.tasks.findByName("jnigenJarNativesAndroid$arch")) {
- artifact "jnigenJarNativesAndroid$arch" {}
- }
- }
setPom(pom, ' Native Libraries')
}
}
}
-
repositories {
maven {
- name = 'OSSRH'
- url = rootProject.version.toString().endsWith('-SNAPSHOT')
- ? 'https://s01.oss.sonatype.org/content/repositories/snapshots/'
- : 'https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/'
+ name = 'GitHubPackages'
+ url = "https://maven.pkg.github.com/${System.getenv('GITHUB_REPOSITORY')}"
credentials {
- username = System.getenv("MAVEN_USERNAME")
- password = System.getenv("MAVEN_PASSWORD")
+ username = System.getenv("GITHUB_ACTOR")
+ password = System.getenv("GITHUB_TOKEN")
}
}
}
diff --git a/settings.gradle b/settings.gradle
index 75ed204d..0b0effc1 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -9,6 +9,4 @@ include ':luajava',
':jsr223',
':example',
':example:suite',
- ':jpms-example',
- ':android',
- ':android:android-test'
+ ':jpms-example'