Преглед на файлове

Build system: add option for MSVC incremental linking.

(cherry picked from commit bbafe14970cf2a101b8b04dbfafeeaa9ddfb5d4d)
ocean (they/them) преди 1 година
родител
ревизия
cd2e003a05
променени са 2 файла, в които са добавени 7 реда и са изтрити 2 реда
  1. 3 0
      methods.py
  2. 4 2
      platform/windows/detect.py

+ 3 - 0
methods.py

@@ -871,6 +871,9 @@ def generate_vs_project(env, num_jobs, project_name="godot"):
                 if env["precision"] == "double":
                     common_build_postfix.append("precision=double")
 
+                if env["incremental_link"]:
+                    common_build_postfix.append("incremental_link=yes")
+
                 result = " ^& ".join(common_build_prefix + [" ".join([commands] + common_build_postfix)])
                 return result
 

+ 4 - 2
platform/windows/detect.py

@@ -185,6 +185,7 @@ def get_opts():
         BoolVariable("use_static_cpp", "Link MinGW/MSVC C++ runtime libraries statically", True),
         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),
     ]
 
 
@@ -355,8 +356,9 @@ def configure_msvc(env, vcvars_msvc_config):
         else:
             env.AppendUnique(CCFLAGS=["/MD"])
 
-    # MSVC incremental linking is broken and _increases_ link time (GH-77968).
-    env.Append(LINKFLAGS=["/INCREMENTAL:NO"])
+    # MSVC incremental linking is broken and may _increase_ link time (GH-77968).
+    if not env["incremental_link"]:
+        env.Append(LINKFLAGS=["/INCREMENTAL:NO"])
 
     if env["arch"] == "x86_32":
         env["x86_libtheora_opt_vc"] = True