summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2023-06-21 23:46:33 +0800
committerruki <[email protected]>2023-06-21 23:46:33 +0800
commit710a110735a1d8645f29527593334297e399cf1d (patch)
tree59818e5be7183a185cc75b271b050c7c8955f814
parenta70688f2322121027ca136125be0a2ebd8a3b06d (diff)
call upgrade_vsproj in msbuild
-rw-r--r--xmake/modules/package/tools/msbuild.lua12
-rw-r--r--xmake/modules/private/utils/upgrade_vsproj.lua4
2 files changed, 12 insertions, 4 deletions
diff --git a/xmake/modules/package/tools/msbuild.lua b/xmake/modules/package/tools/msbuild.lua
index e3194322e..8bcd1bc28 100644
--- a/xmake/modules/package/tools/msbuild.lua
+++ b/xmake/modules/package/tools/msbuild.lua
@@ -22,6 +22,7 @@
import("core.base.option")
import("core.tool.toolchain")
import("lib.detect.find_tool")
+import("private.utils.upgrade_vsproj")
-- get the number of parallel jobs
function _get_parallel_njobs(opt)
@@ -74,16 +75,18 @@ end
-- build package
function build(package, configs, opt)
-
- -- init options
opt = opt or {}
-- pass configurations
+ local slnfile
local argv = {}
for name, value in pairs(_get_configs(package, configs, opt)) do
value = tostring(value):trim()
if value ~= "" then
if type(name) == "number" then
+ if value:endswith(".sln") then
+ slnfile = value
+ end
table.insert(argv, value)
else
table.insert(argv, name .. "=" .. value)
@@ -91,6 +94,11 @@ function build(package, configs, opt)
end
end
+ -- upgrade vs solution file?
+ if slnfile and opt.upgrade then
+ upgrade_vsproj.upgrade(slnfile, opt)
+ end
+
-- do build
local envs = opt.envs or buildenvs(package, opt)
local msbuild = find_tool("msbuild", {envs = envs})
diff --git a/xmake/modules/private/utils/upgrade_vsproj.lua b/xmake/modules/private/utils/upgrade_vsproj.lua
index b1dc9eff0..eee1f39cb 100644
--- a/xmake/modules/private/utils/upgrade_vsproj.lua
+++ b/xmake/modules/private/utils/upgrade_vsproj.lua
@@ -30,7 +30,7 @@ local options = {
}
-- upgrade vs project file
-function _upgrade(projectfile, opt)
+function upgrade(projectfile, opt)
opt = opt or {}
end
@@ -41,6 +41,6 @@ function main(...)
, "Usage: xmake l private.utils.upgrade_vsproj [options]")
for _, projectfile in ipairs(opt.vs_projectfiles) do
- _upgrade(projectfile, opt)
+ upgrade(projectfile, opt)
end
end