From fba82080b4aac9cf58d67b29b51f6d70bb5bcd03 Mon Sep 17 00:00:00 2001 From: yamashi Date: Sun, 20 Mar 2022 15:47:25 +0100 Subject: Add resource files include and pre-processor defines for the VS generator --- .../project/vstudio/impl/vs201x_vcxproj.lua | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua b/xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua index 0bd27177a..473500064 100644 --- a/xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua +++ b/xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua @@ -493,6 +493,39 @@ function _make_source_options_cl(vcxprojfile, flags, condition) end end +-- make source options for cl +function _make_resource_options_cl(vcxprojfile, flags, condition) + + -- exists condition? + condition = condition or "" + + -- get flags string + local flagstr = os.args(flags) + + -- make PreprocessorDefinitions + local defstr = "" + for _, flag in ipairs(flags) do + flag:gsub("^[%-/]D(.*)", + function (def) + defstr = defstr .. vsutils.escape(def) .. ";" + end + ) + end + defstr = defstr .. "%%(PreprocessorDefinitions)" + vcxprojfile:print("%s", condition, defstr) + + -- make AdditionalIncludeDirectories + if flagstr:find("[%-/]I") then + local dirs = {} + for _, flag in ipairs(flags) do + flag:gsub("^[%-/]I(.*)", function (dir) table.insert(dirs, vsutils.escape(dir)) end) + end + if #dirs > 0 then + vcxprojfile:print("%s", condition, table.concat(dirs, ";")) + end + end +end + -- make source options for cuda function _make_source_options_cuda(vcxprojfile, flags, opt) @@ -877,6 +910,12 @@ function _make_common_item(vcxprojfile, vsinfo, target, targetinfo) vcxprojfile:leave("") + vcxprojfile:enter("") + -- make resource options + _make_resource_options_cl(vcxprojfile, targetinfo.commonflags.cl) + + vcxprojfile:leave("") + local cuda = _check_cuda(target) if cuda then -- for CUDA linker? -- cgit v1.3.1 From 8e23392d97f44728c088072e734fbaf5702f6c55 Mon Sep 17 00:00:00 2001 From: yamashi Date: Sun, 20 Mar 2022 16:31:52 +0100 Subject: Remove unused param --- xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua b/xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua index 473500064..b00b36750 100644 --- a/xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua +++ b/xmake/plugins/project/vstudio/impl/vs201x_vcxproj.lua @@ -494,10 +494,7 @@ function _make_source_options_cl(vcxprojfile, flags, condition) end -- make source options for cl -function _make_resource_options_cl(vcxprojfile, flags, condition) - - -- exists condition? - condition = condition or "" +function _make_resource_options_cl(vcxprojfile, flags) -- get flags string local flagstr = os.args(flags) @@ -512,7 +509,7 @@ function _make_resource_options_cl(vcxprojfile, flags, condition) ) end defstr = defstr .. "%%(PreprocessorDefinitions)" - vcxprojfile:print("%s", condition, defstr) + vcxprojfile:print("%s", defstr) -- make AdditionalIncludeDirectories if flagstr:find("[%-/]I") then @@ -521,7 +518,7 @@ function _make_resource_options_cl(vcxprojfile, flags, condition) flag:gsub("^[%-/]I(.*)", function (dir) table.insert(dirs, vsutils.escape(dir)) end) end if #dirs > 0 then - vcxprojfile:print("%s", condition, table.concat(dirs, ";")) + vcxprojfile:print("%s", table.concat(dirs, ";")) end end end -- cgit v1.3.1