summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2023-08-21 23:45:39 +0800
committerruki <[email protected]>2023-08-21 23:45:39 +0800
commita1d94192c532e02dcd581457d82fa9680cbcd793 (patch)
tree784a155513a0e19ca265d62c51ad199cf40ca903
parente73df8b4713c4b8c928c77d0baa4185be1db6517 (diff)
add extrafiles #2384
-rw-r--r--xmake/plugins/project/vsxmake/getinfo.lua7
-rw-r--r--xmake/plugins/project/vsxmake/vsxmake.lua2
2 files changed, 6 insertions, 3 deletions
diff --git a/xmake/plugins/project/vsxmake/getinfo.lua b/xmake/plugins/project/vsxmake/getinfo.lua
index 322292f72..2c3829284 100644
--- a/xmake/plugins/project/vsxmake/getinfo.lua
+++ b/xmake/plugins/project/vsxmake/getinfo.lua
@@ -496,14 +496,16 @@ function main(outputdir, vsinfo)
-- save all sourcefiles and headerfiles
_target.sourcefiles = table.unique(table.join(_target.sourcefiles or {}, (target:sourcefiles())))
_target.headerfiles = table.unique(table.join(_target.headerfiles or {}, (target:headerfiles())))
+ _target.extrafiles = table.unique(table.join(_target.extrafiles or {}, (target:get("extrafiles"))))
-- sort them to stabilize generation
table.sort(_target.sourcefiles)
table.sort(_target.headerfiles)
+ table.sort(_target.extrafiles)
-- save file groups
_target.filegroups = table.unique(table.join(_target.filegroups or {}, target:get("filegroups")))
-
+
for filegroup, groupconf in pairs(target:extraconf("filegroups")) do
_target.filegroups_extraconf = _target.filegroups_extraconf or {}
local mergedconf = _target.filegroups_extraconf[filegroup]
@@ -534,7 +536,8 @@ function main(outputdir, vsinfo)
local root = target.absscriptdir or projectdir
target.sourcefiles = table.imap(target.sourcefiles, function(_, v) return path.relative(v, projectdir) end)
target.headerfiles = table.imap(target.headerfiles, function(_, v) return path.relative(v, projectdir) end)
- for _, f in ipairs(table.join(target.sourcefiles, target.headerfiles)) do
+ target.extrafiles = table.imap(target.extrafiles, function(_, v) return path.relative(v, projectdir) end)
+ for _, f in ipairs(table.join(target.sourcefiles, target.headerfiles or {}, target.extrafiles)) do
local dir = _make_filter(f, target, root)
local escaped_f = vsutils.escape(f)
target._paths[f] =
diff --git a/xmake/plugins/project/vsxmake/vsxmake.lua b/xmake/plugins/project/vsxmake/vsxmake.lua
index 90fc1cf8e..50695ebc2 100644
--- a/xmake/plugins/project/vsxmake/vsxmake.lua
+++ b/xmake/plugins/project/vsxmake/vsxmake.lua
@@ -140,7 +140,7 @@ function _buildparams(info, target, default)
local files = info._targets[target].sourcefiles
table.insert(r, _filter_files(files, {".ui"}))
elseif args.incc then
- local files = info._targets[target].headerfiles
+ local files = table.join(info._targets[target].headerfiles or {}, info._targets[target].extrafiles)
table.insert(r, _filter_files(files, nil, {".natvis"}))
elseif args.incnatvis then
local files = info._targets[target].headerfiles