diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3d95098..d49feb8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: fetch-depth: 0 submodules: true @@ -27,12 +27,6 @@ jobs: - name: Install libsodium (Linux) if: runner.os == 'Linux' run: sudo apt-get install -y libsodium-dev - - name: Update XCode version - if: runner.os == 'macOS' - # https://github.com/actions/virtual-environments/issues/2557 - run: | - sudo xcode-select -s "/Applications/Xcode_12.5.app" || sudo xcode-select -s "/Applications/Xcode_12.3.app" || ( ls /Applications; exit 1 ) - sudo rm -Rf /Library/Developer/CommandLineTools/SDKs/* - name: Run tests run: ./mill -i __.test - name: Build and publish locally @@ -53,7 +47,7 @@ jobs: runs-on: ARM64 steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: fetch-depth: 0 submodules: true @@ -84,7 +78,7 @@ jobs: if: github.event_name == 'push' steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: fetch-depth: 0 submodules: true diff --git a/.gitignore b/.gitignore index 841f9b7..d5e843d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ **/target out/ .bsp/ +.metals/ +.vscode/ +.bloop/ diff --git a/libsodiumjni/src/main/java/libsodiumjni/internal/LoadLibrary.java b/libsodiumjni/src/main/java/libsodiumjni/internal/LoadLibrary.java index 45b3dec..fa6be47 100644 --- a/libsodiumjni/src/main/java/libsodiumjni/internal/LoadLibrary.java +++ b/libsodiumjni/src/main/java/libsodiumjni/internal/LoadLibrary.java @@ -20,8 +20,11 @@ public static void initialize(String libraryPath) { } public static String resourcePath() { + Boolean isArmArch = System.getProperty("os.arch").toLowerCase(Locale.ROOT).contains("aarch64"); + String osName = System.getProperty("os.name").toLowerCase(Locale.ROOT); if (osName.contains("linux")) return "META-INF/native/linux64/libsodiumjni.so"; + else if (osName.contains("mac") && isArmArch) return "META-INF/native/arm-darwin/libsodiumjni.dylib"; else if (osName.contains("mac")) return "META-INF/native/darwin/libsodiumjni.dylib"; else if (osName.contains("windows")) return "META-INF/native/windows64/libsodiumjni.dll"; else