diff options
| author | ruki <[email protected]> | 2020-12-29 23:20:33 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2020-12-29 23:20:33 +0800 |
| commit | f3cbb6767c3f28317bd6c2f2160b41d34057d25b (patch) | |
| tree | f013200264ce90576cb03f63444bed82565050c8 | |
| parent | a5cc662eb1b570e02512706019b7bb1082a2155f (diff) | |
rename some vars for vsxmake
| -rw-r--r-- | xmake/plugins/project/vsxmake/getinfo.lua | 24 | ||||
| -rw-r--r-- | xmake/plugins/project/vsxmake/vsxmake.lua | 37 |
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") |
