diff options
Diffstat (limited to 'platform/javascript/detect.py')
-rw-r--r-- | platform/javascript/detect.py | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/platform/javascript/detect.py b/platform/javascript/detect.py index 4a9652fc1c..15fd63811c 100644 --- a/platform/javascript/detect.py +++ b/platform/javascript/detect.py @@ -185,10 +185,6 @@ def configure(env): if env["javascript_eval"]: env.Append(CPPDEFINES=["JAVASCRIPT_EVAL_ENABLED"]) - if env["threads_enabled"] and env["gdnative_enabled"]: - print("Threads and GDNative support can't be both enabled due to WebAssembly limitations") - sys.exit(255) - # Thread support (via SharedArrayBuffer). if env["threads_enabled"]: env.Append(CPPDEFINES=["PTHREAD_NO_RENAME"]) @@ -201,10 +197,21 @@ def configure(env): env.Append(CPPDEFINES=["NO_THREADS"]) if env["gdnative_enabled"]: - major, minor, patch = get_compiler_version(env) + emcc_version = get_compiler_version(env) + major = int(emcc_version["major"]) + minor = int(emcc_version["minor"]) + patch = int(emcc_version["patch"]) if major < 2 or (major == 2 and minor == 0 and patch < 10): print("GDNative support requires emscripten >= 2.0.10, detected: %s.%s.%s" % (major, minor, patch)) sys.exit(255) + if ( + env["threads_enabled"] + and major < 3 + or (major == 3 and minor < 1) + or (major == 3 and minor == 1 and patch < 14) + ): + print("Threads and GDNative requires emscripten => 3.1.14, detected: %s.%s.%s" % (major, minor, patch)) + sys.exit(255) env.Append(CCFLAGS=["-s", "RELOCATABLE=1"]) env.Append(LINKFLAGS=["-s", "RELOCATABLE=1"]) # Weak symbols are broken upstream: https://github.com/emscripten-core/emscripten/issues/12819 |