- Added
NativeBuildsJvmLoader.overrideLoaderto allow fully customizing the JNI lib loading logic.
- Fixed Android JNI loading.
- Fixed inconsistent .so file name for Android vs. JVM.
- Fixed Android JNI builds making duplicate copies of NativeBuilds .so libraries.
- Generate CMakeLists.txt during Gradle sync, so the IDE won't complain about missing files.
- Added Zig based cross-compilation for JNI C++ code (JVM & Android). Use
jniNativeBuild()in yourbuild.gradle.ktsto compile your C++ code for all platforms at once. - The headers for all platforms are now combined into a single .zip file with deduplicated "common" folder and platform-specific extra files (e.g. in OpenSSL, openssl/configuration.h is platform-specific, but all other headers are identical). This also speeds up downloading the dependencies.
- Added
substituteAndroidNativeLibsInUnitTests()which can be called in yourbuild.gradle.ktsin order to automatically replace Android JNI dependencies with JVM JNI dependencies within your unit tests.