summaryrefslogtreecommitdiff
path: root/xmake/plugins/project
diff options
context:
space:
mode:
authorruki <[email protected]>2020-02-23 11:19:33 +0800
committerruki <[email protected]>2020-02-23 11:54:26 +0800
commit9d34862fe5c82c7ac7e8d6dd8a1d951b3f1ed46c (patch)
tree3f34a71e6b7a72ca8750f05acfa5a7a6f6739fdc /xmake/plugins/project
parentabffcefe13ed5867a9c340214baa431795e4857f (diff)
regenerate build.ninja
Diffstat (limited to 'xmake/plugins/project')
-rw-r--r--xmake/plugins/project/ninja/build_ninja.lua25
-rw-r--r--xmake/plugins/project/vsxmake/getinfo.lua4
2 files changed, 27 insertions, 2 deletions
diff --git a/xmake/plugins/project/ninja/build_ninja.lua b/xmake/plugins/project/ninja/build_ninja.lua
index 7d8700473..f46730e22 100644
--- a/xmake/plugins/project/ninja/build_ninja.lua
+++ b/xmake/plugins/project/ninja/build_ninja.lua
@@ -37,6 +37,14 @@ function _add_header(ninjafile)
ninjafile:print("")
end
+-- add rules for generator
+function _add_rules_for_generator(ninjafile)
+ ninjafile:print("rule gen")
+ ninjafile:print(" command = xmake project -k ninja")
+ ninjafile:print(" description = regenerating ninja files")
+ ninjafile:print("")
+end
+
-- add rules for complier (gcc)
function _add_rules_for_compiler_gcc(ninjafile, sourcekind, program)
local ccache = find_tool("ccache")
@@ -159,6 +167,9 @@ end
-- add rules
function _add_rules(ninjafile)
+ -- add rules for generator
+ _add_rules_for_generator(ninjafile)
+
-- add rules for complier
_add_rules_for_compiler(ninjafile)
@@ -219,12 +230,26 @@ function _add_build_for_target(ninjafile, target)
end
end
+-- add build rule for generator
+function _add_build_for_generator(ninjafile)
+ ninjafile:print("# build build.ninja")
+ ninjafile:print("build build.ninja: gen $")
+ local allfiles = project.allfiles()
+ for idx, projectfile in ipairs(allfiles) do
+ ninjafile:print(" %s %s", os.args(path.relative(path.absolute(projectfile))), idx < #allfiles and "$" or "")
+ end
+ ninjafile:print("")
+end
+
-- add build rule for targets
function _add_build_for_targets(ninjafile)
-- begin
ninjafile:print("# build targets\n")
+ -- add build rule for generator
+ _add_build_for_generator(ninjafile)
+
-- TODO
-- disable precompiled header first
for _, target in pairs(project.targets()) do
diff --git a/xmake/plugins/project/vsxmake/getinfo.lua b/xmake/plugins/project/vsxmake/getinfo.lua
index d7e923d62..583e10932 100644
--- a/xmake/plugins/project/vsxmake/getinfo.lua
+++ b/xmake/plugins/project/vsxmake/getinfo.lua
@@ -270,8 +270,8 @@ function main(outputdir, vsinfo)
vsinfo.solution_dir = path.absolute(path.join(outputdir, "vsxmake" .. vsinfo.vstudio_version))
vsinfo.programdir = _make_dirs(xmake.programdir())
vsinfo.projectdir = project.directory()
- vsinfo.sln_projectfile = path.relative(project.file(), vsinfo.solution_dir)
- local projectfile = path.filename(project.file())
+ vsinfo.sln_projectfile = path.relative(project.rootfile(), vsinfo.solution_dir)
+ local projectfile = path.filename(project.rootfile())
vsinfo.slnfile = path.filename(project.directory())
-- write only if not default
if projectfile ~= "xmake.lua" then