Skip to content

Commit 8317c65

Browse files
committed
remove fake_target
1 parent a505539 commit 8317c65

File tree

6 files changed

+94
-124
lines changed

6 files changed

+94
-124
lines changed

xmake/modules/core/tools/clang.lua

+1-1
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ function nf_runtime(self, runtime, opt)
296296
if triple_libdir then
297297
maps["c++_shared"] = table.join(maps["c++_shared"], nf_rpathdir(self, triple_libdir))
298298
end
299-
if target:is_shared() and self:is_plat("macosx", "iphoneos", "watchos") then
299+
if target:is_shared() and target.filename and self:is_plat("macosx", "iphoneos", "watchos") then
300300
maps["c++_shared"] = table.join(maps["c++_shared"], "-install_name")
301301
maps["c++_shared"] = table.join(maps["c++_shared"], "@rpath/" .. target:filename())
302302
end

xmake/modules/package/tools/autoconf.lua

+26-41
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,10 @@
2121
-- imports
2222
import("core.base.option")
2323
import("core.project.config")
24-
import("core.tool.linker")
25-
import("core.tool.compiler")
2624
import("core.tool.toolchain")
2725
import("core.cache.memcache")
2826
import("lib.detect.find_tool")
27+
import("private.utils.toolchain", {alias = "toolchain_utils"})
2928

3029
-- translate paths
3130
function _translate_paths(paths)
@@ -78,16 +77,6 @@ function _get_msvc_runenvs(package)
7877
return os.joinenvs(_get_msvc(package):runenvs())
7978
end
8079

