diff --git a/modules/gdnative/gdnative_library_editor_plugin.cpp b/modules/gdnative/gdnative_library_editor_plugin.cpp index ba58c388771..2f7837f8173 100644 --- a/modules/gdnative/gdnative_library_editor_plugin.cpp +++ b/modules/gdnative/gdnative_library_editor_plugin.cpp @@ -335,7 +335,7 @@ GDNativeLibraryEditor::GDNativeLibraryEditor() { NativePlatformConfig platform_html5; platform_html5.name = "HTML5"; - platform_html5.entries.push_back("web"); + platform_html5.entries.push_back("wasm32"); platform_html5.library_extension = "*.wasm"; platforms["HTML5"] = platform_html5; diff --git a/platform/javascript/SCsub b/platform/javascript/SCsub index 16f68877486..9c6894cfef0 100644 --- a/platform/javascript/SCsub +++ b/platform/javascript/SCsub @@ -51,6 +51,7 @@ if env["gdnative_enabled"]: # The side library, containing all Godot code. wasm_env = env.Clone() + wasm_env.Append(CPPDEFINES=["WASM_GDNATIVE"]) # So that OS knows it can run GDNative libraries. wasm_env.Append(CCFLAGS=["-s", "SIDE_MODULE=2"]) wasm_env.Append(LINKFLAGS=["-s", "SIDE_MODULE=2"]) wasm = wasm_env.add_program("#bin/godot.side${PROGSUFFIX}.wasm", javascript_files) diff --git a/platform/javascript/export/export.cpp b/platform/javascript/export/export.cpp index cc15d82530a..aa65b61ca34 100644 --- a/platform/javascript/export/export.cpp +++ b/platform/javascript/export/export.cpp @@ -328,6 +328,12 @@ void EditorExportPlatformJavaScript::get_preset_features(const Refget("variant/export_type"); + if (mode == EXPORT_MODE_THREADS) { + r_features->push_back("threads"); + } else if (mode == EXPORT_MODE_GDNATIVE) { + r_features->push_back("wasm32"); + } } void EditorExportPlatformJavaScript::get_export_options(List *r_options) { diff --git a/platform/javascript/os_javascript.cpp b/platform/javascript/os_javascript.cpp index 6346903cbfc..f760dab6b18 100644 --- a/platform/javascript/os_javascript.cpp +++ b/platform/javascript/os_javascript.cpp @@ -1071,12 +1071,24 @@ int OS_JavaScript::get_process_id() const { bool OS_JavaScript::_check_internal_feature_support(const String &p_feature) { - if (p_feature == "HTML5" || p_feature == "web") + if (p_feature == "HTML5" || p_feature == "web") { return true; + } #ifdef JAVASCRIPT_EVAL_ENABLED - if (p_feature == "JavaScript") + if (p_feature == "JavaScript") { return true; + } +#endif +#ifndef NO_THREADS + if (p_feature == "threads") { + return true; + } +#endif +#if WASM_GDNATIVE + if (p_feature == "wasm32") { + return true; + } #endif return false;