123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- apply plugin: 'com.android.application'
- android {
- compileSdkVersion 33
- buildToolsVersion '33.0.2'
- ndkVersion "$ndk_version"
- defaultConfig {
- applicationId 'net.minetest.minetest'
- minSdkVersion 21
- targetSdkVersion 33
- versionName "${versionMajor}.${versionMinor}.${versionPatch}"
- versionCode project.versionCode
- }
- // load properties
- Properties props = new Properties()
- def propfile = file('../local.properties')
- if (propfile.exists())
- props.load(new FileInputStream(propfile))
- if (props.getProperty('keystore') != null) {
- signingConfigs {
- release {
- storeFile file(props['keystore'])
- storePassword props['keystore.password']
- keyAlias props['key']
- keyPassword props['key.password']
- }
- }
- buildTypes {
- release {
- minifyEnabled true
- signingConfig signingConfigs.release
- }
- }
- }
- // for multiple APKs
- splits {
- abi {
- enable true
- reset()
- include 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
- }
- }
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
- }
- }
- task prepareAssets() {
- def assetsFolder = "build/assets"
- def projRoot = rootDir.parent
- def gameToCopy = "minetest_game"
- doFirst {
- logger.lifecycle('Preparing assets at {}', assetsFolder)
- }
- doLast {
- copy {
- from "${projRoot}/minetest.conf.example", "${projRoot}/README.md" into assetsFolder
- }
- copy {
- from "${projRoot}/doc/lgpl-2.1.txt" into assetsFolder
- }
- copy {
- from "${projRoot}/builtin" into "${assetsFolder}/builtin"
- }
- copy {
- from "${projRoot}/client/shaders" into "${assetsFolder}/client/shaders"
- }
- copy {
- from "../native/deps/armeabi-v7a/Irrlicht/Shaders" into "${assetsFolder}/client/shaders/Irrlicht"
- }
- copy {
- from "${projRoot}/fonts" include "*.ttf" into "${assetsFolder}/fonts"
- }
- copy {
- from "${projRoot}/games/${gameToCopy}" into "${assetsFolder}/games/${gameToCopy}"
- }
- copy {
- from "${projRoot}/textures" into "${assetsFolder}/textures"
- }
- // compile translations
- fileTree("${projRoot}/po").include("**/*.po").forEach { poFile ->
- def moPath = "${assetsFolder}/locale/${poFile.parentFile.name}/LC_MESSAGES/"
- file(moPath).mkdirs()
- exec {
- commandLine 'msgfmt', '-o', "${moPath}/minetest.mo", poFile
- }
- }
- file("${assetsFolder}/.nomedia").text = ""
- }
- task zipAssets(dependsOn: prepareAssets, type: Zip) {
- archiveFileName = "Minetest.zip"
- from assetsFolder
- destinationDirectory = file("src/main/assets")
- }
- }
- preBuild.dependsOn zipAssets
- prepareAssets.dependsOn ':native:getDeps'
- // Map for the version code that gives each ABI a value.
- import com.android.build.OutputFile
- def abiCodes = ['armeabi-v7a': 0, 'arm64-v8a': 1]
- android.applicationVariants.all { variant ->
- variant.outputs.each {
- output ->
- def abiName = output.getFilter(OutputFile.ABI)
- output.versionCodeOverride = abiCodes.get(abiName, 0) + variant.versionCode
- }
- }
- dependencies {
- implementation project(':native')
- implementation 'androidx.appcompat:appcompat:1.6.1'
- }
|