DEADSOFTWARE

d64557af4eb2ecfae920cabe31b77c3ad2b861a6
[cavedroid.git] / android / build.gradle
1 plugins {
2 id "kotlin-android"
3 }
5 def keystorePropertiesFile = rootProject.file("keystore.properties")
6 def keystoreProperties = new Properties()
7 keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
9 android {
10 namespace "ru.deadsoftware.cavedroid"
11 compileSdkVersion 34
12 sourceSets {
13 main {
14 manifest.srcFile 'AndroidManifest.xml'
15 java.srcDirs = ['src']
16 aidl.srcDirs = ['src']
17 renderscript.srcDirs = ['src']
18 res.srcDirs = ['res']
19 assets.srcDirs = ['assets']
20 jniLibs.srcDirs = ['libs']
21 }
22 debug {
23 res.srcDirs = ['debug/res']
24 }
25 }
26 compileOptions {
27 sourceCompatibility 17
28 targetCompatibility 17
29 }
30 packagingOptions {
31 exclude 'META-INF/robovm/ios/robovm.xml'
32 }
33 defaultConfig {
34 applicationId "ru.deadsoftware.cavedroid"
35 minSdkVersion 24
36 targetSdkVersion 34
37 versionCode 19
38 versionName "alpha0.6.2"
39 }
40 applicationVariants.all { variant ->
41 variant.outputs.all {
42 outputFileName = "android-${versionName}.apk"
43 }
44 }
46 signingConfigs {
47 release_config {
48 storeFile file(keystoreProperties['releaseKeystorePath'])
49 storePassword keystoreProperties['releaseKeystorePassword']
50 keyAlias keystoreProperties['releaseKeyAlias']
51 keyPassword keystoreProperties['releaseKeyPassword']
52 }
53 }
55 buildTypes {
56 release {
57 minifyEnabled false
58 signingConfig signingConfigs.release_config
59 }
60 debug {
61 applicationIdSuffix ".debug"
62 }
63 }
64 buildFeatures {
65 buildConfig true
66 }
68 }
71 // called every time gradle gets executed, takes the native dependencies of
72 // the natives configuration, and extracts them to the proper libs/ folders
73 // so they get packed with the APK.
74 task copyAndroidNatives {
75 doFirst {
76 file("libs/armeabi/").mkdirs()
77 file("libs/armeabi-v7a/").mkdirs()
78 file("libs/arm64-v8a/").mkdirs()
79 file("libs/x86_64/").mkdirs()
80 file("libs/x86/").mkdirs()
82 configurations.natives.files.each { jar ->
83 def outputDir = null
84 if (jar.name.endsWith("natives-arm64-v8a.jar")) outputDir = file("libs/arm64-v8a")
85 if (jar.name.endsWith("natives-armeabi-v7a.jar")) outputDir = file("libs/armeabi-v7a")
86 if(jar.name.endsWith("natives-armeabi.jar")) outputDir = file("libs/armeabi")
87 if(jar.name.endsWith("natives-x86_64.jar")) outputDir = file("libs/x86_64")
88 if(jar.name.endsWith("natives-x86.jar")) outputDir = file("libs/x86")
89 if(outputDir != null) {
90 copy {
91 from zipTree(jar)
92 into outputDir
93 include "*.so"
94 }
95 }
96 }
97 }
98 }
100 tasks.whenTaskAdded { packageTask ->
101 if (packageTask.name.contains("package")) {
102 packageTask.dependsOn 'copyAndroidNatives'
106 task run(type: Exec) {
107 def path
108 def localProperties = project.file("../local.properties")
109 if (localProperties.exists()) {
110 Properties properties = new Properties()
111 localProperties.withInputStream { instr ->
112 properties.load(instr)
114 def sdkDir = properties.getProperty('sdk.dir')
115 if (sdkDir) {
116 path = sdkDir
117 } else {
118 path = "$System.env.ANDROID_HOME"
120 } else {
121 path = "$System.env.ANDROID_HOME"
124 def adb = path + "/platform-tools/adb"
125 commandLine "$adb", 'shell', 'am', 'start', '-n', 'ru.deadsoftware.cavedroid/ru.deadsoftware.cavedroid.AndroidLauncher'