Fix XR build regression reported in https://github.com/GodotVR/godot_openxr_vendors/issues/429
This commit is contained in:
@@ -122,10 +122,23 @@ String OpenXRExportPlugin::get_android_manifest_element_contents(const Ref<Edito
|
|||||||
</intent>
|
</intent>
|
||||||
|
|
||||||
</queries>
|
</queries>
|
||||||
|
|
||||||
<uses-feature android:name="android.hardware.vr.headtracking" android:required="false" android:version="1" />
|
|
||||||
)n";
|
)n";
|
||||||
|
|
||||||
|
#ifndef DISABLE_DEPRECATED
|
||||||
|
// This logic addresses the issue from https://github.com/GodotVR/godot_openxr_vendors/issues/429.
|
||||||
|
// The issue is caused by this plugin and the vendors plugin adding the same `uses-feature` tag to the generated
|
||||||
|
// manifest, causing a duplicate error at build time.
|
||||||
|
// In order to maintain backward compatibility, we fix the issue by disabling the addition of the `uses-feature`
|
||||||
|
// tag from this plugin when specific conditions are met.
|
||||||
|
bool meta_plugin_enabled = get_option("xr_features/enable_meta_plugin");
|
||||||
|
int meta_boundary_mode = get_option("meta_xr_features/boundary_mode");
|
||||||
|
if (!meta_plugin_enabled || meta_boundary_mode != 1 /* BOUNDARY_DISABLED_VALUE */) {
|
||||||
|
#endif // DISABLE_DEPRECATED
|
||||||
|
contents += " <uses-feature android:name=\"android.hardware.vr.headtracking\" android:required=\"false\" android:version=\"1\" />\n";
|
||||||
|
#ifndef DISABLE_DEPRECATED
|
||||||
|
}
|
||||||
|
#endif // DISABLE_DEPRECATED
|
||||||
|
|
||||||
return contents;
|
return contents;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1037,8 +1037,11 @@ void EditorExportPlatformAndroid::_write_tmp_manifest(const Ref<EditorExportPres
|
|||||||
if (export_plugins[i]->supports_platform(Ref<EditorExportPlatform>(this))) {
|
if (export_plugins[i]->supports_platform(Ref<EditorExportPlatform>(this))) {
|
||||||
const String contents = export_plugins[i]->get_android_manifest_element_contents(Ref<EditorExportPlatform>(this), p_debug);
|
const String contents = export_plugins[i]->get_android_manifest_element_contents(Ref<EditorExportPlatform>(this), p_debug);
|
||||||
if (!contents.is_empty()) {
|
if (!contents.is_empty()) {
|
||||||
|
const String export_plugin_name = export_plugins[i]->get_name();
|
||||||
|
manifest_text += "<!-- Start of manifest element contents from " + export_plugin_name + " -->\n";
|
||||||
manifest_text += contents;
|
manifest_text += contents;
|
||||||
manifest_text += "\n";
|
manifest_text += "\n";
|
||||||
|
manifest_text += "<!-- End of manifest element contents from " + export_plugin_name + " -->\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -291,8 +291,11 @@ String _get_activity_tag(const Ref<EditorExportPlatform> &p_export_platform, con
|
|||||||
if (export_plugins[i]->supports_platform(p_export_platform)) {
|
if (export_plugins[i]->supports_platform(p_export_platform)) {
|
||||||
const String contents = export_plugins[i]->get_android_manifest_activity_element_contents(p_export_platform, p_debug);
|
const String contents = export_plugins[i]->get_android_manifest_activity_element_contents(p_export_platform, p_debug);
|
||||||
if (!contents.is_empty()) {
|
if (!contents.is_empty()) {
|
||||||
|
const String export_plugin_name = export_plugins[i]->get_name();
|
||||||
|
export_plugins_activity_element_contents += "<!-- Start of manifest activity element contents from " + export_plugin_name + " -->\n";
|
||||||
export_plugins_activity_element_contents += contents;
|
export_plugins_activity_element_contents += contents;
|
||||||
export_plugins_activity_element_contents += "\n";
|
export_plugins_activity_element_contents += "\n";
|
||||||
|
export_plugins_activity_element_contents += "<!-- End of manifest activity element contents from " + export_plugin_name + " -->\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -387,8 +390,11 @@ String _get_application_tag(const Ref<EditorExportPlatform> &p_export_platform,
|
|||||||
if (export_plugins[i]->supports_platform(p_export_platform)) {
|
if (export_plugins[i]->supports_platform(p_export_platform)) {
|
||||||
const String contents = export_plugins[i]->get_android_manifest_application_element_contents(p_export_platform, p_debug);
|
const String contents = export_plugins[i]->get_android_manifest_application_element_contents(p_export_platform, p_debug);
|
||||||
if (!contents.is_empty()) {
|
if (!contents.is_empty()) {
|
||||||
|
const String export_plugin_name = export_plugins[i]->get_name();
|
||||||
|
manifest_application_text += "<!-- Start of manifest application element contents from " + export_plugin_name + " -->\n";
|
||||||
manifest_application_text += contents;
|
manifest_application_text += contents;
|
||||||
manifest_application_text += "\n";
|
manifest_application_text += "\n";
|
||||||
|
manifest_application_text += "<!-- End of manifest application element contents from " + export_plugin_name + " -->\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user