Fix custom modules in Visual Studio

Without `custom_modules` scons command in VS project was broken
(fixes regression from commit 6122a504ee)
This commit is contained in:
Bartłomiej T. Listwon 2020-09-18 18:04:37 +02:00
parent 31d0f8ad8d
commit 405412938a

View file

@ -572,13 +572,28 @@ def generate_vs_project(env, num_jobs):
common_build_prefix = [ common_build_prefix = [
'cmd /V /C set "plat=$(PlatformTarget)"', 'cmd /V /C set "plat=$(PlatformTarget)"',
'(if "$(PlatformTarget)"=="x64" (set "plat=x86_amd64"))', '(if "$(PlatformTarget)"=="x64" (set "plat=x86_amd64"))',
'set "tools=yes"', 'set "tools=%s"' % env["tools"],
'(if "$(Configuration)"=="release" (set "tools=no"))', '(if "$(Configuration)"=="release" (set "tools=no"))',
'set "custom_modules=%s"' % env["custom_modules"],
'call "' + batch_file + '" !plat!', 'call "' + batch_file + '" !plat!',
] ]
result = " ^& ".join(common_build_prefix + [commands]) # windows allows us to have spaces in paths, so we need
# to double quote off the directory. However, the path ends
# in a backslash, so we need to remove this, lest it escape the
# last double quote off, confusing MSBuild
common_build_postfix = [
"--directory=\"$(ProjectDir.TrimEnd('\\'))\"",
"platform=windows",
"target=$(Configuration)",
"progress=no",
"tools=!tools!",
"-j%s" % num_jobs,
]
if env["custom_modules"]:
common_build_postfix.append("custom_modules=%s" % env["custom_modules"])
result = " ^& ".join(common_build_prefix + [" ".join([commands] + common_build_postfix)])
return result return result
env.AddToVSProject(env.core_sources) env.AddToVSProject(env.core_sources)
@ -588,22 +603,9 @@ def generate_vs_project(env, num_jobs):
env.AddToVSProject(env.servers_sources) env.AddToVSProject(env.servers_sources)
env.AddToVSProject(env.editor_sources) env.AddToVSProject(env.editor_sources)
# windows allows us to have spaces in paths, so we need env["MSVSBUILDCOM"] = build_commandline("scons")
# to double quote off the directory. However, the path ends env["MSVSREBUILDCOM"] = build_commandline("scons vsproj=yes")
# in a backslash, so we need to remove this, lest it escape the env["MSVSCLEANCOM"] = build_commandline("scons --clean")
# last double quote off, confusing MSBuild
env["MSVSBUILDCOM"] = build_commandline(
"scons --directory=\"$(ProjectDir.TrimEnd('\\'))\" platform=windows progress=no target=$(Configuration) tools=!tools! custom_modules=!custom_modules! -j"
+ str(num_jobs)
)
env["MSVSREBUILDCOM"] = build_commandline(
"scons --directory=\"$(ProjectDir.TrimEnd('\\'))\" platform=windows progress=no target=$(Configuration) tools=!tools! vsproj=yes custom_modules=!custom_modules! -j"
+ str(num_jobs)
)
env["MSVSCLEANCOM"] = build_commandline(
"scons --directory=\"$(ProjectDir.TrimEnd('\\'))\" --clean platform=windows progress=no target=$(Configuration) tools=!tools! custom_modules=!custom_modules! -j"
+ str(num_jobs)
)
# This version information (Win32, x64, Debug, Release, Release_Debug seems to be # This version information (Win32, x64, Debug, Release, Release_Debug seems to be
# required for Visual Studio to understand that it needs to generate an NMAKE # required for Visual Studio to understand that it needs to generate an NMAKE