81-
-- map compiler flags
82-
function _map_compflags(package, langkind, name, values)
83-
return compiler.map_flags(langkind, name, values, {target = package})
84-
end
85-
86-
-- map linker flags
87-
function _map_linkflags(package, targetkind, sourcekinds, name, values)
88-
return linker.map_flags(targetkind, sourcekinds, name, values, {target = package})
89-
end
90-
9180
-- is cross compilation?
9281
function _is_cross_compilation(package)
9382
if not package:is_plat(os.subhost()) then
@@ -199,13 +188,13 @@ function _get_cflags_from_packagedeps(package, opt)
199188
local result = {}
200189
if values then
201190
if values.defines then
202-
table.join2(result, _map_compflags(package, "cxx", "define", values.defines))
191+
table.join2(result, toolchain_utils.map_compflags(package, "cxx", "define", values.defines))
203192
end
204193
if values.includedirs then
205-
table.join2(result, _translate_paths(_map_compflags(package, "cxx", "includedir", values.includedirs)))
194+
table.join2(result, _translate_paths(toolchain_utils.map_compflags(package, "cxx", "includedir", values.includedirs)))
206195
end
207196
if values.sysincludedirs then
208-
table.join2(result, _translate_paths(_map_compflags(package, "cxx", "sysincludedir", values.sysincludedirs)))
197+
table.join2(result, _translate_paths(toolchain_utils.map_compflags(package, "cxx", "sysincludedir", values.sysincludedirs)))
209198
end
210199
end
211200
return result
@@ -230,16 +219,16 @@ function _get_ldflags_from_packagedeps(package, opt)
230219
local result = {}
231220
if values then
232221
if values.linkdirs then
233-
table.join2(result, _translate_paths(_map_linkflags(package, "binary", {"cxx"}, "linkdir", values.linkdirs)))
222+
table.join2(result, _translate_paths(toolchain_utils.map_linkflags(package, "binary", {"cxx"}, "linkdir", values.linkdirs)))
234223
end
235224
if values.links then
236-
table.join2(result, _map_linkflags(package, "binary", {"cxx"}, "link", values.links))
225+
table.join2(result, toolchain_utils.map_linkflags(package, "binary", {"cxx"}, "link", values.links))
237226
end
238227
if values.syslinks then
239-
table.join2(result, _translate_paths(_map_linkflags(package, "binary", {"cxx"}, "syslink", values.syslinks)))
228+
table.join2(result, _translate_paths(toolchain_utils.map_linkflags(package, "binary", {"cxx"}, "syslink", values.syslinks)))
240229
end
241230
if values.frameworks then
242-
table.join2(result, _map_linkflags(package, "binary", {"cxx"}, "framework", values.frameworks))
231+
table.join2(result, toolchain_utils.map_linkflags(package, "binary", {"cxx"}, "framework", values.frameworks))
243232
end
244233
end
245234
return result
@@ -306,21 +295,21 @@ function buildenvs(package, opt)
306295
table.join2(cxxflags, _get_cflags_from_packagedeps(package, opt))
307296
table.join2(cppflags, _get_cflags_from_packagedeps(package, opt))
308297
table.join2(ldflags, _get_ldflags_from_packagedeps(package, opt))
309-
table.join2(cflags, _map_compflags(package, "c", "define", defines))
310-
table.join2(cflags, _map_compflags(package, "c", "includedir", includedirs))
311-
table.join2(cflags, _map_compflags(package, "c", "sysincludedir", sysincludedirs))
312-
table.join2(asflags, _map_compflags(package, "as", "define", defines))
313-
table.join2(asflags, _map_compflags(package, "as", "includedir", includedirs))
314-
table.join2(asflags, _map_compflags(package, "as", "sysincludedir", sysincludedirs))
315-
table.join2(cxxflags, _map_compflags(package, "cxx", "define", defines))
316-
table.join2(cxxflags, _map_compflags(package, "cxx", "includedir", includedirs))
317-
table.join2(cxxflags, _map_compflags(package, "cxx", "sysincludedir", sysincludedirs))
318-
table.join2(ldflags, _map_linkflags(package, "binary", {"cxx"}, "link", links))
319-
table.join2(ldflags, _map_linkflags(package, "binary", {"cxx"}, "syslink", syslinks))
320-
table.join2(ldflags, _map_linkflags(package, "binary", {"cxx"}, "linkdir", linkdirs))
321-
table.join2(shflags, _map_linkflags(package, "shared", {"cxx"}, "link", links))
322-
table.join2(shflags, _map_linkflags(package, "shared", {"cxx"}, "syslink", syslinks))
323-
table.join2(shflags, _map_linkflags(package, "shared", {"cxx"}, "linkdir", linkdirs))
298+
table.join2(cflags, toolchain_utils.map_compflags(package, "c", "define", defines))
299+
table.join2(cflags, toolchain_utils.map_compflags(package, "c", "includedir", includedirs))
300+
table.join2(cflags, toolchain_utils.map_compflags(package, "c", "sysincludedir", sysincludedirs))
301+
table.join2(asflags, toolchain_utils.map_compflags(package, "as", "define", defines))
302+
table.join2(asflags, toolchain_utils.map_compflags(package, "as", "includedir", includedirs))
303+
table.join2(asflags, toolchain_utils.map_compflags(package, "as", "sysincludedir", sysincludedirs))
304+
table.join2(cxxflags, toolchain_utils.map_compflags(package, "cxx", "define", defines))
305+
table.join2(cxxflags, toolchain_utils.map_compflags(package, "cxx", "includedir", includedirs))
306+
table.join2(cxxflags, toolchain_utils.map_compflags(package, "cxx", "sysincludedir", sysincludedirs))
307+
table.join2(ldflags, toolchain_utils.map_linkflags(package, "binary", {"cxx"}, "link", links))
308+
table.join2(ldflags, toolchain_utils.map_linkflags(package, "binary", {"cxx"}, "syslink", syslinks))
309+
table.join2(ldflags, toolchain_utils.map_linkflags(package, "binary", {"cxx"}, "linkdir", linkdirs))
310+
table.join2(shflags, toolchain_utils.map_linkflags(package, "shared", {"cxx"}, "link", links))
311+
table.join2(shflags, toolchain_utils.map_linkflags(package, "shared", {"cxx"}, "syslink", syslinks))
312+
table.join2(shflags, toolchain_utils.map_linkflags(package, "shared", {"cxx"}, "linkdir", linkdirs))
324313
envs.CC = package:build_getenv("cc")
325314
envs.AS = package:build_getenv("as")
326315
envs.AR = package:build_getenv("ar")
@@ -341,13 +330,9 @@ function buildenvs(package, opt)
341330
end
342331
local runtimes = package:runtimes()
343332
if runtimes then
344-
local fake_target = {is_shared = function(_) return false end,
345-
sourcekinds = function(_) return "cxx" end}
346-
table.join2(cxxflags, _map_compflags(fake_target, "cxx", "runtime", runtimes))
347-
table.join2(ldflags, _map_linkflags(fake_target, "binary", {"cxx"}, "runtime", runtimes))
348-
fake_target = {is_shared = function(_) return true end,
349-
sourcekinds = function(_) return "cxx" end}
350-
table.join2(shflags, _map_linkflags(fake_target, "shared", {"cxx"}, "runtime", runtimes))
333+
table.join2(cxxflags, toolchain_utils.map_compflags(package, "cxx", "runtime", runtimes))
334+
table.join2(ldflags, toolchain_utils.map_linkflags(package, "binary", {"cxx"}, "runtime", runtimes))
335+
table.join2(shflags, toolchain_utils.map_linkflags(package, "shared", {"cxx"}, "runtime", runtimes))
351336
end
352337
if package:config("asan") then
353338
table.join2(cflags, package:_generate_sanitizer_configs("address", "cc").cflags)

