summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--test/project/example.gdextension6
-rw-r--r--tools/godotcpp.py7
-rw-r--r--tools/web.py5
3 files changed, 14 insertions, 4 deletions
diff --git a/test/project/example.gdextension b/test/project/example.gdextension
index 4f599ce..8e2f794 100644
--- a/test/project/example.gdextension
+++ b/test/project/example.gdextension
@@ -29,8 +29,10 @@ android.debug.arm64 = "res://bin/libgdexample.android.template_debug.arm64.so"
android.release.arm64 = "res://bin/libgdexample.android.template_release.arm64.so"
ios.debug = "res://bin/libgdexample.ios.template_debug.xcframework"
ios.release = "res://bin/libgdexample.ios.template_release.xcframework"
-web.debug.wasm32 = "res://bin/libgdexample.web.template_debug.wasm32.wasm"
-web.release.wasm32 = "res://bin/libgdexample.web.template_release.wasm32.wasm"
+web.debug.threads.wasm32 = "res://bin/libgdexample.web.template_debug.wasm32.wasm"
+web.release.threads.wasm32 = "res://bin/libgdexample.web.template_release.wasm32.wasm"
+web.debug.wasm32 = "res://bin/libgdexample.web.template_debug.wasm32.nothreads.wasm"
+web.release.wasm32 = "res://bin/libgdexample.web.template_release.wasm32.nothreads.wasm"
[dependencies]
ios.debug = {
diff --git a/tools/godotcpp.py b/tools/godotcpp.py
index 13a57e9..9a8d328 100644
--- a/tools/godotcpp.py
+++ b/tools/godotcpp.py
@@ -266,6 +266,8 @@ def options(opts, env):
)
)
+ opts.Add(BoolVariable(key="threads", help="Enable threading support", default=env.get("threads", True)))
+
# compiledb
opts.Add(
BoolVariable(
@@ -393,6 +395,9 @@ def generate(env):
tool.generate(env)
+ if env["threads"]:
+ env.Append(CPPDEFINES=["THREADS_ENABLED"])
+
if env.use_hot_reload:
env.Append(CPPDEFINES=["HOT_RELOAD_ENABLED"])
@@ -436,6 +441,8 @@ def generate(env):
suffix += "." + env["arch"]
if env["ios_simulator"]:
suffix += ".simulator"
+ if not env["threads"]:
+ suffix += ".nothreads"
env["suffix"] = suffix # Exposed when included from another project
env["OBJSUFFIX"] = suffix + env["OBJSUFFIX"]
diff --git a/tools/web.py b/tools/web.py
index c7440bc..61fe96d 100644
--- a/tools/web.py
+++ b/tools/web.py
@@ -35,8 +35,9 @@ def generate(env):
env["SHLIBSUFFIX"] = ".wasm"
# Thread support (via SharedArrayBuffer).
- env.Append(CCFLAGS=["-s", "USE_PTHREADS=1"])
- env.Append(LINKFLAGS=["-s", "USE_PTHREADS=1"])
+ if env["threads"]:
+ env.Append(CCFLAGS=["-s", "USE_PTHREADS=1"])
+ env.Append(LINKFLAGS=["-s", "USE_PTHREADS=1"])
# Build as side module (shared library).
env.Append(CPPFLAGS=["-s", "SIDE_MODULE=1"])