From aa5e03c9c2e30b1d3e203f10b2723312772efc7d Mon Sep 17 00:00:00 2001 From: Adam Sotona Date: Thu, 8 Dec 2022 13:16:33 +0100 Subject: [PATCH] #9 Provide Arm Build for mac --- README.md | 2 +- build-natives-eris_mac.sh | 4 ++-- build.gradle | 5 +++-- native/Makefile.mac | 1 - publishNatives.gradle | 2 +- src/main/java/org/terasology/jnlua/NativeSupport.java | 4 +++- 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 87c62f1..40e1463 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ To build the Java side of JNLua, a simple "./gradlew build" is sufficient. Building the natives is more involved. Generally, JNLua expects natives to be present with the following filenames: -libjnlua-[5.2,5.3]-[windows,linux]-[i686,amd64].[dll,so] +libjnlua-[5.2,5.3]-[windows,linux,mac]-[i686,amd64,aarch64].[dll,so] To build the natives on Linux you need: diff --git a/build-natives-eris_mac.sh b/build-natives-eris_mac.sh index 10cc725..fbf68b0 100755 --- a/build-natives-eris_mac.sh +++ b/build-natives-eris_mac.sh @@ -11,7 +11,7 @@ fi cd native for lua_ver in 5.2 5.3; do -for arch_type in amd64; do +for arch_type in amd64 aarch64; do for plat_type in mac; do MY_GCC="gcc" @@ -46,7 +46,7 @@ make CC="$MY_GCC" CFLAGS="$MY_CFLAGS $MY_LUA_CFLAGS" LDFLAGS="$MY_LDFLAGS" $LUA_ cd ../native rm *.dll *.so build/*.o -CFLAGS="$MY_CFLAGS -DJNLUA_USE_ERIS -DLUA_USE_POSIX" LDFLAGS="$MY_LDFLAGS" ARCH=amd64 JNLUA_SUFFIX="$MY_JNLUA_SUFFIX" \ +CFLAGS="$MY_CFLAGS -DJNLUA_USE_ERIS -DLUA_USE_POSIX" LDFLAGS="$MY_LDFLAGS" ARCH="$arch_type" JNLUA_SUFFIX="$MY_JNLUA_SUFFIX" \ LUA_LIB_NAME=lua LUA_INC_DIR=../eris/src LUA_LIB_DIR=../eris/src LIB_SUFFIX="$MY_LIB_SUFFIX" \ CC="$MY_GCC" LUA_VERSION="$lua_ver" \ make -f Makefile.mac libjnlua diff --git a/build.gradle b/build.gradle index 5ca53db..c37b22f 100644 --- a/build.gradle +++ b/build.gradle @@ -18,10 +18,11 @@ sourceCompatibility = 1.8 targetCompatibility = 1.8 dependencies { - testCompile 'junit:junit:4.12' + testImplementation("junit:junit:4.13.2") + testRuntimeOnly("org.junit.vintage:junit-vintage-engine:5.8.2") } -version = '0.1.0-SNAPSHOT' +version = '0.1.1-SNAPSHOT' group = 'org.terasology.jnlua' tasks.withType(Test) { diff --git a/native/Makefile.mac b/native/Makefile.mac index 26398c4..8fb440b 100644 --- a/native/Makefile.mac +++ b/native/Makefile.mac @@ -6,7 +6,6 @@ JNLUA_SUFFIX?=53 LUA_INC_DIR?=/usr/include/lua$(LUA_VERSION) LUA_LIB_NAME?=lua$(LUA_VERSION) LIB_SUFFIX?=so -ARCH?=amd64 CFLAGS?=-O2 -DLUA_USE_POSIX LDFLAGS?= diff --git a/publishNatives.gradle b/publishNatives.gradle index 6e99fec..0a3d0dc 100644 --- a/publishNatives.gradle +++ b/publishNatives.gradle @@ -1,7 +1,7 @@ apply plugin: 'base' apply plugin: 'maven-publish' -version = '0.1.0-SNAPSHOT' +version = '0.1.1-SNAPSHOT' group = 'org.terasology.jnlua' task zipNatives(type: Zip) { diff --git a/src/main/java/org/terasology/jnlua/NativeSupport.java b/src/main/java/org/terasology/jnlua/NativeSupport.java index a62b294..f25bf02 100644 --- a/src/main/java/org/terasology/jnlua/NativeSupport.java +++ b/src/main/java/org/terasology/jnlua/NativeSupport.java @@ -112,7 +112,9 @@ public void load(Class src) { builder.append("linux-"); } - if (System.getProperty("os.arch").endsWith("64")) { + if (System.getProperty("os.arch").endsWith("aarch64")) { + builder.append("aarch64"); + } else if (System.getProperty("os.arch").endsWith("64")) { // Assume x86_64 builder.append("amd64"); } else {