Merge pull request #32353 from neikeq/yamero

Mono: Improve API assembly load error message on exported games
This commit is contained in:
Rémi Verschelde 2019-09-26 07:31:03 +02:00 committed by GitHub
commit e067a54988
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 26 additions and 22 deletions

View File

@ -764,7 +764,9 @@ bool GDMono::_try_load_api_assemblies() {
void GDMono::_load_api_assemblies() {
if (!_try_load_api_assemblies()) {
bool api_assemblies_loaded = _try_load_api_assemblies();
if (!api_assemblies_loaded) {
#ifdef TOOLS_ENABLED
// The API assemblies are out of sync. Fine, try one more time, but this time
// update them from the prebuilt assemblies directory before trying to load them.
@ -785,29 +787,31 @@ void GDMono::_load_api_assemblies() {
CRASH_COND_MSG(domain_load_err != OK, "Mono: Failed to load scripts domain.");
// 4. Try loading the updated assemblies
if (!_try_load_api_assemblies()) {
// welp... too bad
if (_are_api_assemblies_out_of_sync()) {
if (core_api_assembly_out_of_sync) {
ERR_PRINT("The assembly '" CORE_API_ASSEMBLY_NAME "' is out of sync.");
} else if (!GDMonoUtils::mono_cache.godot_api_cache_updated) {
ERR_PRINT("The loaded assembly '" CORE_API_ASSEMBLY_NAME "' is in sync, but the cache update failed.");
}
if (editor_api_assembly_out_of_sync) {
ERR_PRINT("The assembly '" EDITOR_API_ASSEMBLY_NAME "' is out of sync.");
}
CRASH_NOW();
} else {
CRASH_NOW_MSG("Failed to load one of the API assemblies.");
}
}
#else
CRASH_NOW_MSG("Failed to load one of the API assemblies.");
api_assemblies_loaded = _try_load_api_assemblies();
#endif
}
if (!api_assemblies_loaded) {
// welp... too bad
if (_are_api_assemblies_out_of_sync()) {
if (core_api_assembly_out_of_sync) {
ERR_PRINT("The assembly '" CORE_API_ASSEMBLY_NAME "' is out of sync.");
} else if (!GDMonoUtils::mono_cache.godot_api_cache_updated) {
ERR_PRINT("The loaded assembly '" CORE_API_ASSEMBLY_NAME "' is in sync, but the cache update failed.");
}
#ifdef TOOLS_ENABLED
if (editor_api_assembly_out_of_sync) {
ERR_PRINT("The assembly '" EDITOR_API_ASSEMBLY_NAME "' is out of sync.");
}
#endif
CRASH_NOW();
} else {
CRASH_NOW_MSG("Failed to load one of the API assemblies.");
}
}
}
#ifdef TOOLS_ENABLED