VVVVVV/desktop_version/VVVVVV-android/app/build.gradle

118 lines
3.1 KiB
Groovy

def buildAsLibrary = project.hasProperty('BUILD_AS_LIBRARY');
def buildAsApplication = !buildAsLibrary
if (buildAsApplication) {
apply plugin: 'com.android.application'
} else {
apply plugin: 'com.android.library'
}
android {
if (buildAsApplication) {
namespace "com.distractionware.vvvvvv"
}
compileSdkVersion 34
defaultConfig {
minSdkVersion 29
targetSdkVersion 34
versionCode 20004000
versionName "2.4"
applicationId "air.com.distractionware.vvvvvvmobile"
externalNativeBuild {
cmake {
arguments "-DANDROID_STL=c++_shared"
}
}
}
buildFeatures {
prefab true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
applicationVariants.all { variant ->
tasks["merge${variant.name.capitalize()}Assets"]
.dependsOn("externalNativeBuild${variant.name.capitalize()}")
}
if (!project.hasProperty('EXCLUDE_NATIVE_LIBS')) {
sourceSets.main {
jniLibs.srcDir 'libs'
}
externalNativeBuild {
cmake {
path 'jni/CMakeLists.txt'
}
}
}
lint {
abortOnError false
}
aaptOptions {
noCompress 'zip'
}
if (buildAsLibrary) {
libraryVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith(".aar")) {
def fileName = "org.libsdl.app.aar";
output.outputFile = new File(outputFile.parent, fileName);
}
}
}
}
splits {
abi {
enable true
}
}
sourceSets {
main {
assets {
srcDir layout.buildDirectory.dir("generated/main/assets")
}
}
}
}
def zipRepoAssetsTask = tasks.register("zipRepoAssets", Zip) {
from('../../fonts') { spec ->
spec.into('graphics')
}
from('../../lang') { spec ->
spec.into('lang')
}
from('../../touch') { spec ->
spec.into('graphics')
}
archiveFileName.set('repo.zip')
destinationDirectory.value(layout.buildDirectory.dir("generated/main/assets"))
}
project.android.applicationVariants.configureEach { variant ->
def compressAssetsTask = project.tasks.named("merge${variant.name.capitalize()}Assets")
compressAssetsTask.configure { task ->
task.dependsOn zipRepoAssetsTask
}
}
afterEvaluate {
[lintReportDebug, lintAnalyzeDebug, lintReportRelease, lintAnalyzeRelease, lintVitalReportRelease, lintVitalAnalyzeRelease].each { task ->
task.dependsOn zipRepoAssetsTask
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'org.jetbrains:annotations:15.0'
implementation 'androidx.core:core:1.10.1'
implementation 'androidx.exifinterface:exifinterface:1.3.6'
implementation 'org.libsdl.android:SDL2:2.28.5'
}