summaryrefslogtreecommitdiff
path: root/xmake/modules/package/tools/cmake.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2024-11-18 22:47:50 +0800
committerruki <[email protected]>2024-11-18 22:47:50 +0800
commit1e9846e841a037172b1820c7782769ea9db4895d (patch)
treecb38904852ca62c178bc5181762f15cf47f6c9b9 /xmake/modules/package/tools/cmake.lua
parente70db1fd8d71aa80c4bbf740f9c57a717ac124bc (diff)
add CMAKE_MODULE_LINKER_FLAGS for tools.cmake #5826
Diffstat (limited to 'xmake/modules/package/tools/cmake.lua')
-rw-r--r--xmake/modules/package/tools/cmake.lua11
1 files changed, 10 insertions, 1 deletions
diff --git a/xmake/modules/package/tools/cmake.lua b/xmake/modules/package/tools/cmake.lua
index e487b5d16..7db5b3441 100644
--- a/xmake/modules/package/tools/cmake.lua
+++ b/xmake/modules/package/tools/cmake.lua
@@ -419,6 +419,7 @@ function _get_configs_for_generic(package, configs, opt)
local shflags = _get_shflags(package, opt)
if shflags then
table.insert(configs, "-DCMAKE_SHARED_LINKER_FLAGS=" .. shflags)
+ table.insert(configs, "-DCMAKE_MODULE_LINKER_FLAGS=" .. shflags)
end
if not package:is_plat("windows", "mingw") and package:config("pic") ~= false then
table.insert(configs, "-DCMAKE_POSITION_INDEPENDENT_CODE=ON")
@@ -523,6 +524,7 @@ function _get_configs_for_appleos(package, configs, opt)
envs.CMAKE_STATIC_LINKER_FLAGS = table.concat(table.wrap(package:build_getenv("arflags")), ' ')
envs.CMAKE_EXE_LINKER_FLAGS = _get_ldflags(package, opt)
envs.CMAKE_SHARED_LINKER_FLAGS = _get_shflags(package, opt)
+ envs.CMAKE_MODULE_LINKER_FLAGS = _get_shflags(package, opt)
-- https://cmake.org/cmake/help/v3.17/manual/cmake-toolchains.7.html#id25
if package:is_plat("watchos") then
envs.CMAKE_SYSTEM_NAME = "watchOS"
@@ -567,6 +569,7 @@ function _get_configs_for_mingw(package, configs, opt)
envs.CMAKE_STATIC_LINKER_FLAGS = table.concat(table.wrap(package:build_getenv("arflags")), ' ')
envs.CMAKE_EXE_LINKER_FLAGS = _get_ldflags(package, opt)
envs.CMAKE_SHARED_LINKER_FLAGS = _get_shflags(package, opt)
+ envs.CMAKE_MODULE_LINKER_FLAGS = _get_shflags(package, opt)
envs.CMAKE_SYSTEM_NAME = "Windows"
envs.CMAKE_SYSTEM_PROCESSOR = _get_cmake_system_processor(package)
-- avoid find and add system include/library path
@@ -653,6 +656,7 @@ function _get_configs_for_cross(package, configs, opt)
envs.CMAKE_STATIC_LINKER_FLAGS = table.concat(table.wrap(package:build_getenv("arflags")), ' ')
envs.CMAKE_EXE_LINKER_FLAGS = _get_ldflags(package, opt)
envs.CMAKE_SHARED_LINKER_FLAGS = _get_shflags(package, opt)
+ envs.CMAKE_MODULE_LINKER_FLAGS = _get_shflags(package, opt)
-- we don't need to set it as cross compilation if we just pass toolchain
-- https://github.com/xmake-io/xmake/issues/2170
if package:is_cross() then
@@ -711,6 +715,7 @@ function _get_configs_for_host_toolchain(package, configs, opt)
envs.CMAKE_STATIC_LINKER_FLAGS = table.concat(table.wrap(package:build_getenv("arflags")), ' ')
envs.CMAKE_EXE_LINKER_FLAGS = _get_ldflags(package, opt)
envs.CMAKE_SHARED_LINKER_FLAGS = _get_shflags(package, opt)
+ envs.CMAKE_MODULE_LINKER_FLAGS = _get_shflags(package, opt)
-- we don't need to set it as cross compilation if we just pass toolchain
-- https://github.com/xmake-io/xmake/issues/2170
if package:is_cross() then
@@ -884,6 +889,7 @@ function _get_envs_for_runtime_flags(package, configs, opt)
envs[format("CMAKE_EXE_LINKER_FLAGS_%s", buildtype)] = toolchain_utils.map_linkflags_for_package(package, "binary", {"cxx"}, "runtime", runtimes)
envs[format("CMAKE_STATIC_LINKER_FLAGS_%s", buildtype)] = toolchain_utils.map_linkflags_for_package(package, "static", {"cxx"}, "runtime", runtimes)
envs[format("CMAKE_SHARED_LINKER_FLAGS_%s", buildtype)] = toolchain_utils.map_linkflags_for_package(package, "shared", {"cxx"}, "runtime", runtimes)
+ envs[format("CMAKE_MODULE_LINKER_FLAGS_%s", buildtype)] = toolchain_utils.map_linkflags_for_package(package, "shared", {"cxx"}, "runtime", runtimes)
end
return envs
end
@@ -1194,16 +1200,19 @@ function _shrink_cmake_arguments(argv, oldir, opt)
"CMAKE_ASM_FLAGS",
"CMAKE_EXE_LINKER_FLAGS",
"CMAKE_SHARED_LINKER_FLAGS",
+ "CMAKE_MODULE_LINKER_FLAGS",
"CMAKE_C_FLAGS_RELEASE",
"CMAKE_CXX_FLAGS_RELEASE",
"CMAKE_ASM_FLAGS_RELEASE",
"CMAKE_EXE_LINKER_FLAGS_RELEASE",
"CMAKE_SHARED_LINKER_FLAGS_RELEASE",
+ "CMAKE_MODULE_LINKER_FLAGS_RELEASE",
"CMAKE_C_FLAGS_DEBUG",
"CMAKE_CXX_FLAGS_DEBUG",
"CMAKE_ASM_FLAGS_DEBUG",
"CMAKE_EXE_LINKER_FLAGS_DEBUG",
- "CMAKE_SHARED_LINKER_FLAGS_DEBUG")
+ "CMAKE_SHARED_LINKER_FLAGS_DEBUG",
+ "CMAKE_MODULE_LINKER_FLAGS_DEBUG")
local shrink = false
local add_compile_options = false
local add_link_options = false