summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2023-08-21 23:47:19 +0800
committerruki <[email protected]>2023-08-21 23:47:19 +0800
commitd4371ecb858b844fc5b9b16e7d49f44f3b11fd18 (patch)
tree330bf18666e4b4fc71150da1158eb3bf395c0890
parent78d3a3201fe8bd808509148ff1581e76f8acaf39 (diff)
add extrafiles for vs generator
-rw-r--r--xmake/plugins/project/vstudio/impl/vs201x.lua4
-rw-r--r--xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua2
-rw-r--r--xmake/plugins/project/vstudio/impl/vs201x_vcxproj_filters.lua2
3 files changed, 5 insertions, 3 deletions
diff --git a/xmake/plugins/project/vstudio/impl/vs201x.lua b/xmake/plugins/project/vstudio/impl/vs201x.lua
index 511494b19..6acc09c69 100644
--- a/xmake/plugins/project/vstudio/impl/vs201x.lua
+++ b/xmake/plugins/project/vstudio/impl/vs201x.lua
@@ -530,14 +530,16 @@ function make(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]
diff --git a/xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua b/xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua
index 1be380130..2d1d35f63 100644
--- a/xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua
+++ b/xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua
@@ -1346,7 +1346,7 @@ function _make_source_files(vcxprojfile, vsinfo, target)
-- add header files
local pcheader = target.pcxxheader or target.pcheader
vcxprojfile:enter("<ItemGroup>")
- for _, includefile in ipairs(target.headerfiles) do
+ for _, includefile in ipairs(table.join(target.headerfiles or {}, target.extrafiles)) do
-- we need to ignore pcheader file to fix https://github.com/xmake-io/xmake/issues/1171
if not pcheader or includefile ~= pcheader then
_make_header_file(vcxprojfile, includefile, target.project_dir)
diff --git a/xmake/plugins/project/vstudio/impl/vs201x_vcxproj_filters.lua b/xmake/plugins/project/vstudio/impl/vs201x_vcxproj_filters.lua
index 572ec0622..a6e11b6a4 100644
--- a/xmake/plugins/project/vstudio/impl/vs201x_vcxproj_filters.lua
+++ b/xmake/plugins/project/vstudio/impl/vs201x_vcxproj_filters.lua
@@ -131,7 +131,7 @@ function _make_filters(filtersfile, vsinfo, target, vcxprojdir)
-- add filters
filtersfile:enter("<ItemGroup>")
local exists = {}
- for _, filepath in pairs(table.join(target.sourcefiles, target.headerfiles)) do
+ for _, filepath in pairs(table.join(target.sourcefiles, target.headerfiles or {}, target.extrafiles)) do
local filter = _make_filter(filepath, target, vcxprojdir)
while filter and filter ~= '.' do
if not exists[filter] then