You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-22 15:06:45 +00:00
Re-architecture of the Godot Android plugin.
This commit is contained in:
@@ -6,9 +6,6 @@
|
||||
android:versionName="1.0"
|
||||
android:installLocation="auto" >
|
||||
|
||||
<!-- Adding custom text to the manifest is fine, but do it outside the custom USER and APPLICATION BEGIN/END comments, -->
|
||||
<!-- as that gets rewritten. -->
|
||||
|
||||
<supports-screens
|
||||
android:smallScreens="true"
|
||||
android:normalScreens="true"
|
||||
@@ -19,14 +16,11 @@
|
||||
android:glEsVersion="0x00020000"
|
||||
android:required="true" />
|
||||
|
||||
<!-- Custom user permissions XML added by add-ons. It's recommended to add them from the export preset, though. -->
|
||||
<!--CHUNK_USER_PERMISSIONS_BEGIN-->
|
||||
<!--CHUNK_USER_PERMISSIONS_END-->
|
||||
|
||||
<!-- Any tag in this line after android:icon will be erased when doing custom builds. -->
|
||||
<!-- If you want to add tags manually, do before it. -->
|
||||
<!-- WARNING: This should stay on a single line until the parsing code is improved. See GH-32414. -->
|
||||
<application android:label="@string/godot_project_name_string" android:allowBackup="false" tools:ignore="GoogleAppIndexingWarning" android:icon="@mipmap/icon" >
|
||||
<application
|
||||
android:label="@string/godot_project_name_string"
|
||||
android:allowBackup="false"
|
||||
tools:ignore="GoogleAppIndexingWarning"
|
||||
android:icon="@mipmap/icon" >
|
||||
|
||||
<!-- The following metadata values are replaced when Godot exports, modifying them here has no effect. -->
|
||||
<!-- Do these changes in the export preset. Adding new ones is fine. -->
|
||||
@@ -36,6 +30,11 @@
|
||||
android:name="xr_mode_metadata_name"
|
||||
android:value="xr_mode_metadata_value" />
|
||||
|
||||
<!-- Metadata populated at export time and used by Godot to figure out which plugins must be enabled. -->
|
||||
<meta-data
|
||||
android:name="custom_template_plugins"
|
||||
android:value="custom_template_plugins_value"/>
|
||||
|
||||
<activity
|
||||
android:name=".GodotApp"
|
||||
android:label="@string/godot_project_name_string"
|
||||
@@ -52,10 +51,6 @@
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<!-- Custom application XML added by add-ons. -->
|
||||
<!--CHUNK_APPLICATION_BEGIN-->
|
||||
<!--CHUNK_APPLICATION_END-->
|
||||
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
// Gradle build config for Godot Engine's Android port.
|
||||
//
|
||||
// Do not remove/modify comments ending with BEGIN/END, they are used to inject
|
||||
// addon-specific configuration.
|
||||
apply from: 'config.gradle'
|
||||
|
||||
buildscript {
|
||||
@@ -10,14 +7,10 @@ buildscript {
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
//CHUNK_BUILDSCRIPT_REPOSITORIES_BEGIN
|
||||
//CHUNK_BUILDSCRIPT_REPOSITORIES_END
|
||||
}
|
||||
dependencies {
|
||||
classpath libraries.androidGradlePlugin
|
||||
classpath libraries.kotlinGradlePlugin
|
||||
//CHUNK_BUILDSCRIPT_DEPENDENCIES_BEGIN
|
||||
//CHUNK_BUILDSCRIPT_DEPENDENCIES_END
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,25 +21,35 @@ allprojects {
|
||||
mavenCentral()
|
||||
google()
|
||||
jcenter()
|
||||
//CHUNK_ALLPROJECTS_REPOSITORIES_BEGIN
|
||||
//CHUNK_ALLPROJECTS_REPOSITORIES_END
|
||||
}
|
||||
}
|
||||
|
||||
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'])
|
||||
}
|
||||
//CHUNK_DEPENDENCIES_BEGIN
|
||||
//CHUNK_DEPENDENCIES_END
|
||||
|
||||
// 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 {
|
||||
@@ -58,8 +61,6 @@ android {
|
||||
applicationId getExportPackageName()
|
||||
minSdkVersion versions.minSdk
|
||||
targetSdkVersion versions.targetSdk
|
||||
//CHUNK_ANDROID_DEFAULTCONFIG_BEGIN
|
||||
//CHUNK_ANDROID_DEFAULTCONFIG_END
|
||||
}
|
||||
|
||||
lintOptions {
|
||||
@@ -81,37 +82,13 @@ android {
|
||||
sourceSets {
|
||||
main {
|
||||
manifest.srcFile 'AndroidManifest.xml'
|
||||
java.srcDirs = [
|
||||
'src'
|
||||
//DIR_SRC_BEGIN
|
||||
//DIR_SRC_END
|
||||
]
|
||||
res.srcDirs = [
|
||||
'res'
|
||||
//DIR_RES_BEGIN
|
||||
//DIR_RES_END
|
||||
]
|
||||
aidl.srcDirs = [
|
||||
'aidl'
|
||||
//DIR_AIDL_BEGIN
|
||||
//DIR_AIDL_END
|
||||
]
|
||||
assets.srcDirs = [
|
||||
'assets'
|
||||
//DIR_ASSETS_BEGIN
|
||||
//DIR_ASSETS_END
|
||||
]
|
||||
java.srcDirs = ['src']
|
||||
res.srcDirs = ['res']
|
||||
aidl.srcDirs = ['aidl']
|
||||
assets.srcDirs = ['assets']
|
||||
}
|
||||
debug.jniLibs.srcDirs = [
|
||||
'libs/debug'
|
||||
//DIR_JNI_DEBUG_BEGIN
|
||||
//DIR_JNI_DEBUG_END
|
||||
]
|
||||
release.jniLibs.srcDirs = [
|
||||
'libs/release'
|
||||
//DIR_JNI_RELEASE_BEGIN
|
||||
//DIR_JNI_RELEASE_END
|
||||
]
|
||||
debug.jniLibs.srcDirs = ['libs/debug']
|
||||
release.jniLibs.srcDirs = ['libs/release']
|
||||
}
|
||||
|
||||
applicationVariants.all { variant ->
|
||||
@@ -120,6 +97,3 @@ android {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//CHUNK_GLOBAL_BEGIN
|
||||
//CHUNK_GLOBAL_END
|
||||
|
||||
@@ -5,7 +5,8 @@ ext.versions = [
|
||||
targetSdk : 29,
|
||||
buildTools : '29.0.1',
|
||||
supportCoreUtils : '28.0.0',
|
||||
kotlinVersion : '1.3.61'
|
||||
kotlinVersion : '1.3.61',
|
||||
v4Support : '28.0.0'
|
||||
|
||||
]
|
||||
|
||||
@@ -13,7 +14,8 @@ ext.libraries = [
|
||||
androidGradlePlugin: "com.android.tools.build:gradle:$versions.androidGradlePlugin",
|
||||
supportCoreUtils : "com.android.support:support-core-utils:$versions.supportCoreUtils",
|
||||
kotlinGradlePlugin : "org.jetbrains.kotlin:kotlin-gradle-plugin:$versions.kotlinVersion",
|
||||
kotlinStdLib : "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$versions.kotlinVersion"
|
||||
kotlinStdLib : "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$versions.kotlinVersion",
|
||||
v4Support : "com.android.support:support-v4:$versions.v4Support"
|
||||
]
|
||||
|
||||
ext.getExportPackageName = { ->
|
||||
@@ -25,3 +27,40 @@ ext.getExportPackageName = { ->
|
||||
}
|
||||
return appId
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse the project properties for the 'custom_template_plugins' property and return
|
||||
* their binaries for inclusion in the build dependencies.
|
||||
*
|
||||
* The listed plugins must have their binaries in the project plugins directory.
|
||||
*/
|
||||
ext.getGodotPluginsBinaries = { ->
|
||||
String[] binDeps = []
|
||||
|
||||
// Retrieve the list of enabled plugins.
|
||||
if (project.hasProperty("custom_template_plugins")) {
|
||||
String pluginsList = project.property("custom_template_plugins")
|
||||
if (pluginsList != null && !pluginsList.trim().isEmpty()) {
|
||||
for (String plugin : pluginsList.split(",")) {
|
||||
binDeps += plugin + "*.aar"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return binDeps
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse the project properties for the 'custom_template_plugins_dir' property and return
|
||||
* its value.
|
||||
*
|
||||
* The returned value is the directory containing user plugins.
|
||||
*/
|
||||
ext.getGodotPluginsDirectory = { ->
|
||||
// The plugins directory is provided by the 'custom_template_plugins_dir' property.
|
||||
String pluginsDir = project.hasProperty("custom_template_plugins_dir")
|
||||
? project.property("custom_template_plugins_dir")
|
||||
: ""
|
||||
|
||||
return pluginsDir
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user