plugins { id 'com.android.application' } android { namespace "org.legoisland.isle" compileSdk 35 defaultConfig { applicationId 'org.legoisland.isle' minSdk 21 targetSdk 35 versionCode 1 versionName '1.0' externalNativeBuild { cmake { arguments '-DANDROID_STL=c++_shared', "-DFETCHCONTENT_BASE_DIR=${projectDir.parentFile}/build/_deps" if (project.hasProperty('cmakeArgs')) { project.cmakeArgs.split(" ").each {arg -> arguments arg} } abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' // abiFilters 'x86_64', 'arm64-v8a' } } } externalNativeBuild { cmake { version "3.30.5" path '../../CMakeLists.txt' } } signingConfigs { register("release") { enableV4Signing = true keyAlias = System.getenv("SIGNING_KEY_ALIAS") keyPassword = System.getenv("SIGNING_KEY_PASSWORD") System.getenv("SIGNING_STORE_FILE")?.with { storeFile = file(it) } storePassword = System.getenv("SIGNING_STORE_PASSWORD") } } buildTypes { release { minifyEnabled true signingConfig = signingConfigs.getByName("release") // proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } buildFeatures { prefab true } } afterEvaluate { def androidPath = System.getenv("ANDROID_HOME") ?: android.sdkDirectory def ndkPath = System.getenv("ANDROID_NDK_HOME") ?: android.ndkDirectory tasks.named('compileSDL3AndroidArchive').configure { environment "ANDROID_HOME", androidPath environment "ANDROID_NDK_HOME", ndkPath } } tasks.register('compileSDL3AndroidArchive', Exec) { def rootDir = projectDir.parentFile def sdl3Dir = "build/_deps/sdl3-src" def cmakeCommand = "cmake -P downloadSDL3.cmake" def pythonCommand = "python3 ${sdl3Dir}/build-scripts/build-release.py " + "--actions android " + "--fast " + "--force " + "--root='${sdl3Dir}'" def mvCommand = "mv ${sdl3Dir}/build-android/SDL3-*.aar ${projectDir}/libs/SDL3.aar" commandLine 'sh', '-c', "cd ${rootDir} && ${cmakeCommand} && ${pythonCommand} && mkdir -p ${projectDir}/libs/ && ${mvCommand}" } dependencies { implementation files('libs/SDL3.aar').builtBy(compileSDL3AndroidArchive) }