diff --git a/platform-android/CMakeLists.txt b/platform-android/CMakeLists.txt index 5d224046..87dcea9b 100644 --- a/platform-android/CMakeLists.txt +++ b/platform-android/CMakeLists.txt @@ -8,7 +8,8 @@ add_library( mpw SHARED "${PROJECT_SOURCE_DIR}/../platform-independent/c/core/src/mpw-types.c" "${PROJECT_SOURCE_DIR}/../platform-independent/c/core/src/mpw-util.c" "${PROJECT_SOURCE_DIR}/../platform-independent/c/core/src/mpw-marshal-util.c" - "${PROJECT_SOURCE_DIR}/../platform-independent/c/core/src/mpw-marshal.c" ) + "${PROJECT_SOURCE_DIR}/../platform-independent/c/core/src/mpw-marshal.c" + "${PROJECT_SOURCE_DIR}/../platform-independent/c/core/src/mpw-jni.c" ) add_library( sodium SHARED IMPORTED ) set_target_properties( sodium PROPERTIES IMPORTED_LOCATION "${PROJECT_SOURCE_DIR}/../lib/libsodium/build-android~/out/lib/${ANDROID_ABI}/libsodium.so" ) diff --git a/platform-independent/c/cli/CMakeLists.txt b/platform-independent/c/cli/CMakeLists.txt index 5bc4482a..26df69dd 100644 --- a/platform-independent/c/cli/CMakeLists.txt +++ b/platform-independent/c/cli/CMakeLists.txt @@ -1,5 +1,5 @@ ### CMAKE -project( mpw-cli C ) +project( masterpassword-cli C ) cmake_minimum_required( VERSION 3.0.2 ) diff --git a/platform-independent/c/core/build.gradle b/platform-independent/c/core/build.gradle index a4bfca76..d03d032d 100644 --- a/platform-independent/c/core/build.gradle +++ b/platform-independent/c/core/build.gradle @@ -21,6 +21,7 @@ artifacts { } library { + baseName.set( "mpw" ) linkage.set( [Linkage.STATIC, Linkage.SHARED] ) // Reconfigure the toolchain from C++ to C. diff --git a/platform-independent/java/algorithm/src/main/java/com/lyndir/masterpassword/impl/MPAlgorithmV0.java b/platform-independent/java/algorithm/src/main/java/com/lyndir/masterpassword/impl/MPAlgorithmV0.java index eed0cdb9..8cc665c5 100644 --- a/platform-independent/java/algorithm/src/main/java/com/lyndir/masterpassword/impl/MPAlgorithmV0.java +++ b/platform-independent/java/algorithm/src/main/java/com/lyndir/masterpassword/impl/MPAlgorithmV0.java @@ -42,7 +42,7 @@ public class MPAlgorithmV0 extends MPAlgorithm { protected static final int AES_BLOCKSIZE = 128 /* bit */; static { - Native.load( MPAlgorithmV0.class, "masterpassword-core" ); + Native.load( MPAlgorithmV0.class, "mpw" ); } public final Version version = MPAlgorithm.Version.V0; diff --git a/platform-independent/java/algorithm/src/main/java/com/lyndir/masterpassword/impl/Native.java b/platform-independent/java/algorithm/src/main/java/com/lyndir/masterpassword/impl/Native.java index e12ac6d8..1d69f4c8 100644 --- a/platform-independent/java/algorithm/src/main/java/com/lyndir/masterpassword/impl/Native.java +++ b/platform-independent/java/algorithm/src/main/java/com/lyndir/masterpassword/impl/Native.java @@ -40,8 +40,16 @@ public final class Native { @SuppressWarnings({ "HardcodedFileSeparator", "LoadLibraryWithNonConstantString" }) public static void load(final Class context, final String name) { + + // Try to load the library using the native system. + try { + System.loadLibrary( name ); + return; + } catch (@SuppressWarnings("ErrorNotRethrown") final UnsatisfiedLinkError ignored) { + } + + // Try to find and open a stream to the packaged library resource. try { - // Find and open a stream to the packaged library resource. String library = System.mapLibraryName( name ); int libraryDot = library.lastIndexOf( EXTENSION_SEPARATOR ); String libraryName = (libraryDot > 0)? library.substring( 0, libraryDot ): library;