From f8bd0442d13dfad65a2cc25d78fd0214a8745675 Mon Sep 17 00:00:00 2001 From: Domain Date: Wed, 6 Jul 2022 12:03:18 +0800 Subject: Add runtime arguments in project file. Fix #2536 --- xmake/plugins/project/vsxmake/getinfo.lua | 1 + xmake/plugins/project/vsxmake/vsproj/Xmake.props | 2 ++ xmake/plugins/project/vsxmake/vsproj/Xmake.targets | 1 + .../project/vsxmake/vsproj/templates/vcxproj/XmakeConfig(mode,arch) | 1 + 4 files changed, 5 insertions(+) diff --git a/xmake/plugins/project/vsxmake/getinfo.lua b/xmake/plugins/project/vsxmake/getinfo.lua index a3063038f..895d33f22 100644 --- a/xmake/plugins/project/vsxmake/getinfo.lua +++ b/xmake/plugins/project/vsxmake/getinfo.lua @@ -226,6 +226,7 @@ function _make_targetinfo(mode, arch, target) table.insert(runenvstr, k .. "=" .. v) end targetinfo.runenvs = table.concat(runenvstr, "\n") + targetinfo.runargs = target:get("runargs") -- use mfc? save the mfc runtime kind if target:rule("win.sdk.mfc.shared_app") or target:rule("win.sdk.mfc.shared") then diff --git a/xmake/plugins/project/vsxmake/vsproj/Xmake.props b/xmake/plugins/project/vsxmake/vsproj/Xmake.props index a7faaa1ad..9fa9f7ea1 100644 --- a/xmake/plugins/project/vsxmake/vsproj/Xmake.props +++ b/xmake/plugins/project/vsxmake/vsproj/Xmake.props @@ -159,10 +159,12 @@ $(XmakeRunDir) $(XmakeRunEnvs) $(LocalDebuggerEnvironment) + $(XmakeRunArgs) true $(XmakeRunDir) $(XmakeRunEnvs) $(RemoteDebuggerEnvironment) + $(XmakeRunArgs) diff --git a/xmake/plugins/project/vsxmake/vsproj/Xmake.targets b/xmake/plugins/project/vsxmake/vsproj/Xmake.targets index ad5777293..39b7da128 100644 --- a/xmake/plugins/project/vsxmake/vsproj/Xmake.targets +++ b/xmake/plugins/project/vsxmake/vsproj/Xmake.targets @@ -146,6 +146,7 @@ MSBuild Properties: XmakeSourceDirs: $(XmakeSourceDirs) XmakePrecompiledHeader: $(XmakePrecompiledHeader) XmakeRunEnvs: $(XmakeRunEnvs) + XmakeRunArgs: $(XmakeRunArgs) Xmake Path: XmakeProgramDir: $(XmakeProgramDir) XmakeProjectDir: $(XmakeProjectDir) diff --git a/xmake/plugins/project/vsxmake/vsproj/templates/vcxproj/XmakeConfig(mode,arch) b/xmake/plugins/project/vsxmake/vsproj/templates/vcxproj/XmakeConfig(mode,arch) index 4832d8e93..6d5b4165d 100644 --- a/xmake/plugins/project/vsxmake/vsproj/templates/vcxproj/XmakeConfig(mode,arch) +++ b/xmake/plugins/project/vsxmake/vsproj/templates/vcxproj/XmakeConfig(mode,arch) @@ -13,6 +13,7 @@ #sdkver# #mfckind# #runenvs# + #runargs# #configflags# #includedirs# #linkdirs# -- cgit v1.3.1 From b82b7581db07c368e0e494fada1ae88efdda89ef Mon Sep 17 00:00:00 2001 From: Domain Date: Wed, 6 Jul 2022 15:11:29 +0800 Subject: runargs can be a table --- xmake/plugins/project/vsxmake/getinfo.lua | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/xmake/plugins/project/vsxmake/getinfo.lua b/xmake/plugins/project/vsxmake/getinfo.lua index 895d33f22..93653061b 100644 --- a/xmake/plugins/project/vsxmake/getinfo.lua +++ b/xmake/plugins/project/vsxmake/getinfo.lua @@ -226,7 +226,13 @@ function _make_targetinfo(mode, arch, target) table.insert(runenvstr, k .. "=" .. v) end targetinfo.runenvs = table.concat(runenvstr, "\n") - targetinfo.runargs = target:get("runargs") + + local runargs = target:get("runargs") + if type(runargs) == "table" then + targetinfo.runargs = table.concat(runargs, " ") + else + targetinfo.runargs = runargs + end -- use mfc? save the mfc runtime kind if target:rule("win.sdk.mfc.shared_app") or target:rule("win.sdk.mfc.shared") then -- cgit v1.3.1 From a798e0aed639458a4da0faabf47ad076db37eb0f Mon Sep 17 00:00:00 2001 From: Domain Date: Wed, 6 Jul 2022 15:28:00 +0800 Subject: use os.args --- xmake/plugins/project/vsxmake/getinfo.lua | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/xmake/plugins/project/vsxmake/getinfo.lua b/xmake/plugins/project/vsxmake/getinfo.lua index 93653061b..e45947482 100644 --- a/xmake/plugins/project/vsxmake/getinfo.lua +++ b/xmake/plugins/project/vsxmake/getinfo.lua @@ -228,10 +228,8 @@ function _make_targetinfo(mode, arch, target) targetinfo.runenvs = table.concat(runenvstr, "\n") local runargs = target:get("runargs") - if type(runargs) == "table" then - targetinfo.runargs = table.concat(runargs, " ") - else - targetinfo.runargs = runargs + if runargs then + targetinfo.runargs = os.args(table.wrap(runargs)) end -- use mfc? save the mfc runtime kind -- cgit v1.3.1