Add a separate nativeSrcsConfigs module to handle Android Studio constraints for native code editor support.

This commit is contained in:
Fredia Huya-Kouadio 2020-10-28 16:32:45 -07:00
parent aff7cf4390
commit edf762fba6
9 changed files with 72 additions and 18 deletions

1
.gitignore vendored
View File

@ -24,6 +24,7 @@ platform/android/java/lib/.cxx/
platform/android/java/libs/* platform/android/java/libs/*
platform/android/java/app/libs/* platform/android/java/app/libs/*
platform/android/java/lib/.cxx/* platform/android/java/lib/.cxx/*
platform/android/java/nativeSrcsConfigs/.cxx/
# General c++ generated files # General c++ generated files
*.lib *.lib

View File

@ -70,8 +70,8 @@ android {
buildToolsVersion versions.buildTools buildToolsVersion versions.buildTools
compileOptions { compileOptions {
sourceCompatibility 1.8 sourceCompatibility versions.javaVersion
targetCompatibility 1.8 targetCompatibility versions.javaVersion
} }
defaultConfig { defaultConfig {

View File

@ -6,7 +6,8 @@ ext.versions = [
buildTools : '30.0.1', buildTools : '30.0.1',
supportCoreUtils : '1.0.0', supportCoreUtils : '1.0.0',
kotlinVersion : '1.4.10', kotlinVersion : '1.4.10',
v4Support : '1.0.0' v4Support : '1.0.0',
javaVersion : 1.8
] ]

View File

@ -18,6 +18,11 @@ android {
targetSdkVersion versions.targetSdk targetSdkVersion versions.targetSdk
} }
compileOptions {
sourceCompatibility versions.javaVersion
targetCompatibility versions.javaVersion
}
lintOptions { lintOptions {
abortOnError false abortOnError false
disable 'MissingTranslation', 'UnusedResources' disable 'MissingTranslation', 'UnusedResources'
@ -50,15 +55,6 @@ android {
def buildType = variant.buildType.name.capitalize() 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() def releaseTarget = buildType.toLowerCase()
if (releaseTarget == null || releaseTarget == "") { if (releaseTarget == null || releaseTarget == "") {
throw new GradleException("Invalid build type: " + buildType) 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. // Schedule the tasks so the generated libs are present before the aar file is packaged.
tasks["merge${buildType}JniLibFolders"].dependsOn taskName tasks["merge${buildType}JniLibFolders"].dependsOn taskName
} }
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
} }

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest package="org.godotengine.godot" />

View File

@ -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) cmake_minimum_required(VERSION 3.6)
project(godot) project(godot)

View File

@ -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.

View File

@ -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 {}

View File

@ -3,3 +3,4 @@ rootProject.name = "Godot"
include ':app' include ':app'
include ':lib' include ':lib'
include ':nativeSrcsConfigs'