From b829fff345860e9c82281717db50a6a0bc8f31d9 Mon Sep 17 00:00:00 2001 From: Relintai Date: Fri, 29 Jul 2022 08:35:59 +0200 Subject: [PATCH] Ported: Ensure Android Java and Kotlin compile to the same version - madmiraal https://github.com/godotengine/godot/commit/9f0dba8b65cd9933d607b1bc178201742375a1f8 --- platform/android/java/app/build.gradle | 13 ++++++++++--- platform/android/java/app/config.gradle | 5 +++-- platform/android/java/app/settings.gradle | 13 +++++++++++++ platform/android/java/build.gradle | 8 +++++++- platform/android/java/editor/build.gradle | 9 ++++++++- platform/android/java/lib/build.gradle | 10 ++++++++-- .../android/java/nativeSrcsConfigs/build.gradle | 5 +++++ platform/android/java/settings.gradle | 15 +++++++++++++++ 8 files changed, 69 insertions(+), 9 deletions(-) diff --git a/platform/android/java/app/build.gradle b/platform/android/java/app/build.gradle index ccb154513..b95d7c9c2 100644 --- a/platform/android/java/app/build.gradle +++ b/platform/android/java/app/build.gradle @@ -2,8 +2,6 @@ // // Do not remove/modify comments ending with BEGIN/END, they are used to inject // addon-specific configuration. -apply from: 'config.gradle' - buildscript { apply from: 'config.gradle' @@ -21,7 +19,12 @@ buildscript { } } -apply plugin: 'com.android.application' +plugins { + id 'com.android.application' + id 'org.jetbrains.kotlin.android' +} + +apply from: 'config.gradle' allprojects { repositories { @@ -91,6 +94,10 @@ android { targetCompatibility versions.javaVersion } + kotlinOptions { + jvmTarget = versions.javaVersion + } + assetPacks = [":assetPacks:installTime"] defaultConfig { diff --git a/platform/android/java/app/config.gradle b/platform/android/java/app/config.gradle index f3c10862b..a2f2db397 100644 --- a/platform/android/java/app/config.gradle +++ b/platform/android/java/app/config.gradle @@ -4,8 +4,9 @@ ext.versions = [ minSdk : 19, // Also update 'platform/android/java/lib/AndroidManifest.xml#minSdkVersion' & 'platform/android/export/export_plugin.cpp#DEFAULT_MIN_SDK_VERSION' targetSdk : 30, // Also update 'platform/android/java/lib/AndroidManifest.xml#targetSdkVersion' & 'platform/android/export/export_plugin.cpp#DEFAULT_TARGET_SDK_VERSION' buildTools : '30.0.3', - kotlinVersion : '1.5.10', + kotlinVersion : '1.6.21', fragmentVersion : '1.3.6', + nexusPublishVersion: '1.1.0', javaVersion : 11, ndkVersion : '21.4.7075529' // Also update 'platform/android/detect.py#get_project_ndk_version()' when this is updated. @@ -14,7 +15,7 @@ ext.versions = [ ext.libraries = [ androidGradlePlugin: "com.android.tools.build:gradle:$versions.androidGradlePlugin", kotlinGradlePlugin : "org.jetbrains.kotlin:kotlin-gradle-plugin:$versions.kotlinVersion", - kotlinStdLib : "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$versions.kotlinVersion", + kotlinStdLib : "org.jetbrains.kotlin:kotlin-stdlib:$versions.kotlinVersion", androidxFragment : "androidx.fragment:fragment:$versions.fragmentVersion", ] diff --git a/platform/android/java/app/settings.gradle b/platform/android/java/app/settings.gradle index 60ce42505..237d44a2d 100644 --- a/platform/android/java/app/settings.gradle +++ b/platform/android/java/app/settings.gradle @@ -1,2 +1,15 @@ // This is the root directory of the Pandemonium custom build. +pluginManagement { + apply from: 'config.gradle' + + plugins { + id 'com.android.application' version versions.androidGradlePlugin + id 'org.jetbrains.kotlin.android' version versions.kotlinVersion + } + repositories { + gradlePluginPortal() + google() + } +} + include ':assetPacks:installTime' diff --git a/platform/android/java/build.gradle b/platform/android/java/build.gradle index d07d92826..d8b448fc7 100644 --- a/platform/android/java/build.gradle +++ b/platform/android/java/build.gradle @@ -1,4 +1,3 @@ -apply from: 'app/config.gradle' buildscript { apply from: 'app/config.gradle' @@ -13,6 +12,13 @@ buildscript { } } +plugins { + id 'io.github.gradle-nexus.publish-plugin' +} + +apply from: 'app/config.gradle' +apply from: 'scripts/publish-root.gradle' + allprojects { repositories { google() diff --git a/platform/android/java/editor/build.gradle b/platform/android/java/editor/build.gradle index d6d46aca0..b5bed38d6 100644 --- a/platform/android/java/editor/build.gradle +++ b/platform/android/java/editor/build.gradle @@ -1,5 +1,8 @@ // Gradle build config for Pandemonium Engine's Android port. -apply plugin: 'com.android.application' +plugins { + id 'com.android.application' + id 'org.jetbrains.kotlin.android' +} dependencies { implementation libraries.kotlinStdLib @@ -30,6 +33,10 @@ android { targetCompatibility versions.javaVersion } + kotlinOptions { + jvmTarget = versions.javaVersion + } + buildTypes { dev { initWith debug diff --git a/platform/android/java/lib/build.gradle b/platform/android/java/lib/build.gradle index a2b79ae70..265eeb7e1 100644 --- a/platform/android/java/lib/build.gradle +++ b/platform/android/java/lib/build.gradle @@ -1,5 +1,7 @@ -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' +plugins { + id 'com.android.library' + id 'org.jetbrains.kotlin.android' +} dependencies { implementation libraries.kotlinStdLib @@ -25,6 +27,10 @@ android { targetCompatibility versions.javaVersion } + kotlinOptions { + jvmTarget = versions.javaVersion + } + buildTypes { dev { initWith debug diff --git a/platform/android/java/nativeSrcsConfigs/build.gradle b/platform/android/java/nativeSrcsConfigs/build.gradle index 535a611d9..b920eaa07 100644 --- a/platform/android/java/nativeSrcsConfigs/build.gradle +++ b/platform/android/java/nativeSrcsConfigs/build.gradle @@ -1,6 +1,7 @@ // Non functional android library used to provide Android Studio editor support to the project. plugins { id 'com.android.library' + id 'org.jetbrains.kotlin.android' } android { @@ -18,6 +19,10 @@ android { targetCompatibility versions.javaVersion } + kotlinOptions { + jvmTarget = versions.javaVersion + } + packagingOptions { exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE' diff --git a/platform/android/java/settings.gradle b/platform/android/java/settings.gradle index 011ad80e3..b01783edc 100644 --- a/platform/android/java/settings.gradle +++ b/platform/android/java/settings.gradle @@ -1,4 +1,19 @@ // Configure the root project. +pluginManagement { + apply from: 'app/config.gradle' + + plugins { + id 'com.android.application' version versions.androidGradlePlugin + id 'com.android.library' version versions.androidGradlePlugin + id 'org.jetbrains.kotlin.android' version versions.kotlinVersion + id 'io.github.gradle-nexus.publish-plugin' version versions.nexusPublishVersion + } + repositories { + gradlePluginPortal() + google() + } +} + rootProject.name = "Pandemonium" include ':app'