summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2025-04-08 00:41:42 +0800
committerruki <[email protected]>2025-04-08 15:31:58 +0800
commitf72d519dfe7b3a3744660ed15c620dbd5344c16c (patch)
tree69cf29e05d1554b93d94c653938e15fda684bffa
parent6fc28a78bf95490b5c230a42c0f4a40ab5aad2e4 (diff)
prepare targets in cmakelists generator
-rw-r--r--xmake/actions/build/build.lua8
-rw-r--r--xmake/actions/build/build_files.lua8
-rw-r--r--xmake/modules/private/action/build/build_binary.lua4
-rw-r--r--xmake/modules/private/action/build/build_object.lua4
-rw-r--r--xmake/modules/private/action/build/link_objects.lua4
-rw-r--r--xmake/modules/private/action/build/prepare_files.lua4
-rw-r--r--xmake/plugins/project/cmake/cmakelists.lua19
7 files changed, 24 insertions, 27 deletions
diff --git a/xmake/actions/build/build.lua b/xmake/actions/build/build.lua
index 270b24ea7..d4f5658fb 100644
--- a/xmake/actions/build/build.lua
+++ b/xmake/actions/build/build.lua
@@ -23,7 +23,7 @@ import("core.base.option")
import("core.project.config")
import("core.project.project")
import("private.service.distcc_build.client", {alias = "distcc_build_client"})
-import("private.action.build.target", {alias = "target_utils"})
+import("private.action.build.target", {alias = "target_buildutils"})
import("deprecated.build", {alias = "deprecated_build"})
-- run prepare jobs
@@ -31,7 +31,7 @@ function _prepare(targets_root, opt)
opt = opt or {}
opt.job_kind = "prepare"
opt.progress_factor = 0.05
- target_utils.run_targetjobs(targets_root, opt)
+ target_buildutils.run_targetjobs(targets_root, opt)
end
-- run build jobs
@@ -42,13 +42,13 @@ function _build(targets_root, opt)
if distcc_build_client.is_connected() then
opt.distcc = distcc_build_client.singleton()
end
- target_utils.run_targetjobs(targets_root, opt)
+ target_buildutils.run_targetjobs(targets_root, opt)
end
function main(targetnames, opt)
-- get root targets
- local targets_root = target_utils.get_root_targets(targetnames, opt)
+ local targets_root = target_buildutils.get_root_targets(targetnames, opt)
-- prepare to build
_prepare(targets_root, opt)
diff --git a/xmake/actions/build/build_files.lua b/xmake/actions/build/build_files.lua
index 12d9b00ee..1bbad79f6 100644
--- a/xmake/actions/build/build_files.lua
+++ b/xmake/actions/build/build_files.lua
@@ -24,7 +24,7 @@ import("core.base.hashset")
import("core.project.config")
import("core.project.project")
import("private.service.distcc_build.client", {alias = "distcc_build_client"})
-import("private.action.build.target", {alias = "target_utils"})
+import("private.action.build.target", {alias = "target_buildutils"})
import("deprecated.build_files", {alias = "deprecated_build_files"})
-- convert all sourcefiles to lua pattern
@@ -77,7 +77,7 @@ function _prepare_files(targets_root, opt)
opt.job_kind = "prepare"
opt.progress_factor = 0.05
opt.filepatterns = _get_file_patterns(opt.sourcefiles)
- target_utils.run_filejobs(targets_root, opt)
+ target_buildutils.run_filejobs(targets_root, opt)
end
-- run build files jobs
@@ -89,7 +89,7 @@ function _build_files(targets_root, opt)
if distcc_build_client.is_connected() then
opt.distcc = distcc_build_client.singleton()
end
- if not target_utils.run_filejobs(targets_root, opt) then
+ if not target_buildutils.run_filejobs(targets_root, opt) then
wprint("%s not found!", opt.sourcefiles)
end
end
@@ -97,7 +97,7 @@ end
function main(targetnames, opt)
-- get root targets
- local targets_root = target_utils.get_root_targets(targetnames, opt)
+ local targets_root = target_buildutils.get_root_targets(targetnames, opt)
-- prepare to build files
_prepare_files(targets_root, opt)
diff --git a/xmake/modules/private/action/build/build_binary.lua b/xmake/modules/private/action/build/build_binary.lua
index c30addfef..72263e6c8 100644
--- a/xmake/modules/private/action/build/build_binary.lua
+++ b/xmake/modules/private/action/build/build_binary.lua
@@ -20,7 +20,7 @@
-- imports
import("build_object")
-import("private.action.build.target", {alias = "target_utils"})
+import("private.action.build.target", {alias = "target_buildutils"})
function main(jobgraph, target)
local objects_group = target:fullname() .. "/objects"
@@ -31,7 +31,7 @@ function main(jobgraph, target)
if jobgraph:size() > jobsize then
local link_group = target:fullname() .. "/link"
jobgraph:group(link_group, function ()
- target_utils.add_linkjobs(jobgraph, target)
+ target_buildutils.add_linkjobs(jobgraph, target)
end)
jobgraph:add_orders(objects_group, link_group)
end
diff --git a/xmake/modules/private/action/build/build_object.lua b/xmake/modules/private/action/build/build_object.lua
index 2a44bcea6..2a6baa59a 100644
--- a/xmake/modules/private/action/build/build_object.lua
+++ b/xmake/modules/private/action/build/build_object.lua
@@ -19,8 +19,8 @@
--
-- imports
-import("private.action.build.target", {alias = "target_utils"})
+import("private.action.build.target", {alias = "target_buildutils"})
function main(jobgraph, target)
- target_utils.add_filejobs(jobgraph, target, {job_kind = "build"})
+ target_buildutils.add_filejobs(jobgraph, target, {job_kind = "build"})
end
diff --git a/xmake/modules/private/action/build/link_objects.lua b/xmake/modules/private/action/build/link_objects.lua
index 099674d3e..25214d27e 100644
--- a/xmake/modules/private/action/build/link_objects.lua
+++ b/xmake/modules/private/action/build/link_objects.lua
@@ -25,7 +25,7 @@ import("core.tool.compiler")
import("core.project.depend")
import("utils.progress")
import("build_object")
-import("private.action.build.target", {alias = "target_utils"})
+import("private.action.build.target", {alias = "target_buildutils"})
-- do link target
function _do_link_target(target, opt)
@@ -33,7 +33,7 @@ function _do_link_target(target, opt)
local linkflags = linkinst:linkflags({target = target})
-- need build this target?
- local depfiles = target_utils.get_linkdepfiles(target)
+ local depfiles = target_buildutils.get_linkdepfiles(target)
local dryrun = option.get("dry-run")
local depvalues = {linkinst:program(), linkflags}
depend.on_changed(function ()
diff --git a/xmake/modules/private/action/build/prepare_files.lua b/xmake/modules/private/action/build/prepare_files.lua
index a0ecc242a..d8ca351ca 100644
--- a/xmake/modules/private/action/build/prepare_files.lua
+++ b/xmake/modules/private/action/build/prepare_files.lua
@@ -20,8 +20,8 @@
-- imports
import("core.base.option")
-import("private.action.build.target", {alias = "target_utils"})
+import("private.action.build.target", {alias = "target_buildutils"})
function main(jobgraph, target)
- target_utils.add_filejobs(jobgraph, target, {job_kind = "prepare"})
+ target_buildutils.add_filejobs(jobgraph, target, {job_kind = "prepare"})
end
diff --git a/xmake/plugins/project/cmake/cmakelists.lua b/xmake/plugins/project/cmake/cmakelists.lua
index 22edabcd2..464101268 100644
--- a/xmake/plugins/project/cmake/cmakelists.lua
+++ b/xmake/plugins/project/cmake/cmakelists.lua
@@ -31,6 +31,7 @@ import("lib.detect.find_tool")
import("private.utils.batchcmds")
import("private.utils.rule_groups")
import("private.utils.target", {alias = "target_utils"})
+import("private.action.build.target", {alias = "target_buildutils"})
import("plugins.project.utils.target_cmds", {rootdir = os.programdir()})
import("rules.c++.modules.modules_support.compiler_support", {alias = "module_compiler_support", rootdir = os.programdir()})
@@ -298,6 +299,12 @@ function _get_flags_from_target(target, flagkind)
return results
end
+-- prepare targets
+function _prepare_targets()
+ local targets_root = target_buildutils.get_root_targets()
+ target_buildutils.run_targetjobs(targets_root, {job_kind = "prepare"})
+end
+
-- set compiler
function _set_compiler(cmakelists)
if config.get("toolchain") then
@@ -1331,21 +1338,11 @@ function _generate_cmakelists(cmakelists, outputdir)
end
end
--- make
function make(outputdir)
-
- -- enter project directory
local oldir = os.cd(os.projectdir())
-
- -- open the cmakelists
local cmakelists = io.open(path.join(outputdir, "CMakeLists.txt"), "w")
-
- -- generate cmakelists
+ _prepare_targets()
_generate_cmakelists(cmakelists, outputdir)
-
- -- close the cmakelists
cmakelists:close()
-
- -- leave project directory
os.cd(oldir)
end