summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2020-12-29 23:20:33 +0800
committerruki <[email protected]>2020-12-29 23:20:33 +0800
commitf3cbb6767c3f28317bd6c2f2160b41d34057d25b (patch)
treef013200264ce90576cb03f63444bed82565050c8
parenta5cc662eb1b570e02512706019b7bb1082a2155f (diff)
rename some vars for vsxmake
-rw-r--r--xmake/plugins/project/vsxmake/getinfo.lua24
-rw-r--r--xmake/plugins/project/vsxmake/vsxmake.lua37
2 files changed, 38 insertions, 23 deletions
diff --git a/xmake/plugins/project/vsxmake/getinfo.lua b/xmake/plugins/project/vsxmake/getinfo.lua
index 103ee5a56..b7255bb1c 100644
--- a/xmake/plugins/project/vsxmake/getinfo.lua
+++ b/xmake/plugins/project/vsxmake/getinfo.lua
@@ -324,11 +324,11 @@ function main(outputdir, vsinfo)
-- load targets
local targets = {}
- vsinfo._sub2 = {}
+ vsinfo._arch_modes = {}
for _, mode in ipairs(vsinfo.modes) do
- vsinfo._sub2[mode] = {}
+ vsinfo._arch_modes[mode] = {}
for _, arch in ipairs(vsinfo.archs) do
- vsinfo._sub2[mode][arch] = { mode = mode, arch = arch }
+ vsinfo._arch_modes[mode][arch] = { mode = mode, arch = arch }
-- trace
print("checking for %s.%s ...", mode, arch)
@@ -385,10 +385,10 @@ function main(outputdir, vsinfo)
_target.projectdir = path.relative(project.directory(), _target.vcxprojdir)
local targetdir = target:get("targetdir")
if targetdir then _target.targetdir = path.relative(targetdir, _target.vcxprojdir) end
- _target._sub = _target._sub or {}
- _target._sub[mode] = _target._sub[mode] or {}
+ _target._targets = _target._targets or {}
+ _target._targets[mode] = _target._targets[mode] or {}
local targetinfo = _make_targetinfo(mode, arch, target)
- _target._sub[mode][arch] = targetinfo
+ _target._targets[mode][arch] = targetinfo
_target.sdkver = targetinfo.sdkver
-- save all sourcefiles and headerfiles
@@ -409,14 +409,14 @@ function main(outputdir, vsinfo)
end
os.cd(oldir)
for _, target in pairs(targets) do
- target._sub2 = {}
+ target._paths = {}
local dirs = {}
local root = project.directory()
target.sourcefiles = table.imap(target.sourcefiles, function(_, v) return path.relative(v, root) end)
target.headerfiles = table.imap(target.headerfiles, function(_, v) return path.relative(v, root) end)
for _, f in ipairs(table.join(target.sourcefiles, target.headerfiles)) do
local dir = path.directory(f)
- target._sub2[f] =
+ target._paths[f] =
{
path = _escape(f),
dir = _escape(dir)
@@ -432,14 +432,14 @@ function main(outputdir, vsinfo)
dir = path.directory(dir)
end
end
- target._sub3 = dirs
+ target._dirs = dirs
target.dirs = table.keys(dirs)
- target._sub4 = {}
+ target._deps = {}
for _, v in ipairs(target.deps) do
- target._sub4[v] = targets[v]
+ target._deps[v] = targets[v]
end
end
vsinfo.targets = table.keys(targets)
- vsinfo._sub = targets
+ vsinfo._targets = targets
return vsinfo
end
diff --git a/xmake/plugins/project/vsxmake/vsxmake.lua b/xmake/plugins/project/vsxmake/vsxmake.lua
index 95058ebe4..557b0489d 100644
--- a/xmake/plugins/project/vsxmake/vsxmake.lua
+++ b/xmake/plugins/project/vsxmake/vsxmake.lua
@@ -57,11 +57,26 @@ function _buildparams(info, target, default)
opt = table.join(target, opt)
end
for _, k in ipairs(opt) do
- local v = (i._sub or {})[k] or (i._sub2 or {})[k] or (i._sub3 or {})[k] or (i._sub4 or {})[k] or i[k]
+ local v = (i._targets or {})[k]
+ if v == nil and i._arch_modes then
+ v = i._arch_modes[k]
+ end
+ if v == nil and i._paths then
+ v = i._paths[k]
+ end
+ if v == nil and i._dirs then
+ v = i._dirs[k]
+ end
+ if v == nil and i._deps then
+ v = i._deps[k]
+ end
if v == nil and i._groups then
v = i._groups[k]
end
if v == nil then
+ v = i[k]
+ end
+ if v == nil then
raise("key '" .. k .. "' not found")
end
i = v
@@ -89,31 +104,31 @@ function _buildparams(info, target, default)
table.insert(r, info.groups)
end
if args.dir then
- table.insert(r, info._sub[target].dirs)
+ table.insert(r, info._targets[target].dirs)
end
if args.dep then
- table.insert(r, info._sub[target].deps)
+ table.insert(r, info._targets[target].deps)
end
if args.filec then
- local files = info._sub[target].sourcefiles
+ local files = info._targets[target].sourcefiles
table.insert(r, _filter_files(files, {".c"}))
elseif args.filecxx then
- local files = info._sub[target].sourcefiles
+ local files = info._targets[target].sourcefiles
table.insert(r, _filter_files(files, {".cpp", ".cc", ".cxx"}))
elseif args.filecu then
- local files = info._sub[target].sourcefiles
+ local files = info._targets[target].sourcefiles
table.insert(r, _filter_files(files, {".cu"}))
elseif args.fileobj then
- local files = info._sub[target].sourcefiles
+ local files = info._targets[target].sourcefiles
table.insert(r, _filter_files(files, {".obj", ".o"}))
elseif args.filerc then
- local files = info._sub[target].sourcefiles
+ local files = info._targets[target].sourcefiles
table.insert(r, _filter_files(files, {".rc"}))
elseif args.incc then
- local files = info._sub[target].headerfiles
+ local files = info._targets[target].headerfiles
table.insert(r, _filter_files(files, nil, {".natvis"}))
elseif args.incnatvis then
- local files = info._sub[target].headerfiles
+ local files = info._targets[target].headerfiles
table.insert(r, _filter_files(files, {".natvis"}))
end
return r
@@ -179,7 +194,7 @@ function make(version)
for _, target in ipairs(info.targets) do
local paramsprovidertarget = _buildparams(info, target, "<!-- nil -->")
- local proj_dir = info._sub[target].vcxprojdir
+ local proj_dir = info._targets[target].vcxprojdir
-- write project file
local proj = path.join(proj_dir, target .. ".vcxproj")