@@ -66,7 +66,21 @@ task compileJNI {
6666 if (OperatingSystem . current(). isLinux() ||
6767 OperatingSystem . current(). isMacOsX() ||
6868 OperatingSystem . current(). isUnix()) {
69- commandLine ' sh' , ' -c' , ' mkdir -p build/natives && cd build/natives && cmake ../.. && cmake --build . --config Release'
69+ if (project. hasProperty(" androidBuild" ) && project. hasProperty(" sdk_path" )){
70+ def sdk_path = project. getProperties(). getAt(' sdk_path' ). toString()
71+ commandLine ' sh' , ' -c' , ' mkdir -p build/natives && ' +
72+ ' cd build/natives && ' +
73+ ' cmake -G"Ninja" -DANDROID_ABI=arm64-v8a -DANDROID_NDK=' + sdk_path+ ' /ndk/22.0.7026061 -DCMAKE_BUILD_TYPE=Release -DCMAKE_MAKE_PROGRAM=' + sdk_path+ ' /cmake/3.10.2.4988404/bin/ninja -DCMAKE_TOOLCHAIN_FILE=' + sdk_path+ ' /ndk/22.0.7026061/build/cmake/android.toolchain.cmake -DANDROID_NATIVE_API_LEVEL=23 -DANDROID_TOOLCHAIN=clang ../.. && ' +
74+ ' cmake --build . --config Release && ' +
75+ ' mv lib/Release/Android/ lib/Release/arm64-v8a && ' +
76+ ' rm CMakeCache.txt && ' +
77+ ' cmake -G"Ninja" -DANDROID_ABI=x86_64 -DANDROID_NDK=' + sdk_path+ ' /ndk/22.0.7026061 -DCMAKE_BUILD_TYPE=Release -DCMAKE_MAKE_PROGRAM=' + sdk_path+ ' /cmake/3.10.2.4988404/bin/ninja -DCMAKE_TOOLCHAIN_FILE=' + sdk_path+ ' /ndk/22.0.7026061/build/cmake/android.toolchain.cmake -DANDROID_NATIVE_API_LEVEL=23 -DANDROID_TOOLCHAIN=clang ../.. && ' +
78+ ' cmake --build . --config Release && ' +
79+ ' mv lib/Release/Android/ lib/Release/x86_64'
80+ }
81+ else {
82+ commandLine ' sh' , ' -c' , ' mkdir -p build/natives && cd build/natives && cmake ../.. && cmake --build . --config Release'
83+ }
7084 } else if (OperatingSystem . current(). isWindows()) {
7185 commandLine " cmd" , " /c" , ' if not exist "build\\ natives" mkdir build\\ natives && cd build\\ natives && cmake ..\\ .. && cmake --build . --config Release'
7286 }
0 commit comments