Skip to content

Commit

Permalink
SCons: Add method to detect Emscripten and use it for warnings config
Browse files Browse the repository at this point in the history
Emscripten is LLVM-based so we want to follow the same logic. But we can't just
put it as a match in `methods.using_clang()` as that would mess with the
compiler version detection logic used to restrict old GCC and Clang releases.
  • Loading branch information
akien-mga committed Aug 6, 2021
1 parent 802810c commit 3442168
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 3 deletions.
6 changes: 3 additions & 3 deletions SConstruct
Original file line number Diff line number Diff line change
Expand Up @@ -510,7 +510,7 @@ if selected_platform in platform_list:

if methods.using_gcc(env):
common_warnings += ["-Wshadow-local", "-Wno-misleading-indentation"]
elif methods.using_clang(env):
elif methods.using_clang(env) or methods.using_emcc(env):
# We often implement `operator<` for structs of pointers as a requirement
# for putting them in `Set` or `Map`. We don't mind about unreliable ordering.
common_warnings += ["-Wno-ordered-compare-function-pointers"]
Expand All @@ -532,7 +532,7 @@ if selected_platform in platform_list:
env.Append(CXXFLAGS=["-Wplacement-new=1"])
if cc_version_major >= 9:
env.Append(CCFLAGS=["-Wattribute-alias=2"])
elif methods.using_clang(env):
elif methods.using_clang(env) or methods.using_emcc(env):
env.Append(CCFLAGS=["-Wimplicit-fallthrough"])
elif env["warnings"] == "all":
env.Append(CCFLAGS=["-Wall"] + common_warnings)
Expand All @@ -548,7 +548,7 @@ if selected_platform in platform_list:
env.Append(CXXFLAGS=["-Wno-error=cpp"])
if cc_version_major == 7: # Bogus warning fixed in 8+.
env.Append(CCFLAGS=["-Wno-error=strict-overflow"])
elif methods.using_clang(env):
elif methods.using_clang(env) or methods.using_emcc(env):
env.Append(CXXFLAGS=["-Wno-error=#warnings"])
else: # always enable those errors
env.Append(CCFLAGS=["-Werror=return-type"])
Expand Down
4 changes: 4 additions & 0 deletions methods.py
Original file line number Diff line number Diff line change
Expand Up @@ -828,6 +828,10 @@ def using_clang(env):
return "clang" in os.path.basename(env["CC"])


def using_emcc(env):
return "emcc" in os.path.basename(env["CC"])


def show_progress(env):
import sys
from SCons.Script import Progress, Command, AlwaysBuild
Expand Down

0 comments on commit 3442168

Please sign in to comment.