mirror of
https://github.com/godotengine/godot.git
synced 2026-01-03 18:11:19 +03:00
Re-architect how Android plugins are packaged and handled at export time
The previous packaging format for Godot Android plugins consisted of the plugin's `gdap` config file accompanied by binaries defined in the `gdap` file. This format is now deprecated (starting with Godot 4.2), and instead Godot Android plugins are now packaged as `EditorExportPlugin` plugins. The `EditorExportPlugin` class has been updated with the following methods to provide the necessary set of functionality: - `_supports_platform`: returns true if the plugin supports the given platform - `_get_android_dependencies`: retrieve the set of android dependencies (e.g: `org.godot.example:my-plugin:0.0.0`) provided by the plugin - `_get_android_dependencies_maven_repos`: retrieve the urls of the maven repos for the provided android dependencies - `_get_android_libraries`: retrieve the local paths of the android libraries (AAR files) provided by the plugin - `_get_android_manifest_activity_element_contents`: update the contents of the `<activity>` element in the generated Android manifest - `_get_android_manifest_application_element_contents`: update the contents of the `<application>` element in the generated Android manifest - `_get_android_manifest_element_contents`: update the contents of the `<manifest>` element in the generated Android manifest
This commit is contained in:
committed by
Yuri Sizov
parent
279732539f
commit
d17811c814
@@ -57,7 +57,26 @@ void EditorExportPreset::_bind_methods() {
|
||||
}
|
||||
|
||||
String EditorExportPreset::_get_property_warning(const StringName &p_name) const {
|
||||
return platform->get_export_option_warning(this, p_name);
|
||||
String warning = platform->get_export_option_warning(this, p_name);
|
||||
if (!warning.is_empty()) {
|
||||
warning += "\n";
|
||||
}
|
||||
|
||||
// Get property warning from editor export plugins.
|
||||
Vector<Ref<EditorExportPlugin>> export_plugins = EditorExport::get_singleton()->get_export_plugins();
|
||||
for (int i = 0; i < export_plugins.size(); i++) {
|
||||
if (!export_plugins[i]->supports_platform(platform)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
export_plugins.write[i]->set_export_preset(Ref<EditorExportPreset>(this));
|
||||
String plugin_warning = export_plugins[i]->_get_export_option_warning(platform, p_name);
|
||||
if (!plugin_warning.is_empty()) {
|
||||
warning += plugin_warning + "\n";
|
||||
}
|
||||
}
|
||||
|
||||
return warning;
|
||||
}
|
||||
|
||||
void EditorExportPreset::_get_property_list(List<PropertyInfo> *p_list) const {
|
||||
|
||||
Reference in New Issue
Block a user