Explorar el Código

Merge pull request #87154 from Repiteo/scons/cl-quiet

SCons: Silence redundant MSVC output
Rémi Verschelde hace 1 año
padre
commit
3655973e0e
Se han modificado 1 ficheros con 15 adiciones y 0 borrados
  1. 15 0
      platform/windows/detect.py

+ 15 - 0
platform/windows/detect.py

@@ -202,6 +202,7 @@ def get_opts():
         BoolVariable("use_asan", "Use address sanitizer (ASAN)", False),
         BoolVariable("debug_crt", "Compile with MSVC's debug CRT (/MDd)", False),
         BoolVariable("incremental_link", "Use MSVC incremental linking. May increase or decrease build times.", False),
+        BoolVariable("silence_msvc", "Silence MSVC's stdout. Decreases output log bloat by roughly half.", True),
         ("angle_libs", "Path to the ANGLE static libraries", ""),
         # Direct3D 12 support.
         (
@@ -392,6 +393,20 @@ def configure_msvc(env: "SConsEnvironment", vcvars_msvc_config):
 
     ## Compile/link flags
 
+    env["MAXLINELENGTH"] = 8192  # Windows Vista and beyond, so always applicable.
+
+    if env["silence_msvc"]:
+        env.Prepend(CCFLAGS=[">", "NUL"])
+        env.Prepend(LINKFLAGS=[">", "NUL"])
+
+        # "> NUL" fails if using a tempfile, circumvent by removing the argument altogether.
+        old_esc_func = env["TEMPFILEARGESCFUNC"]
+
+        def trim_nul(arg):
+            return "" if arg in [">", "NUL"] else old_esc_func(arg)
+
+        env["TEMPFILEARGESCFUNC"] = trim_nul
+
     if env["debug_crt"]:
         # Always use dynamic runtime, static debug CRT breaks thread_local.
         env.AppendUnique(CCFLAGS=["/MDd"])