summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2022-09-27 12:35:12 +0200
committerRémi Verschelde <rverschelde@gmail.com>2022-09-27 12:35:27 +0200
commit9505f5fdd8ccc8954db874d0457d98c30bfed100 (patch)
treeb87034f300555b4dcb37fb4d1a2224db4e09c891
parent52aae6d4f11c1142cc644e43d116c3d80ebdd73b (diff)
SCons: Fix MSVC D9025 warning overriding opt level
And cleanup disable_warnings too to avoid setting `/w` / `-w` multiple times.
-rw-r--r--methods.py24
1 files changed, 12 insertions, 12 deletions
diff --git a/methods.py b/methods.py
index 97a1e15e35..43aa3cf46c 100644
--- a/methods.py
+++ b/methods.py
@@ -49,17 +49,12 @@ def disable_warnings(self):
if self.msvc:
# We have to remove existing warning level defines before appending /w,
# otherwise we get: "warning D9025 : overriding '/W3' with '/w'"
- warn_flags = ["/Wall", "/W4", "/W3", "/W2", "/W1", "/WX"]
- self.Append(CCFLAGS=["/w"])
- self.Append(CFLAGS=["/w"])
- self.Append(CXXFLAGS=["/w"])
- self["CCFLAGS"] = [x for x in self["CCFLAGS"] if not x in warn_flags]
- self["CFLAGS"] = [x for x in self["CFLAGS"] if not x in warn_flags]
- self["CXXFLAGS"] = [x for x in self["CXXFLAGS"] if not x in warn_flags]
+ self["CCFLAGS"] = [x for x in self["CCFLAGS"] if not (x.startswith("/W") or x.startswith("/w"))]
+ self["CFLAGS"] = [x for x in self["CFLAGS"] if not (x.startswith("/W") or x.startswith("/w"))]
+ self["CXXFLAGS"] = [x for x in self["CXXFLAGS"] if not (x.startswith("/W") or x.startswith("/w"))]
+ self.AppendUnique(CCFLAGS=["/w"])
else:
- self.Append(CCFLAGS=["-w"])
- self.Append(CFLAGS=["-w"])
- self.Append(CXXFLAGS=["-w"])
+ self.AppendUnique(CCFLAGS=["-w"])
def force_optimization_on_debug(self):
@@ -68,9 +63,14 @@ def force_optimization_on_debug(self):
return
if self.msvc:
- self.Append(CCFLAGS=["/O2"])
+ # We have to remove existing optimization level defines before appending /O2,
+ # otherwise we get: "warning D9025 : overriding '/0d' with '/02'"
+ self["CCFLAGS"] = [x for x in self["CCFLAGS"] if not x.startswith("/O")]
+ self["CFLAGS"] = [x for x in self["CFLAGS"] if not x.startswith("/O")]
+ self["CXXFLAGS"] = [x for x in self["CXXFLAGS"] if not x.startswith("/O")]
+ self.AppendUnique(CCFLAGS=["/O2"])
else:
- self.Append(CCFLAGS=["-O3"])
+ self.AppendUnique(CCFLAGS=["-O3"])
def add_module_version_string(self, s):