xmake/modules/package/tools/cmake.lua

+27-39
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@ import("core.base.option")
2323
import("core.base.semver")
2424
import("core.tool.toolchain")
2525
import("core.project.config")
26-
import("core.tool.linker")
27-
import("core.tool.compiler")
2826
import("core.project.project")
2927
import("lib.detect.find_file")
3028
import("lib.detect.find_tool")
@@ -67,16 +65,6 @@ function _translate_bin_path(bin_path)
6765
return bin_path
6866
end
6967

70-
-- map compiler flags
71-
function _map_compflags(package, langkind, name, values)
72-
return compiler.map_flags(langkind, name, values, {target = package})
73-
end
74-
75-
-- map linker flags
76-
function _map_linkflags(package, targetkind, sourcekinds, name, values)
77-
return linker.map_flags(targetkind, sourcekinds, name, values, {target = package})
78-
end
79-
8068
-- get pkg-config, we need force to find it, because package install environments will be changed
8169
function _get_pkgconfig(package)
8270
-- meson need fullpath pkgconfig
@@ -146,13 +134,13 @@ function _get_cflags_from_packagedeps(package, opt)
146134
local result = {}
147135
if values then
148136
if values.defines then
149-
table.join2(result, _map_compflags(package, "cxx", "define", values.defines))
137+
table.join2(result, toolchain_utils.map_compflags(package, "cxx", "define", values.defines))
150138
end
151139
if values.includedirs then
152-
table.join2(result, _translate_paths(_map_compflags(package, "cxx", "includedir", values.includedirs)))
140+
table.join2(result, _translate_paths(toolchain_utils.map_compflags(package, "cxx", "includedir", values.includedirs)))
153141
end
154142
if values.sysincludedirs then
155-
table.join2(result, _translate_paths(_map_compflags(package, "cxx", "sysincludedir", values.sysincludedirs)))
143+
table.join2(result, _translate_paths(toolchain_utils.map_compflags(package, "cxx", "sysincludedir", values.sysincludedirs)))
156144
end
157145
end
158146
return result
@@ -177,16 +165,16 @@ function _get_ldflags_from_packagedeps(package, opt)
177165
local result = {}
178166
if values then
179167
if values.linkdirs then
180-
table.join2(result, _translate_paths(_map_linkflags(package, "binary", {"cxx"}, "linkdir", values.linkdirs)))
168+
table.join2(result, _translate_paths(toolchain_utils.map_linkflags(package, "binary", {"cxx"}, "linkdir", values.linkdirs)))
181169
end
182170
if values.links then
183-
table.join2(result, _map_linkflags(package, "binary", {"cxx"}, "link", values.links))
171+
table.join2(result, toolchain_utils.map_linkflags(package, "binary", {"cxx"}, "link", values.links))
184172
end
185173
if values.syslinks then
186-
table.join2(result, _translate_paths(_map_linkflags(package, "binary", {"cxx"}, "syslink", values.syslinks)))
174+
table.join2(result, _translate_paths(toolchain_utils.map_linkflags(package, "binary", {"cxx"}, "syslink", values.syslinks)))
187175
end
188176
if values.frameworks then
189-
table.join2(result, _map_linkflags(package, "binary", {"cxx"}, "framework", values.frameworks))
177+
table.join2(result, toolchain_utils.map_linkflags(package, "binary", {"cxx"}, "framework", values.frameworks))
190178
end
191179
end
192180
return result
@@ -199,9 +187,9 @@ function _get_cflags(package, opt)
199187
if opt.cross then
200188
table.join2(result, package:build_getenv("cflags"))
201189
table.join2(result, package:build_getenv("cxflags"))
202-
table.join2(result, _map_compflags(package, "c", "define", package:build_getenv("defines")))
203-
table.join2(result, _map_compflags(package, "c", "includedir", package:build_getenv("includedirs")))
204-
table.join2(result, _map_compflags(package, "c", "sysincludedir", package:build_getenv("sysincludedirs")))
190+
table.join2(result, toolchain_utils.map_compflags(package, "c", "define", package:build_getenv("defines")))
191+
table.join2(result, toolchain_utils.map_compflags(package, "c", "includedir", package:build_getenv("includedirs")))
192+
table.join2(result, toolchain_utils.map_compflags(package, "c", "sysincludedir", package:build_getenv("sysincludedirs")))
205193
end
206194
table.join2(result, package:config("cflags"))
207195
table.join2(result, package:config("cxflags"))
@@ -230,9 +218,9 @@ function _get_cxxflags(package, opt)
230218
if opt.cross then
231219
table.join2(result, package:build_getenv("cxxflags"))
232220
table.join2(result, package:build_getenv("cxflags"))
233-
table.join2(result, _map_compflags(package, "cxx", "define", package:build_getenv("defines")))
234-
table.join2(result, _map_compflags(package, "cxx", "includedir", package:build_getenv("includedirs")))
235-
table.join2(result, _map_compflags(package, "cxx", "sysincludedir", package:build_getenv("sysincludedirs")))
221+
table.join2(result, toolchain_utils.map_compflags(package, "cxx", "define", package:build_getenv("defines")))
222+
table.join2(result, toolchain_utils.map_compflags(package, "cxx", "includedir", package:build_getenv("includedirs")))
223+
table.join2(result, toolchain_utils.map_compflags(package, "cxx", "sysincludedir", package:build_getenv("sysincludedirs")))
236224
end
237225
table.join2(result, package:config("cxxflags"))
238226
table.join2(result, package:config("cxflags"))
@@ -260,9 +248,9 @@ function _get_asflags(package, opt)
260248
local result = {}
261249
if opt.cross then
262250
table.join2(result, package:build_getenv("asflags"))
263-
table.join2(result, _map_compflags(package, "as", "define", package:build_getenv("defines")))
264-
table.join2(result, _map_compflags(package, "as", "includedir", package:build_getenv("includedirs")))
265-
table.join2(result, _map_compflags(package, "as", "sysincludedir", package:build_getenv("sysincludedirs")))
251+
table.join2(result, toolchain_utils.map_compflags(package, "as", "define", package:build_getenv("defines")))
252+
table.join2(result, toolchain_utils.map_compflags(package, "as", "includedir", package:build_getenv("includedirs")))
253+
table.join2(result, toolchain_utils.map_compflags(package, "as", "sysincludedir", package:build_getenv("sysincludedirs")))
266254
end
267255
table.join2(result, package:config("asflags"))
268256
if opt.asflags then
@@ -279,9 +267,9 @@ function _get_ldflags(package, opt)
279267
local result = {}
280268
if opt.cross then
281269
table.join2(result, package:build_getenv("ldflags"))
282-
table.join2(result, _map_linkflags(package, "binary", {"cxx"}, "link", package:build_getenv("links")))
283-
table.join2(result, _map_linkflags(package, "binary", {"cxx"}, "syslink", package:build_getenv("syslinks")))
284-
table.join2(result, _map_linkflags(package, "binary", {"cxx"}, "linkdir", package:build_getenv("linkdirs")))
270+
table.join2(result, toolchain_utils.map_linkflags(package, "binary", {"cxx"}, "link", package:build_getenv("links")))
271+
table.join2(result, toolchain_utils.map_linkflags(package, "binary", {"cxx"}, "syslink", package:build_getenv("syslinks")))
272+
table.join2(result, toolchain_utils.map_linkflags(package, "binary", {"cxx"}, "linkdir", package:build_getenv("linkdirs")))
285273
end
286274
table.join2(result, package:config("ldflags"))
287275
if package:config("lto") then
@@ -305,9 +293,9 @@ function _get_shflags(package, opt)
305293
local result = {}
306294
if opt.cross then
307295
table.join2(result, package:build_getenv("shflags"))
308-
table.join2(result, _map_linkflags(package, "shared", {"cxx"}, "link", package:build_getenv("links")))
309-
table.join2(result, _map_linkflags(package, "shared", {"cxx"}, "syslink", package:build_getenv("syslinks")))
310-
table.join2(result, _map_linkflags(package, "shared", {"cxx"}, "linkdir", package:build_getenv("linkdirs")))
296+
table.join2(result, toolchain_utils.map_linkflags(package, "shared", {"cxx"}, "link", package:build_getenv("links")))
297+
table.join2(result, toolchain_utils.map_linkflags(package, "shared", {"cxx"}, "syslink", package:build_getenv("syslinks")))
298+
table.join2(result, toolchain_utils.map_linkflags(package, "shared", {"cxx"}, "linkdir", package:build_getenv("linkdirs")))
311299
end
312300
table.join2(result, package:config("shflags"))
313301
if package:config("lto") then
@@ -881,11 +869,11 @@ function _get_envs_for_runtime_flags(package, configs, opt)
881869
local envs = {}
882870
local runtimes = package:runtimes()
883871
if runtimes then
884-
envs[format("CMAKE_C_FLAGS_%s", buildtype)] = _map_compflags(package, "c", "runtime", runtimes)
885-
envs[format("CMAKE_CXX_FLAGS_%s", buildtype)] = _map_compflags(package, "cxx", "runtime", runtimes)
886-
envs[format("CMAKE_EXE_LINKER_FLAGS_%s", buildtype)] = _map_linkflags(package, "binary", {"cxx"}, "runtime", runtimes)
887-
envs[format("CMAKE_STATIC_LINKER_FLAGS_%s", buildtype)] = _map_linkflags(package, "static", {"cxx"}, "runtime", runtimes)
888-
envs[format("CMAKE_SHARED_LINKER_FLAGS_%s", buildtype)] = _map_linkflags(package, "shared", {"cxx"}, "runtime", runtimes)
872+
envs[format("CMAKE_C_FLAGS_%s", buildtype)] = toolchain_utils.map_compflags(package, "c", "runtime", runtimes)
873+
envs[format("CMAKE_CXX_FLAGS_%s", buildtype)] = toolchain_utils.map_compflags(package, "cxx", "runtime", runtimes)
874+
envs[format("CMAKE_EXE_LINKER_FLAGS_%s", buildtype)] = toolchain_utils.map_linkflags(package, "binary", {"cxx"}, "runtime", runtimes)
875+
envs[format("CMAKE_STATIC_LINKER_FLAGS_%s", buildtype)] = toolchain_utils.map_linkflags(package, "static", {"cxx"}, "runtime", runtimes)
876+
envs[format("CMAKE_SHARED_LINKER_FLAGS_%s", buildtype)] = toolchain_utils.map_linkflags(package, "shared", {"cxx"}, "runtime", runtimes)
889877
end
890878
return envs
891879
end

