summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2025-03-29 22:46:03 +0800
committerruki <[email protected]>2025-04-08 15:31:56 +0800
commit4cebb90c10ea682b66a0f112a0aadddc8b9d8bc2 (patch)
tree98e27d9cf5d556625ad7eeedcbb901e3376f98e3
parentc167aa90ca9a0000b7933a9df9306d18dee60f5c (diff)
move linkdepfiles
-rw-r--r--xmake/actions/build/builtin/build_binary.lua4
-rw-r--r--xmake/actions/build/builtin/linkdepfiles.lua39
-rw-r--r--xmake/actions/build/deprecated/kinds/binary.lua4
-rw-r--r--xmake/actions/build/deprecated/kinds/shared.lua4
-rw-r--r--xmake/actions/build/deprecated/kinds/static.lua4
-rw-r--r--xmake/actions/build/target_utils.lua20
6 files changed, 28 insertions, 47 deletions
diff --git a/xmake/actions/build/builtin/build_binary.lua b/xmake/actions/build/builtin/build_binary.lua
index 7b9b7d7b9..1e51d29f4 100644
--- a/xmake/actions/build/builtin/build_binary.lua
+++ b/xmake/actions/build/builtin/build_binary.lua
@@ -26,8 +26,8 @@ import("core.tool.compiler")
import("core.project.depend")
import("utils.progress")
import("private.utils.batchcmds")
-import("linkdepfiles", {alias = "get_linkdepfiles"})
import("build_object")
+import(".target_utils")
-- do link target
function _do_link_target(target, opt)
@@ -35,7 +35,7 @@ function _do_link_target(target, opt)
local linkflags = linkinst:linkflags({target = target})
-- need build this target?
- local depfiles = get_linkdepfiles(target)
+ local depfiles = target_utils.get_linkdepfiles(target)
local dryrun = option.get("dry-run")
local depvalues = {linkinst:program(), linkflags}
depend.on_changed(function ()
diff --git a/xmake/actions/build/builtin/linkdepfiles.lua b/xmake/actions/build/builtin/linkdepfiles.lua
deleted file mode 100644
index f96e532fc..000000000
--- a/xmake/actions/build/builtin/linkdepfiles.lua
+++ /dev/null
@@ -1,39 +0,0 @@
---!A cross-platform build utility based on Lua
---
--- Licensed under the Apache License, Version 2.0 (the "License");
--- you may not use this file except in compliance with the License.
--- You may obtain a copy of the License at
---
--- http://www.apache.org/licenses/LICENSE-2.0
---
--- Unless required by applicable law or agreed to in writing, software
--- distributed under the License is distributed on an "AS IS" BASIS,
--- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--- See the License for the specific language governing permissions and
--- limitations under the License.
---
--- Copyright (C) 2015-present, TBOOX Open Source Group.
---
--- @author ruki
--- @file linkdepfiles.lua
---
-
--- get link depfiles
-function main(target)
- local extrafiles = {}
- for _, dep in ipairs(target:orderdeps()) do
- if dep:kind() == "static" then
- table.insert(extrafiles, dep:targetfile())
- end
- end
- local linkdepfiles = target:data("linkdepfiles")
- if linkdepfiles then
- table.join2(extrafiles, linkdepfiles)
- end
- local objectfiles = target:objectfiles()
- local depfiles = objectfiles
- if #extrafiles > 0 then
- depfiles = table.join(objectfiles, extrafiles)
- end
- return depfiles
-end
diff --git a/xmake/actions/build/deprecated/kinds/binary.lua b/xmake/actions/build/deprecated/kinds/binary.lua
index fddc4c8bf..73962becc 100644
--- a/xmake/actions/build/deprecated/kinds/binary.lua
+++ b/xmake/actions/build/deprecated/kinds/binary.lua
@@ -27,7 +27,7 @@ import("core.project.depend")
import("utils.progress")
import("private.utils.batchcmds")
import("object", {alias = "object_target"})
-import("..builtin.linkdepfiles", {alias = "get_linkdepfiles"})
+import("..target_utils")
-- do link target
function _do_link_target(target, opt)
@@ -35,7 +35,7 @@ function _do_link_target(target, opt)
local linkflags = linkinst:linkflags({target = target})
-- need build this target?
- local depfiles = get_linkdepfiles(target)
+ local depfiles = target_utils.get_linkdepfiles(target)
local dryrun = option.get("dry-run")
local depvalues = {linkinst:program(), linkflags}
depend.on_changed(function ()
diff --git a/xmake/actions/build/deprecated/kinds/shared.lua b/xmake/actions/build/deprecated/kinds/shared.lua
index 2b53e98e8..9b91d67e3 100644
--- a/xmake/actions/build/deprecated/kinds/shared.lua
+++ b/xmake/actions/build/deprecated/kinds/shared.lua
@@ -27,7 +27,7 @@ import("core.project.depend")
import("utils.progress")
import("private.utils.batchcmds")
import("object", {alias = "object_target"})
-import("..builtin.linkdepfiles", {alias = "get_linkdepfiles"})
+import("..target_utils")
-- do link target
function _do_link_target(target, opt)
@@ -35,7 +35,7 @@ function _do_link_target(target, opt)
local linkflags = linkinst:linkflags({target = target})
-- need build this target?
- local depfiles = get_linkdepfiles(target)
+ local depfiles = target_utils.get_linkdepfiles(target)
local dryrun = option.get("dry-run")
local depvalues = {linkinst:program(), linkflags}
depend.on_changed(function ()
diff --git a/xmake/actions/build/deprecated/kinds/static.lua b/xmake/actions/build/deprecated/kinds/static.lua
index 21fc253b5..7057395f9 100644
--- a/xmake/actions/build/deprecated/kinds/static.lua
+++ b/xmake/actions/build/deprecated/kinds/static.lua
@@ -27,7 +27,7 @@ import("core.project.depend")
import("utils.progress")
import("private.utils.batchcmds")
import("object", {alias = "object_target"})
-import("..builtin.linkdepfiles", {alias = "get_linkdepfiles"})
+import("..target_utils")
-- do link target
function _do_link_target(target, opt)
@@ -35,7 +35,7 @@ function _do_link_target(target, opt)
local linkflags = linkinst:linkflags({target = target})
-- need build this target?
- local depfiles = get_linkdepfiles(target)
+ local depfiles = target_utils.get_linkdepfiles(target)
local dryrun = option.get("dry-run")
local depvalues = {linkinst:program(), linkflags}
depend.on_changed(function ()
diff --git a/xmake/actions/build/target_utils.lua b/xmake/actions/build/target_utils.lua
index dfb21b23f..1ff2ccdad 100644
--- a/xmake/actions/build/target_utils.lua
+++ b/xmake/actions/build/target_utils.lua
@@ -548,6 +548,26 @@ function get_filejobs(targets_root, opt)
return jobgraph
end
+-- get link depfiles
+function get_linkdepfiles(target)
+ local extrafiles = {}
+ for _, dep in ipairs(target:orderdeps()) do
+ if dep:kind() == "static" then
+ table.insert(extrafiles, dep:targetfile())
+ end
+ end
+ local linkdepfiles = target:data("linkdepfiles")
+ if linkdepfiles then
+ table.join2(extrafiles, linkdepfiles)
+ end
+ local objectfiles = target:objectfiles()
+ local depfiles = objectfiles
+ if #extrafiles > 0 then
+ depfiles = table.join(objectfiles, extrafiles)
+ end
+ return depfiles
+end
+
-- get all root targets
function get_root_targets(targetnames, opt)
opt = opt or {}