瀏覽代碼

[SCons] Link MSVC debug runtime for optimize=none|debug only.

Select windows runtime in "targets" tool, use "/MDd" flag only when
building with optimize="none" and optimize="debug".
Fabio Alessandrelli 2 年之前
父節點
當前提交
edf02f8319
共有 2 個文件被更改,包括 7 次插入7 次删除
  1. 7 3
      tools/targets.py
  2. 0 4
      tools/windows.py

+ 7 - 3
tools/targets.py

@@ -55,7 +55,7 @@ def generate(env):
     env["optimize"] = ARGUMENTS.get("optimize", opt_level)
     env["optimize"] = ARGUMENTS.get("optimize", opt_level)
     env["debug_symbols"] = get_cmdline_bool("debug_symbols", env.dev_build)
     env["debug_symbols"] = get_cmdline_bool("debug_symbols", env.dev_build)
 
 
-    if "is_msvc" in env and env["is_msvc"]:
+    if env.get("is_msvc", False):
         if env["debug_symbols"]:
         if env["debug_symbols"]:
             env.Append(CCFLAGS=["/Zi", "/FS"])
             env.Append(CCFLAGS=["/Zi", "/FS"])
             env.Append(LINKFLAGS=["/DEBUG:FULL"])
             env.Append(LINKFLAGS=["/DEBUG:FULL"])
@@ -66,8 +66,12 @@ def generate(env):
         elif env["optimize"] == "size":
         elif env["optimize"] == "size":
             env.Append(CCFLAGS=["/O1"])
             env.Append(CCFLAGS=["/O1"])
             env.Append(LINKFLAGS=["/OPT:REF"])
             env.Append(LINKFLAGS=["/OPT:REF"])
-        elif env["optimize"] == "debug" or env["optimize"] == "none":
-            env.Append(CCFLAGS=["/Od"])
+
+        if env["optimize"] == "debug" or env["optimize"] == "none":
+            env.Append(CCFLAGS=["/MDd", "/Od"])
+        else:
+            env.Append(CCFLAGS=["/MD"])
+
     else:
     else:
         if env["debug_symbols"]:
         if env["debug_symbols"]:
             if env.dev_build:
             if env.dev_build:

+ 0 - 4
tools/windows.py

@@ -27,10 +27,6 @@ def generate(env):
         env.Append(CPPDEFINES=["TYPED_METHOD_BIND", "NOMINMAX"])
         env.Append(CPPDEFINES=["TYPED_METHOD_BIND", "NOMINMAX"])
         env.Append(CCFLAGS=["/EHsc"])
         env.Append(CCFLAGS=["/EHsc"])
         env.Append(LINKFLAGS=["/WX"])
         env.Append(LINKFLAGS=["/WX"])
-        if env["debug_symbols"] or env["target"] == "debug":
-            env.Append(CCFLAGS=["/MDd"])
-        else:
-            env.Append(CCFLAGS=["/MD"])
 
 
         if env["use_clang_cl"]:
         if env["use_clang_cl"]:
             env["CC"] = "clang-cl"
             env["CC"] = "clang-cl"