mirror of
https://github.com/godotengine/godot.git
synced 2025-01-04 09:10:40 +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() {
|
||||
|
||||
#define FAIL_REASON(m_out_of_sync, m_prebuilt_exist) \
|
||||
#define FAIL_REASON(m_out_of_sync, m_prebuilt_exists) \
|
||||
( \
|
||||
(m_out_of_sync ? \
|
||||
String("The assembly is invalidated") : \
|
||||
String("The assembly was not found")) + \
|
||||
(m_prebuilt_exist ? \
|
||||
(m_prebuilt_exists ? \
|
||||
String(" and the prebuilt assemblies are missing") : \
|
||||
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))
|
||||
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_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");
|
||||
|
||||
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
|
||||
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
|
||||
|
||||
@ -699,9 +701,6 @@ bool GDMono::_try_load_api_assemblies() {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (core_api_assembly_out_of_sync || !GDMonoUtils::mono_cache.godot_api_cache_updated)
|
||||
return false;
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
if (!_load_editor_api_assembly()) {
|
||||
if (OS::get_singleton()->is_stdout_verbose())
|
||||
@ -713,6 +712,12 @@ bool GDMono::_try_load_api_assemblies() {
|
||||
return false;
|
||||
#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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user