Skip to content

Commit

Permalink
[Scons] Added the ability to change the visibility of symbols
Browse files Browse the repository at this point in the history
  • Loading branch information
DmitriySalnikov committed Nov 21, 2023
1 parent 6fd4e15 commit f5e4f95
Showing 1 changed file with 17 additions and 0 deletions.
17 changes: 17 additions & 0 deletions tools/godotcpp.py
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,15 @@ def options(opts, env):
)
)

opts.Add(
EnumVariable(
key="symbols_visibility",
help="Symbols visibility on GNU platforms. Use 'auto' to apply the default value.",
default=env.get("symbols_visibility", "hidden"),
allowed_values=["auto", "visible", "hidden"],
)
)

# Add platform options
for pl in platforms:
tool = Tool(pl, toolpath=["tools"])
Expand Down Expand Up @@ -269,6 +278,14 @@ def generate(env):
elif env.get("is_msvc", False):
env.Append(CXXFLAGS=["/EHsc"])

if not env.get("is_msvc", False):
if env["symbols_visibility"] == "visible":
env.Append(CCFLAGS=["-fvisibility=default"])
env.Append(LINKFLAGS=["-fvisibility=default"])
elif env["symbols_visibility"] == "hidden":
env.Append(CCFLAGS=["-fvisibility=hidden"])
env.Append(LINKFLAGS=["-fvisibility=hidden"])

# Require C++17
if env.get("is_msvc", False):
env.Append(CXXFLAGS=["/std:c++17"])
Expand Down

0 comments on commit f5e4f95

Please sign in to comment.