From edf762fba6b305771191b706e4d097f7b5285360 Mon Sep 17 00:00:00 2001 From: Fredia Huya-Kouadio Date: Wed, 28 Oct 2020 16:32:45 -0700 Subject: [PATCH] Add a separate `nativeSrcsConfigs` module to handle Android Studio constraints for native code editor support. --- .gitignore | 1 + platform/android/java/app/build.gradle | 4 +- platform/android/java/app/config.gradle | 3 +- platform/android/java/lib/build.gradle | 20 ++----- .../nativeSrcsConfigs/AndroidManifest.xml | 2 + .../{lib => nativeSrcsConfigs}/CMakeLists.txt | 1 + .../android/java/nativeSrcsConfigs/README.md | 4 ++ .../java/nativeSrcsConfigs/build.gradle | 54 +++++++++++++++++++ platform/android/java/settings.gradle | 1 + 9 files changed, 72 insertions(+), 18 deletions(-) create mode 100644 platform/android/java/nativeSrcsConfigs/AndroidManifest.xml rename platform/android/java/{lib => nativeSrcsConfigs}/CMakeLists.txt (83%) create mode 100644 platform/android/java/nativeSrcsConfigs/README.md create mode 100644 platform/android/java/nativeSrcsConfigs/build.gradle diff --git a/.gitignore b/.gitignore index 678d19148fd..f928c2e6ece 100644 --- a/.gitignore +++ b/.gitignore @@ -24,6 +24,7 @@ platform/android/java/lib/.cxx/ platform/android/java/libs/* platform/android/java/app/libs/* platform/android/java/lib/.cxx/* +platform/android/java/nativeSrcsConfigs/.cxx/ # General c++ generated files *.lib diff --git a/platform/android/java/app/build.gradle b/platform/android/java/app/build.gradle index ceacfec9e13..6de1d2dd308 100644 --- a/platform/android/java/app/build.gradle +++ b/platform/android/java/app/build.gradle @@ -70,8 +70,8 @@ android { buildToolsVersion versions.buildTools compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility versions.javaVersion + targetCompatibility versions.javaVersion } defaultConfig { diff --git a/platform/android/java/app/config.gradle b/platform/android/java/app/config.gradle index d9e110b0bda..e6c45b73a70 100644 --- a/platform/android/java/app/config.gradle +++ b/platform/android/java/app/config.gradle @@ -6,7 +6,8 @@ ext.versions = [ buildTools : '30.0.1', supportCoreUtils : '1.0.0', kotlinVersion : '1.4.10', - v4Support : '1.0.0' + v4Support : '1.0.0', + javaVersion : 1.8 ] diff --git a/platform/android/java/lib/build.gradle b/platform/android/java/lib/build.gradle index 19eee5a315b..e3c5a022038 100644 --- a/platform/android/java/lib/build.gradle +++ b/platform/android/java/lib/build.gradle @@ -18,6 +18,11 @@ android { targetSdkVersion versions.targetSdk } + compileOptions { + sourceCompatibility versions.javaVersion + targetCompatibility versions.javaVersion + } + lintOptions { abortOnError false disable 'MissingTranslation', 'UnusedResources' @@ -50,15 +55,6 @@ android { def buildType = variant.buildType.name.capitalize() - def taskPrefix = "" - if (project.path != ":") { - taskPrefix = project.path + ":" - } - - // Disable the externalNativeBuild* task as it would cause build failures since the cmake build - // files is only setup for editing support. - gradle.startParameter.excludedTaskNames += taskPrefix + "externalNativeBuild" + buildType - def releaseTarget = buildType.toLowerCase() if (releaseTarget == null || releaseTarget == "") { throw new GradleException("Invalid build type: " + buildType) @@ -78,10 +74,4 @@ android { // Schedule the tasks so the generated libs are present before the aar file is packaged. tasks["merge${buildType}JniLibFolders"].dependsOn taskName } - - externalNativeBuild { - cmake { - path "CMakeLists.txt" - } - } } diff --git a/platform/android/java/nativeSrcsConfigs/AndroidManifest.xml b/platform/android/java/nativeSrcsConfigs/AndroidManifest.xml new file mode 100644 index 00000000000..dc180375d5a --- /dev/null +++ b/platform/android/java/nativeSrcsConfigs/AndroidManifest.xml @@ -0,0 +1,2 @@ + + diff --git a/platform/android/java/lib/CMakeLists.txt b/platform/android/java/nativeSrcsConfigs/CMakeLists.txt similarity index 83% rename from platform/android/java/lib/CMakeLists.txt rename to platform/android/java/nativeSrcsConfigs/CMakeLists.txt index d3bdf6a5f2f..34925684dab 100644 --- a/platform/android/java/lib/CMakeLists.txt +++ b/platform/android/java/nativeSrcsConfigs/CMakeLists.txt @@ -1,3 +1,4 @@ +# Non functional cmake build file used to provide Android Studio editor support to the project. cmake_minimum_required(VERSION 3.6) project(godot) diff --git a/platform/android/java/nativeSrcsConfigs/README.md b/platform/android/java/nativeSrcsConfigs/README.md new file mode 100644 index 00000000000..e48505ccda2 --- /dev/null +++ b/platform/android/java/nativeSrcsConfigs/README.md @@ -0,0 +1,4 @@ +## Native sources configs + +This is a non functional Android library used to provide Android Studio editor support to the Godot project native files. +Nothing else should be added to this library. diff --git a/platform/android/java/nativeSrcsConfigs/build.gradle b/platform/android/java/nativeSrcsConfigs/build.gradle new file mode 100644 index 00000000000..65b7bb9dc9b --- /dev/null +++ b/platform/android/java/nativeSrcsConfigs/build.gradle @@ -0,0 +1,54 @@ +// Non functional android library used to provide Android Studio editor support to the project. +plugins { + id 'com.android.library' +} + +android { + compileSdkVersion versions.compileSdk + buildToolsVersion versions.buildTools + + defaultConfig { + minSdkVersion versions.minSdk + targetSdkVersion versions.targetSdk + } + + compileOptions { + sourceCompatibility versions.javaVersion + targetCompatibility versions.javaVersion + } + + packagingOptions { + exclude 'META-INF/LICENSE' + exclude 'META-INF/NOTICE' + + // Should be uncommented for development purpose within Android Studio + // doNotStrip '**/*.so' + } + + sourceSets { + main { + manifest.srcFile 'AndroidManifest.xml' + } + } + + externalNativeBuild { + cmake { + path "CMakeLists.txt" + } + } + + libraryVariants.all { variant -> + def buildType = variant.buildType.name.capitalize() + + def taskPrefix = "" + if (project.path != ":") { + taskPrefix = project.path + ":" + } + + // Disable the externalNativeBuild* task as it would cause build failures since the cmake build + // files is only setup for editing support. + gradle.startParameter.excludedTaskNames += taskPrefix + "externalNativeBuild" + buildType + } +} + +dependencies {} diff --git a/platform/android/java/settings.gradle b/platform/android/java/settings.gradle index f6921c70aac..524031d93f4 100644 --- a/platform/android/java/settings.gradle +++ b/platform/android/java/settings.gradle @@ -3,3 +3,4 @@ rootProject.name = "Godot" include ':app' include ':lib' +include ':nativeSrcsConfigs'