diff --git a/pom.xml b/pom.xml index 1e8874a0..f94b76b7 100644 --- a/pom.xml +++ b/pom.xml @@ -70,6 +70,18 @@ org.hamcrest hamcrest + + org.lmdbjava + lmdbjava-native-linux-aarch64 + 0.9.24-2-SNAPSHOT + true + + + org.lmdbjava + lmdbjava-native-linux-ppc64le + 0.9.24-2-SNAPSHOT + true + org.lmdbjava lmdbjava-native-linux-x86_64 @@ -112,6 +124,8 @@ maven-dependency-plugin + org.lmdbjava:lmdbjava-native-linux-ppc64le + org.lmdbjava:lmdbjava-native-linux-aarch64 org.lmdbjava:lmdbjava-native-linux-x86_64 org.lmdbjava:lmdbjava-native-windows-x86_64 org.lmdbjava:lmdbjava-native-osx-x86_64 @@ -142,6 +156,8 @@ + org.lmdbjava:lmdbjava-native-linux-ppc64le + org.lmdbjava:lmdbjava-native-linux-aarch64 org.lmdbjava:lmdbjava-native-linux-x86_64 org.lmdbjava:lmdbjava-native-windows-x86_64 org.lmdbjava:lmdbjava-native-osx-x86_64 diff --git a/src/main/java/org/lmdbjava/Library.java b/src/main/java/org/lmdbjava/Library.java index 18d3e717..7e9aeb6c 100644 --- a/src/main/java/org/lmdbjava/Library.java +++ b/src/main/java/org/lmdbjava/Library.java @@ -102,8 +102,12 @@ final class Library { final String libToLoad; final String arch = getProperty("os.arch"); - final boolean arch64 = "x64".equals(arch) || "amd64".equals(arch) + final boolean x64 = "x64".equals(arch) || "amd64".equals(arch) || "x86_64".equals(arch); + final boolean aarch64 = "aarch64".equals(arch); + final boolean ppc64le = "ppc64le".equals(arch); + + // final boolean arch64 = x64 || aarch64 || ppc64le; final String os = getProperty("os.name"); final boolean linux = os.toLowerCase(ENGLISH).startsWith("linux"); @@ -112,11 +116,15 @@ final class Library { if (SHOULD_USE_LIB) { libToLoad = getProperty(LMDB_NATIVE_LIB_PROP); - } else if (SHOULD_EXTRACT && arch64 && linux) { + } else if (SHOULD_EXTRACT && aarch64 && linux) { + libToLoad = extract("org/lmdbjava/lmdbjava-native-linux-aarch64.so"); + } else if (SHOULD_EXTRACT && ppc64le && linux) { + libToLoad = extract("org/lmdbjava/lmdbjava-native-linux-ppc64le.so"); + } else if (SHOULD_EXTRACT && x64 && linux) { libToLoad = extract("org/lmdbjava/lmdbjava-native-linux-x86_64.so"); - } else if (SHOULD_EXTRACT && arch64 && osx) { + } else if (SHOULD_EXTRACT && x64 && osx) { libToLoad = extract("org/lmdbjava/lmdbjava-native-osx-x86_64.dylib"); - } else if (SHOULD_EXTRACT && arch64 && windows) { + } else if (SHOULD_EXTRACT && x64 && windows) { libToLoad = extract("org/lmdbjava/lmdbjava-native-windows-x86_64.dll"); } else { libToLoad = LIB_NAME;