summaryrefslogtreecommitdiff
path: root/xmake/plugins/project/vstudio/impl
diff options
context:
space:
mode:
authorruki <[email protected]>2026-03-29 22:49:37 +0800
committerruki <[email protected]>2026-03-29 22:49:41 +0800
commit1bccfc273af2b1d579d033324bca481e15c58653 (patch)
tree192697793bd61d48b4423da0ac4a1eab804d80dc /xmake/plugins/project/vstudio/impl
parentf4513cc28aa778e1ad0d050511cc7e295fe81e32 (diff)
fix const limit on lua5.5
Diffstat (limited to 'xmake/plugins/project/vstudio/impl')
-rw-r--r--xmake/plugins/project/vstudio/impl/vs200x_vcproj.lua2
-rw-r--r--xmake/plugins/project/vstudio/impl/vs201x.lua2
-rw-r--r--xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua4
-rw-r--r--xmake/plugins/project/vstudio/impl/vs201x_vcxproj_filters.lua2
-rw-r--r--xmake/plugins/project/vstudio/impl/vsutils.lua1
5 files changed, 11 insertions, 0 deletions
diff --git a/xmake/plugins/project/vstudio/impl/vs200x_vcproj.lua b/xmake/plugins/project/vstudio/impl/vs200x_vcproj.lua
index 78bee84f8..b1bade847 100644
--- a/xmake/plugins/project/vstudio/impl/vs200x_vcproj.lua
+++ b/xmake/plugins/project/vstudio/impl/vs200x_vcproj.lua
@@ -33,6 +33,7 @@ function _make_compflags(sourcefile, target, vcprojdir)
-- replace -Idir or /Idir, -Fdsymbol.pdb or /Fdsymbol.pdb
local flags = {}
for _, flag in ipairs(compflags) do
+ local flag = flag
-- replace -Idir or /Idir
flag = flag:gsub("[%-|/]I(.*)", function (dir)
@@ -75,6 +76,7 @@ function _make_linkflags(target, vcprojdir)
-- replace -libpath:dir or /libpath:dir, -pdb:symbol.pdb or /pdb:symbol.pdb
local flags = {}
for _, flag in ipairs(linkflags) do
+ local flag = flag
-- replace -libpath:dir or /libpath:dir
flag = flag:gsub("[%-|/]libpath:(.*)", function (dir)
diff --git a/xmake/plugins/project/vstudio/impl/vs201x.lua b/xmake/plugins/project/vstudio/impl/vs201x.lua
index 0a1b0955e..4da7a5d2e 100644
--- a/xmake/plugins/project/vstudio/impl/vs201x.lua
+++ b/xmake/plugins/project/vstudio/impl/vs201x.lua
@@ -93,6 +93,7 @@ function _get_command_string(cmd, vcxprojdir)
if cmd.program then
local argv = {}
for _, v in ipairs(table.join(cmd.program, cmd.argv)) do
+ local v = v
if path.instance_of(v) then
v = v:clone():set(_translate_path(v:rawstr(), vcxprojdir)):str()
elseif path.is_absolute(v) then
@@ -276,6 +277,7 @@ function _make_targetinfo(mode, arch, target, vcxprojdir)
end
end
for k, v in table.orderpairs(setrunenvs) do
+ local v = v
if #v == 1 then
v = v[1]
if path.is_absolute(v) and v:startswith(project.directory()) then
diff --git a/xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua b/xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua
index fd62b0859..78407021e 100644
--- a/xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua
+++ b/xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua
@@ -137,6 +137,7 @@ end
function _make_compcmd(compargv, sourcefile, objectfile, vcxprojdir)
local argv = {}
for i, v in ipairs(compargv) do
+ local v = v
if i == 1 then
v = path.filename(v) -- C:\xxx\ml.exe -> ml.exe
end
@@ -163,6 +164,7 @@ function _make_compflags(sourcefile, targetinfo, vcxprojdir)
-- translate path for -Idir or /Idir
local flags = {}
for _, flag in ipairs(targetinfo.compflags[sourcefile]) do
+ local flag = flag
for _, pattern in ipairs({"[%-/](I)(.*)", "[%-/](external:I)(.*)"}) do
-- -Idir or /Idir
@@ -186,6 +188,7 @@ function _make_linkflags(targetinfo, vcxprojdir)
-- replace -libpath:dir or /libpath:dir
local flags = {}
for _, flag in ipairs(targetinfo.linkflags) do
+ local flag = flag
-- replace -libpath:dir or /libpath:dir
flag = flag:gsub(string.ipattern("[%-/]libpath:(.*)"), function (dir)
@@ -932,6 +935,7 @@ function _make_common_item(vcxprojfile, vsinfo, target, targetinfo)
local cstandard
local cxxstandard
for _, lang in pairs(targetinfo.languages) do
+ local lang = lang
lang = lang:replace("c++", "cxx", {plain = true})
if cxxlangflags[lang] then
cxxstandard = cxxlangflags[lang]
diff --git a/xmake/plugins/project/vstudio/impl/vs201x_vcxproj_filters.lua b/xmake/plugins/project/vstudio/impl/vs201x_vcxproj_filters.lua
index e3d29e946..2ac7aef5d 100644
--- a/xmake/plugins/project/vstudio/impl/vs201x_vcxproj_filters.lua
+++ b/xmake/plugins/project/vstudio/impl/vs201x_vcxproj_filters.lua
@@ -77,6 +77,7 @@ function _make_filter(filepath, target, vcxprojdir)
local rootdir = extraconf.rootdir
assert(rootdir, "please set root directory, e.g. add_filegroups(%s, {rootdir = 'xxx'})", filegroup)
for _, rootdir in ipairs(table.wrap(rootdir)) do
+ local rootdir = rootdir
if not path.is_absolute(rootdir) then
rootdir = path.absolute(rootdir, scriptdir)
end
@@ -84,6 +85,7 @@ function _make_filter(filepath, target, vcxprojdir)
local files = extraconf.files or "**"
local mode = extraconf.mode
for _, filepattern in ipairs(files) do
+ local filepattern = filepattern
filepattern = path.pattern(path.absolute(path.join(rootdir, filepattern)))
if filepath:match(filepattern) then
if mode == "plain" then
diff --git a/xmake/plugins/project/vstudio/impl/vsutils.lua b/xmake/plugins/project/vstudio/impl/vsutils.lua
index 98fbfd39f..984dd609e 100644
--- a/xmake/plugins/project/vstudio/impl/vsutils.lua
+++ b/xmake/plugins/project/vstudio/impl/vsutils.lua
@@ -79,6 +79,7 @@ function reset_config_and_caches(mode, arch)
end
-- merge the project options after default options
for name, value in pairs(project.get("config")) do
+ local value = value
value = table.unwrap(value)
assert(type(value) == "string" or type(value) == "boolean" or type(value) == "number", "set_config(%s): unsupported value type(%s)", name, type(value))
if not config.readonly(name) then