diff options
| author | ruki <[email protected]> | 2017-03-23 09:49:07 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2017-03-23 09:49:07 +0800 |
| commit | dcf38006d36ec96bbc20be32f97ceb7b5f176821 (patch) | |
| tree | 423b0feafb6a7ce1f733fcd44881b049855caa48 /xmake/plugins/project/vstudio/impl/vs201x.lua | |
| parent | 1bdf43c3a7fcd6aa578e2b293664f0db80ebd058 (diff) | |
improve vs201x project plugin and add set_basename api
Diffstat (limited to 'xmake/plugins/project/vstudio/impl/vs201x.lua')
| -rw-r--r-- | xmake/plugins/project/vstudio/impl/vs201x.lua | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/xmake/plugins/project/vstudio/impl/vs201x.lua b/xmake/plugins/project/vstudio/impl/vs201x.lua index ccf34db67..c7eea9c66 100644 --- a/xmake/plugins/project/vstudio/impl/vs201x.lua +++ b/xmake/plugins/project/vstudio/impl/vs201x.lua @@ -27,10 +27,42 @@ import("core.base.option") import("core.project.config") import("core.project.project") import("core.platform.platform") +import("core.tool.compiler") +import("core.tool.linker") import("vs201x_solution") import("vs201x_vcxproj") import("vs201x_vcxproj_filters") +-- make target info +function _make_targetinfo(mode, arch, target) + + -- init target info + local targetinfo = { mode = mode, arch = ifelse(arch == "x86", "Win32", "x64") } + + -- save symbols + targetinfo.symbols = target:get("symbols") + + -- save target kind + targetinfo.targetkind = target:targetkind() + + -- save sourcebatches + targetinfo.sourcebatches = target:sourcebatches() + + -- save compiler flags + targetinfo.compflags = {} + for _, sourcefile in ipairs(target:sourcefiles()) do + local _, compflags = compiler.compflags(sourcefile, target) + targetinfo.compflags[sourcefile] = compflags + end + + -- save linker flags + local _, linkflags = linker.linkflags(target) + targetinfo.linkflags = linkflags + + -- ok + return targetinfo +end + -- make vstudio project function make(outputdir, vsinfo) @@ -91,7 +123,7 @@ function make(outputdir, vsinfo) _target.kind = target:get("kind") _target.scriptdir = target:scriptdir() _target.info = _target.info or {} - table.insert(_target.info, { mode = mode, arch = ifelse(arch == "x86", "Win32", "x64"), target = target }) + table.insert(_target.info, _make_targetinfo(mode, arch, target)) -- save all sourcefiles and headerfiles _target.sourcefiles = table.unique(table.join(_target.sourcefiles or {}, (target:sourcefiles()))) |
