summaryrefslogtreecommitdiff
path: root/xmake/plugins/project/vstudio/impl/vs201x.lua
diff options
context:
space:
mode:
Diffstat (limited to 'xmake/plugins/project/vstudio/impl/vs201x.lua')
-rw-r--r--xmake/plugins/project/vstudio/impl/vs201x.lua13
1 files changed, 12 insertions, 1 deletions
diff --git a/xmake/plugins/project/vstudio/impl/vs201x.lua b/xmake/plugins/project/vstudio/impl/vs201x.lua
index 8ef5681d2..65c4d1d2a 100644
--- a/xmake/plugins/project/vstudio/impl/vs201x.lua
+++ b/xmake/plugins/project/vstudio/impl/vs201x.lua
@@ -75,11 +75,15 @@ function _make_targetinfo(mode, arch, target)
targetinfo.objectdir = target:objectdir()
-- save compiler flags
+ local firstcompflags=nil
targetinfo.compflags = {}
- for _, sourcebatch in pairs(target:sourcebatches()) do
+ for sourcekind, sourcebatch in pairs(target:sourcebatches()) do
if not sourcebatch.rulename then
for _, sourcefile in ipairs(sourcebatch.sourcefiles) do
local compflags = compiler.compflags(sourcefile, {target = target})
+ if not firstcompflags and (sourcekind == "cc" or sourcekind == "cxx") then
+ firstcompflags = compflags
+ end
targetinfo.compflags[sourcefile] = compflags
end
end
@@ -89,6 +93,13 @@ function _make_targetinfo(mode, arch, target)
local linkflags = linker.linkflags(target:get("kind"), target:sourcekinds(), {target = target})
targetinfo.linkflags = linkflags
+ -- set unicode
+ for _, flag in pairs(firstcompflags) do
+ if flag:find("[%-|/]DUNICODE") then
+ targetinfo.unicode = true
+ end
+ end
+
-- ok
return targetinfo
end