]> git.lizzy.rs Git - minetest.git/blob - build/android/app/build.gradle
Android: Fix asset upgrade by renaming license file (#10073)
[minetest.git] / build / android / app / build.gradle
1 apply plugin: 'com.android.application'
2 android {
3         compileSdkVersion 29
4         buildToolsVersion '29.0.3'
5         ndkVersion '21.1.6352462'
6         defaultConfig {
7                 applicationId 'net.minetest.minetest'
8                 minSdkVersion 16
9                 targetSdkVersion 29
10                 versionName "${versionMajor}.${versionMinor}.${versionPatch}"
11                 versionCode project.versionCode
12         }
13
14         Properties props = new Properties()
15         props.load(new FileInputStream(file('../local.properties')))
16
17         if (props.getProperty('keystore') != null) {
18                 signingConfigs {
19                         release {
20                                 storeFile file(props['keystore'])
21                                 storePassword props['keystore.password']
22                                 keyAlias props['key']
23                                 keyPassword props['key.password']
24                         }
25                 }
26
27                 buildTypes {
28                         release {
29                                 minifyEnabled true
30                                 signingConfig signingConfigs.release
31                         }
32                 }
33         }
34
35         // for multiple APKs
36         splits {
37                 abi {
38                         enable true
39                         reset()
40                         include 'armeabi-v7a', 'arm64-v8a'
41                 }
42         }
43
44         compileOptions {
45                 sourceCompatibility JavaVersion.VERSION_1_8
46                 targetCompatibility JavaVersion.VERSION_1_8
47         }
48 }
49
50 task prepareAssets() {
51         def assetsFolder = "build/assets"
52         def projRoot = "../../.."
53         def gameToCopy = "minetest_game"
54
55         copy {
56                 from "${projRoot}/minetest.conf.example", "${projRoot}/README.md" into assetsFolder
57         }
58         copy {
59                 from "${projRoot}/doc/lgpl-2.1.txt" into "${assetsFolder}"
60         }
61         copy {
62                 from "${projRoot}/builtin" into "${assetsFolder}/builtin"
63         }
64         /*copy {
65                 // ToDo: fix Minetest shaders that currently don't work with OpenGL ES
66                 from "${projRoot}/client/shaders" into "${assetsFolder}/client/shaders"
67         }*/
68         copy {
69                 from "../native/deps/Android/Irrlicht/shaders" into "${assetsFolder}/client/shaders/Irrlicht"
70         }
71         copy {
72                 from "${projRoot}/fonts" include "*.ttf" into "${assetsFolder}/fonts"
73         }
74         copy {
75                 from "${projRoot}/games/${gameToCopy}" into "${assetsFolder}/games/${gameToCopy}"
76         }
77         /*copy {
78                 // ToDo: fix broken locales
79                 from "${projRoot}/po" into "${assetsFolder}/po"
80         }*/
81         copy {
82                 from "${projRoot}/textures" into "${assetsFolder}/textures"
83         }
84
85         file("${assetsFolder}/.nomedia").text = "";
86
87         task zipAssets(type: Zip) {
88                 archiveName "Minetest.zip"
89                 from "${assetsFolder}"
90                 destinationDir file("src/main/assets")
91         }
92 }
93
94 preBuild.dependsOn zipAssets
95
96 // Map for the version code that gives each ABI a value.
97 import com.android.build.OutputFile
98
99 def abiCodes = ['armeabi-v7a': 0, 'arm64-v8a': 1]
100 android.applicationVariants.all { variant ->
101         variant.outputs.each {
102                 output ->
103                         def abiName = output.getFilter(OutputFile.ABI)
104                         output.versionCodeOverride = abiCodes.get(abiName, 0) + variant.versionCode
105         }
106 }
107
108 dependencies {
109         implementation project(':native')
110         implementation 'androidx.appcompat:appcompat:1.1.0'
111 }