summaryrefslogtreecommitdiff
path: root/xmake/modules/package
diff options
context:
space:
mode:
authorruki <[email protected]>2022-04-30 00:59:56 +0800
committerruki <[email protected]>2022-04-30 00:59:56 +0800
commitffd4cc4ac71259be018ebba4a5176bb40adfc7cc (patch)
tree8609d216279cde1a1ea6d4aadf7d138b427d50c8 /xmake/modules/package
parenta901b3786b2e11bede78a90ab41eb9a7200f31b7 (diff)
add vs_toolset for cmake
Diffstat (limited to 'xmake/modules/package')
-rw-r--r--xmake/modules/package/tools/cmake.lua17
1 files changed, 17 insertions, 0 deletions
diff --git a/xmake/modules/package/tools/cmake.lua b/xmake/modules/package/tools/cmake.lua
index a423deead..0e78ce352 100644
--- a/xmake/modules/package/tools/cmake.lua
+++ b/xmake/modules/package/tools/cmake.lua
@@ -225,6 +225,19 @@ function _get_shflags(package, opt)
end
end
+-- get vs toolset
+function _get_vs_toolset(package)
+ local toolset_ver = nil
+ local vs_toolset = _get_msvc(package):config("vs_toolset") or config.get("vs_toolset")
+ if vs_toolset then
+ local verinfo = vs_toolset:split('%.')
+ if #verinfo >= 2 then
+ toolset_ver = "v" .. verinfo[1] .. (verinfo[2]:sub(1, 1) or "0")
+ end
+ end
+ return toolset_ver
+end
+
-- get configs for generic
function _get_configs_for_generic(package, configs, opt)
local cflags = _get_cflags(package, opt)
@@ -262,6 +275,10 @@ function _get_configs_for_windows(package, configs, opt)
else
table.insert(configs, "x64")
end
+ local vs_toolset = _get_vs_toolset(package)
+ if vs_toolset then
+ table.insert(configs, "-DCMAKE_GENERATOR_TOOLSET=" .. vs_toolset)
+ end
end
-- we maybe need patch `cmake_policy(SET CMP0091 NEW)` to enable this argument for some packages
-- @see https://cmake.org/cmake/help/latest/policy/CMP0091.html#policy:CMP0091