Build system: add option for MSVC incremental linking.

(cherry picked from commit bbafe14970)
This commit is contained in:
ocean (they/them) 2023-08-29 17:56:25 -04:00 committed by Rémi Verschelde
parent fe7ed984b5
commit 09554a66d8
No known key found for this signature in database
GPG key ID: C3336907360768E1
2 changed files with 7 additions and 2 deletions

View file

@ -926,6 +926,9 @@ def generate_vs_project(env, num_jobs):
if env["custom_modules"]:
common_build_postfix.append("custom_modules=%s" % env["custom_modules"])
if env["incremental_link"]:
common_build_postfix.append("incremental_link=yes")
result = " ^& ".join(common_build_prefix + [" ".join([commands] + common_build_postfix)])
return result

View file

@ -72,6 +72,7 @@ def get_opts():
BoolVariable("use_llvm", "Use the LLVM compiler", False),
BoolVariable("use_static_cpp", "Link MinGW/MSVC C++ runtime libraries statically", True),
BoolVariable("use_asan", "Use address sanitizer (ASAN)", False),
BoolVariable("incremental_link", "Use MSVC incremental linking. May increase or decrease build times.", False),
]
@ -214,8 +215,9 @@ def configure_msvc(env, manual_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"])
env.AppendUnique(CCFLAGS=["/Gd", "/GR", "/nologo"])
env.AppendUnique(CCFLAGS=["/utf-8"]) # Force to use Unicode encoding.