MultiCraft2/build/android/native/build.gradle

99 lines
1.9 KiB
Groovy

apply plugin: 'com.android.library'
apply plugin: 'de.undercouch.download'
android {
compileSdkVersion 32
buildToolsVersion '33.0.0'
ndkVersion '23.2.8568313'
defaultConfig {
minSdkVersion 21
targetSdkVersion 32
externalNativeBuild {
ndkBuild {
arguments '-j' + Runtime.getRuntime().availableProcessors(),
"--output-sync=none",
"versionMajor=${versionMajor}",
"versionMinor=${versionMinor}",
"versionPatch=${versionPatch}",
"versionExtra=${versionExtra}"
}
}
}
externalNativeBuild {
ndkBuild {
path file('jni/Android.mk')
}
}
// supported architectures
splits {
abi {
enable true
reset()
include 'armeabi-v7a', 'arm64-v8a'//, 'x86'
}
}
buildTypes {
release {
externalNativeBuild {
ndkBuild {
arguments 'NDEBUG=1'
}
}
}
}
}
// get precompiled deps
task downloadDeps(type: Download) {
src 'https://github.com/MultiCraft/deps/archive/master.zip'
dest new File(buildDir, 'deps.zip')
overwrite false
}
task getDeps(dependsOn: downloadDeps, type: Copy) {
def deps = file('deps')
def f = file("$buildDir/deps-master")
if (!f.exists()) {
from zipTree(downloadDeps.dest)
into buildDir
}
doLast {
file(f).renameTo(file(deps))
}
}
// get libiconv
task downloadIconv(dependsOn: getDeps, type: Download) {
src 'https://github.com/MoNTE48/ndk_iconv/archive/mc.zip'
dest new File(buildDir, 'iconv.zip')
overwrite false
}
task getIconv(dependsOn: downloadIconv, type: Copy) {
def iconv = file('deps/Android/ndk_iconv')
def f = file("$buildDir/ndk_iconv-mc")
if (!iconv.exists() && !f.exists()) {
from zipTree(downloadIconv.dest)
into buildDir
}
doLast {
if (!iconv.exists()) {
file(f).renameTo(file(iconv))
}
}
}
preBuild.dependsOn getDeps
preBuild.dependsOn getIconv
android.defaultConfig.externalNativeBuild.ndkBuild {
arguments 'prebuilt=$(if $(strip $(wildcard $(prebuilt_path))),$(prebuilt_path),.)'
}