summaryrefslogtreecommitdiff
path: root/platform/android/java/app/build.gradle
blob: 9ae47d6174c26542e2a68a3e8ed18e45e2434806 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
// Gradle build config for Godot Engine's Android port.
apply from: 'config.gradle'

buildscript {
    apply from: 'config.gradle'

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath libraries.androidGradlePlugin
        classpath libraries.kotlinGradlePlugin
    }
}

apply plugin: 'com.android.application'

allprojects {
    repositories {
        mavenCentral()
        google()
        jcenter()
    }
}

dependencies {
    implementation libraries.supportCoreUtils
    implementation libraries.kotlinStdLib
    implementation libraries.v4Support

    if (rootProject.findProject(":lib")) {
        implementation project(":lib")
    } else if (rootProject.findProject(":godot:lib")) {
        implementation project(":godot:lib")
    } else {
        // Custom build mode. In this scenario this project is the only one around and the Godot
        // library is available through the pre-generated godot-lib.*.aar android archive files.
        debugImplementation fileTree(dir: 'libs/debug', include: ['*.jar', '*.aar'])
        releaseImplementation fileTree(dir: 'libs/release', include: ['*.jar', '*.aar'])
    }

    // Godot prebuilt plugins
    implementation fileTree(dir: 'libs/plugins', include: ["GodotPayment*.aar"])

    // Godot user plugins dependencies
    String pluginsDir = getGodotPluginsDirectory()
    String[] pluginsBinaries = getGodotPluginsBinaries()
    if (pluginsDir != null && !pluginsDir.isEmpty() &&
        pluginsBinaries != null && pluginsBinaries.size() > 0) {
        implementation fileTree(dir: pluginsDir, include: pluginsBinaries)
    }
}

android {
    compileSdkVersion versions.compileSdk
    buildToolsVersion versions.buildTools

    compileOptions {
        sourceCompatibility 1.8
        targetCompatibility 1.8
    }

    defaultConfig {
        // Feel free to modify the application id to your own.
        applicationId getExportPackageName()
        minSdkVersion versions.minSdk
        targetSdkVersion versions.targetSdk
    }

    lintOptions {
        abortOnError false
        disable 'MissingTranslation', 'UnusedResources'
    }

    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'

        // Should be uncommented for development purpose within Android Studio
        // doNotStrip '**/*.so'
    }

    // Both signing and zip-aligning will be done at export time
    buildTypes.all { buildType ->
        buildType.zipAlignEnabled false
        buildType.signingConfig null
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            res.srcDirs = ['res']
            aidl.srcDirs = ['aidl']
            assets.srcDirs = ['assets']
        }
        debug.jniLibs.srcDirs = ['libs/debug']
        release.jniLibs.srcDirs = ['libs/release']
    }

    applicationVariants.all { variant ->
        variant.outputs.all { output ->
            output.outputFileName = "android_${variant.name}.apk"
        }
    }
}