diff options
author | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2020-12-03 17:15:14 +0100 |
---|---|---|
committer | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2020-12-05 01:12:52 +0100 |
commit | dd9503dc1937e1469b2a6f8e145e80acbf2c7cbb (patch) | |
tree | 3d99772bd543ddda07ff17a7ef6247e982488574 /platform/javascript | |
parent | 1e7bd3d08be6559ae14b0d25234cfc01298fe450 (diff) |
[HTML5] Make GDNative support feature-based.
This is suboptimal as it requires adding an extra compile flag, but
rewriting how feature tags work is beyond the scope of this work.
Diffstat (limited to 'platform/javascript')
-rw-r--r-- | platform/javascript/SCsub | 1 | ||||
-rw-r--r-- | platform/javascript/export/export.cpp | 6 | ||||
-rw-r--r-- | platform/javascript/os_javascript.cpp | 16 |
3 files changed, 21 insertions, 2 deletions
diff --git a/platform/javascript/SCsub b/platform/javascript/SCsub index 3501e17c6c..59f3dce3ad 100644 --- a/platform/javascript/SCsub +++ b/platform/javascript/SCsub @@ -52,6 +52,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 017ba77231..f77bf6ab97 100644 --- a/platform/javascript/export/export.cpp +++ b/platform/javascript/export/export.cpp @@ -330,6 +330,12 @@ void EditorExportPlatformJavaScript::get_preset_features(const Ref<EditorExportP r_features->push_back("etc2"); } } + ExportMode mode = (ExportMode)(int)p_preset->get("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<ExportOption> *r_options) { diff --git a/platform/javascript/os_javascript.cpp b/platform/javascript/os_javascript.cpp index b3ef3fe573..ebfcd7293e 100644 --- a/platform/javascript/os_javascript.cpp +++ b/platform/javascript/os_javascript.cpp @@ -128,12 +128,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; |