xmake/modules/package/tools/make.lua

+4-17
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import("core.base.option")
2323
import("core.project.config")
2424
import("lib.detect.find_tool")
25+
import("private.utils.toolchain", {alias = "toolchain_utils"})
2526

2627
-- translate bin path
2728
function _translate_bin_path(bin_path)
@@ -31,16 +32,6 @@ function _translate_bin_path(bin_path)
3132
return bin_path
3233
end
3334

34-
-- map compiler flags
35-
function _map_compflags(package, langkind, name, values)
36-
return compiler.map_flags(langkind, name, values, {target = package})
37-
end
38-
39-
-- map linker flags
40-
function _map_linkflags(package, targetkind, sourcekinds, name, values)
41-
return linker.map_flags(targetkind, sourcekinds, name, values, {target = package})
42-
end
43-
4435
-- get the build environments
4536
function buildenvs(package)
4637
local envs = {}
@@ -51,13 +42,9 @@ function buildenvs(package)
5142
local shflags = table.copy(table.wrap(package:config("shflags")))
5243
local runtimes = package:runtimes()
5344
if runtimes then
54-
local fake_target = {is_shared = function(_) return false end,
55-
sourcekinds = function(_) return "cxx" end}
56-
table.join2(cxxflags, _map_compflags(fake_target, "cxx", "runtime", runtimes))
57-
table.join2(ldflags, _map_linkflags(fake_target, "binary", {"cxx"}, "runtime", runtimes))
58-
fake_target = {is_shared = function(_) return true end,
59-
sourcekinds = function(_) return "cxx" end}
60-
table.join2(shflags, _map_linkflags(fake_target, "shared", {"cxx"}, "runtime", runtimes))
45+
table.join2(cxxflags, toolchain_utils.map_compflags(package, "cxx", "runtime", runtimes))
46+
table.join2(ldflags, toolchain_utils.map_linkflags(package, "binary", {"cxx"}, "runtime", runtimes))
47+
table.join2(shflags, toolchain_utils.map_linkflags(package, "shared", {"cxx"}, "runtime", runtimes))
6148
end
6249
if package:is_plat(os.host()) then
6350
if package:is_plat("linux") and package:is_arch("i386") then

0 commit comments

Comments
 (0)