diff options
| author | ruki <[email protected]> | 2022-04-30 00:59:56 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2022-04-30 00:59:56 +0800 |
| commit | ffd4cc4ac71259be018ebba4a5176bb40adfc7cc (patch) | |
| tree | 8609d216279cde1a1ea6d4aadf7d138b427d50c8 /xmake/modules/package/tools/cmake.lua | |
| parent | a901b3786b2e11bede78a90ab41eb9a7200f31b7 (diff) | |
add vs_toolset for cmake
Diffstat (limited to 'xmake/modules/package/tools/cmake.lua')
| -rw-r--r-- | xmake/modules/package/tools/cmake.lua | 17 |
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 |
