Skip to content

Commit

Permalink
Merge pull request #1451 from Faless/build/to_threads_or_not_to_threads
Browse files Browse the repository at this point in the history
[SCons] Add option to build without threads
  • Loading branch information
dsnopek authored May 16, 2024
2 parents 6b39ed0 + b0296bb commit 340dde3
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 4 deletions.
6 changes: 4 additions & 2 deletions test/project/example.gdextension
Original file line number Diff line number Diff line change
Expand Up @@ -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 = {
Expand Down
7 changes: 7 additions & 0 deletions tools/godotcpp.py
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down Expand Up @@ -438,6 +440,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"])

Expand Down Expand Up @@ -481,6 +486,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"]
Expand Down
5 changes: 3 additions & 2 deletions tools/web.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"])
Expand Down

0 comments on commit 340dde3

Please sign in to comment.