154 lines
3.9 KiB
Groovy
154 lines
3.9 KiB
Groovy
buildscript
|
|
{
|
|
repositories
|
|
{
|
|
mavenCentral()
|
|
google()
|
|
}
|
|
|
|
dependencies
|
|
{
|
|
// 4.1.2 is the minimum version to support native debug symbols file
|
|
// https://developer.android.com/studio/build/shrink-code#android_gradle_plugin_version_41_or_later
|
|
// 7.0.0 to fix https://stackoverflow.com/questions/68387270/android-studio-error-installed-build-tools-revision-31-0-0-is-corrupted
|
|
classpath 'com.android.tools.build:gradle:7.0.0'
|
|
}
|
|
}
|
|
|
|
allprojects
|
|
{
|
|
repositories
|
|
{
|
|
mavenCentral()
|
|
google()
|
|
}
|
|
}
|
|
|
|
apply plugin: 'com.android.application'
|
|
|
|
android
|
|
{
|
|
// buildToolsVersion is no longer needed https://developer.android.com/studio/releases/gradle-plugin.html#behavior_changes_1
|
|
// Quote:
|
|
// Build Tools 27.0.3 or higher. Keep in mind, you no longer need to specify a version for the build tools using the android.buildToolsVersion property—the plugin uses the minimum required version by default.
|
|
compileSdkVersion compile_sdk_version.toInteger()
|
|
ndkVersion ndk_version
|
|
externalNativeBuild
|
|
{
|
|
ndkBuild
|
|
{
|
|
path 'Android.mk'
|
|
}
|
|
}
|
|
|
|
defaultConfig
|
|
{
|
|
minSdkVersion min_sdk_version.toInteger()
|
|
targetSdkVersion target_sdk_version.toInteger()
|
|
externalNativeBuild
|
|
{
|
|
ndkBuild
|
|
{
|
|
def app_platform = "APP_PLATFORM=android-${min_sdk_version}"
|
|
arguments app_platform, 'APP_STL=c++_static', cpu_core
|
|
if (project.getProperty('compile_arch') == 'all')
|
|
{
|
|
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
|
|
}
|
|
else
|
|
{
|
|
abiFilters project.getProperty('compile_arch')
|
|
}
|
|
}
|
|
}
|
|
def runTasks = gradle.startParameter.taskNames
|
|
if ('bundleRelease' in runTasks)
|
|
{
|
|
// use SYMBOL_TABLE if too large later (max limit on google play is 300MB)
|
|
ndk.debugSymbolLevel 'FULL'
|
|
}
|
|
}
|
|
|
|
signingConfigs
|
|
{
|
|
release
|
|
{
|
|
storeFile file(keystore)
|
|
storePassword storepass
|
|
keyAlias alias
|
|
keyPassword storepass
|
|
}
|
|
}
|
|
|
|
buildTypes
|
|
{
|
|
debug
|
|
{
|
|
debuggable true
|
|
jniDebuggable true
|
|
minifyEnabled false
|
|
shrinkResources false
|
|
multiDexEnabled true
|
|
externalNativeBuild
|
|
{
|
|
ndkBuild
|
|
{
|
|
arguments 'NDK_DEBUG=1'
|
|
cFlags '-O0'
|
|
cppFlags '-O0'
|
|
}
|
|
}
|
|
ndk
|
|
{
|
|
if (project.getProperty('compile_arch') == 'all')
|
|
{
|
|
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
|
|
}
|
|
else
|
|
{
|
|
abiFilters project.getProperty('compile_arch')
|
|
}
|
|
}
|
|
}
|
|
|
|
release
|
|
{
|
|
externalNativeBuild
|
|
{
|
|
ndkBuild
|
|
{
|
|
cFlags '-O3'
|
|
cppFlags '-O3'
|
|
}
|
|
}
|
|
signingConfig signingConfigs.release
|
|
ndk
|
|
{
|
|
if (project.getProperty('compile_arch') == 'all')
|
|
{
|
|
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
|
|
}
|
|
else
|
|
{
|
|
abiFilters project.getProperty('compile_arch')
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
sourceSets
|
|
{
|
|
main
|
|
{
|
|
manifest.srcFile 'AndroidManifest.xml'
|
|
res.srcDirs = ['res']
|
|
assets.srcDirs = ['assets']
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies
|
|
{
|
|
implementation 'org.minidns:minidns-hla:0.3.3'
|
|
}
|