diff options
| author | ruki <[email protected]> | 2023-08-21 23:47:19 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2023-08-21 23:47:19 +0800 |
| commit | d4371ecb858b844fc5b9b16e7d49f44f3b11fd18 (patch) | |
| tree | 330bf18666e4b4fc71150da1158eb3bf395c0890 | |
| parent | 78d3a3201fe8bd808509148ff1581e76f8acaf39 (diff) | |
add extrafiles for vs generator
| -rw-r--r-- | xmake/plugins/project/vstudio/impl/vs201x.lua | 4 | ||||
| -rw-r--r-- | xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua | 2 | ||||
| -rw-r--r-- | xmake/plugins/project/vstudio/impl/vs201x_vcxproj_filters.lua | 2 |
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 |
