DEADSOFTWARE

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