mirror of
https://github.com/godotengine/godot.git
synced 2025-01-06 10:11:06 +00:00
Merge pull request #30741 from neikeq/fix-not-updating-editor-api-assembly
Mono: Fix editor API assembly not being updated
This commit is contained in:
commit
f551457e12
@ -602,12 +602,12 @@ bool GDMono::copy_prebuilt_api_assembly(APIAssembly::Type p_api_type) {
|
|||||||
|
|
||||||
String GDMono::update_api_assemblies_from_prebuilt() {
|
String GDMono::update_api_assemblies_from_prebuilt() {
|
||||||
|
|
||||||
#define FAIL_REASON(m_out_of_sync, m_prebuilt_exist) \
|
#define FAIL_REASON(m_out_of_sync, m_prebuilt_exists) \
|
||||||
( \
|
( \
|
||||||
(m_out_of_sync ? \
|
(m_out_of_sync ? \
|
||||||
String("The assembly is invalidated") : \
|
String("The assembly is invalidated") : \
|
||||||
String("The assembly was not found")) + \
|
String("The assembly was not found")) + \
|
||||||
(m_prebuilt_exist ? \
|
(m_prebuilt_exists ? \
|
||||||
String(" and the prebuilt assemblies are missing") : \
|
String(" and the prebuilt assemblies are missing") : \
|
||||||
String(" and we failed to copy the prebuilt assemblies")))
|
String(" and we failed to copy the prebuilt assemblies")))
|
||||||
|
|
||||||
@ -619,16 +619,18 @@ String GDMono::update_api_assemblies_from_prebuilt() {
|
|||||||
if (!api_assembly_out_of_sync && FileAccess::exists(core_assembly_path) && FileAccess::exists(editor_assembly_path))
|
if (!api_assembly_out_of_sync && FileAccess::exists(core_assembly_path) && FileAccess::exists(editor_assembly_path))
|
||||||
return String(); // No update needed
|
return String(); // No update needed
|
||||||
|
|
||||||
|
print_verbose("Updating API assemblies");
|
||||||
|
|
||||||
String prebuilt_api_dir = GodotSharpDirs::get_data_editor_prebuilt_api_dir().plus_file("Debug");
|
String prebuilt_api_dir = GodotSharpDirs::get_data_editor_prebuilt_api_dir().plus_file("Debug");
|
||||||
String prebuilt_core_dll_path = prebuilt_api_dir.plus_file(CORE_API_ASSEMBLY_NAME ".dll");
|
String prebuilt_core_dll_path = prebuilt_api_dir.plus_file(CORE_API_ASSEMBLY_NAME ".dll");
|
||||||
String prebuilt_editor_dll_path = prebuilt_api_dir.plus_file(EDITOR_API_ASSEMBLY_NAME ".dll");
|
String prebuilt_editor_dll_path = prebuilt_api_dir.plus_file(EDITOR_API_ASSEMBLY_NAME ".dll");
|
||||||
|
|
||||||
if (!FileAccess::exists(prebuilt_core_dll_path) || !FileAccess::exists(prebuilt_editor_dll_path))
|
if (!FileAccess::exists(prebuilt_core_dll_path) || !FileAccess::exists(prebuilt_editor_dll_path))
|
||||||
return FAIL_REASON(api_assembly_out_of_sync, /* prebuilt_exist: */ false);
|
return FAIL_REASON(api_assembly_out_of_sync, /* prebuilt_exists: */ false);
|
||||||
|
|
||||||
// Copy the prebuilt Api
|
// Copy the prebuilt Api
|
||||||
if (!copy_prebuilt_api_assembly(APIAssembly::API_CORE) || !copy_prebuilt_api_assembly(APIAssembly::API_EDITOR))
|
if (!copy_prebuilt_api_assembly(APIAssembly::API_CORE) || !copy_prebuilt_api_assembly(APIAssembly::API_EDITOR))
|
||||||
return FAIL_REASON(api_assembly_out_of_sync, /* prebuilt_exist: */ true);
|
return FAIL_REASON(api_assembly_out_of_sync, /* prebuilt_exists: */ true);
|
||||||
|
|
||||||
return String(); // Updated successfully
|
return String(); // Updated successfully
|
||||||
|
|
||||||
@ -699,9 +701,6 @@ bool GDMono::_try_load_api_assemblies() {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (core_api_assembly_out_of_sync || !GDMonoUtils::mono_cache.godot_api_cache_updated)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
#ifdef TOOLS_ENABLED
|
#ifdef TOOLS_ENABLED
|
||||||
if (!_load_editor_api_assembly()) {
|
if (!_load_editor_api_assembly()) {
|
||||||
if (OS::get_singleton()->is_stdout_verbose())
|
if (OS::get_singleton()->is_stdout_verbose())
|
||||||
@ -713,6 +712,12 @@ bool GDMono::_try_load_api_assemblies() {
|
|||||||
return false;
|
return false;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Check if the core API assembly is out of sync only after trying to load the
|
||||||
|
// editor API assembly. Otherwise, if both assemblies are out of sync, we would
|
||||||
|
// only update the former as we won't know the latter also needs to be updated.
|
||||||
|
if (core_api_assembly_out_of_sync || !GDMonoUtils::mono_cache.godot_api_cache_updated)
|
||||||
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user