diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/extension/gdextension.cpp | 4 | ||||
-rw-r--r-- | core/os/os.cpp | 6 |
2 files changed, 9 insertions, 1 deletions
diff --git a/core/extension/gdextension.cpp b/core/extension/gdextension.cpp index 4f9bb8c127..2bac1f6592 100644 --- a/core/extension/gdextension.cpp +++ b/core/extension/gdextension.cpp @@ -912,6 +912,8 @@ Error GDExtensionResourceLoader::load_gdextension_resource(const String &p_path, return ERR_FILE_NOT_FOUND; } + bool is_static_library = library_path.ends_with(".a") || library_path.ends_with(".xcframework"); + if (!library_path.is_resource_file() && !library_path.is_absolute_path()) { library_path = p_path.get_base_dir().path_join(library_path); } @@ -928,7 +930,7 @@ Error GDExtensionResourceLoader::load_gdextension_resource(const String &p_path, FileAccess::get_modified_time(library_path)); #endif - err = p_extension->open_library(library_path, entry_symbol); + err = p_extension->open_library(is_static_library ? String() : library_path, entry_symbol); if (err != OK) { #if defined(WINDOWS_ENABLED) && defined(TOOLS_ENABLED) // If the DLL fails to load, make sure that temporary DLL copies are cleaned up. diff --git a/core/os/os.cpp b/core/os/os.cpp index 991b179e1f..c7390f14ff 100644 --- a/core/os/os.cpp +++ b/core/os/os.cpp @@ -490,6 +490,12 @@ bool OS::has_feature(const String &p_feature) { } #endif +#if defined(IOS_SIMULATOR) + if (p_feature == "simulator") { + return true; + } +#endif + if (_check_internal_feature_support(p_feature)) { return true; } |