summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2021-09-08 23:56:21 +0800
committerGitHub <[email protected]>2021-09-08 23:56:21 +0800
commit24bcec72c46c177f53c6ac9b80a88d2fab05e4b8 (patch)
tree2c14345cc23f2986a2ea497cc4cc39b340fe5a0e
parenta68c603d0e1d95d372fbc99176372914d74ea4e8 (diff)
parent0b151b821c8c34dfa445fbe938b0acb316145858 (diff)
Merge pull request #1659 from SirLynix/cmake-fix
Improve cmake
-rw-r--r--xmake/modules/package/tools/cmake.lua21
1 files changed, 9 insertions, 12 deletions
diff --git a/xmake/modules/package/tools/cmake.lua b/xmake/modules/package/tools/cmake.lua
index c13b48356..65d5d3b1d 100644
--- a/xmake/modules/package/tools/cmake.lua
+++ b/xmake/modules/package/tools/cmake.lua
@@ -133,12 +133,6 @@ function _get_cflags(package, opt)
table.join2(result, opt.cxflags)
end
table.join2(result, _get_cflags_from_packagedeps(package, opt))
- if package:is_plat("windows") then
- local vs_runtime = package:config("vs_runtime")
- if vs_runtime then
- table.insert(result, "/" .. vs_runtime)
- end
- end
if #result > 0 then
return os.args(result)
end
@@ -164,12 +158,6 @@ function _get_cxxflags(package, opt)
table.join2(result, opt.cxflags)
end
table.join2(result, _get_cflags_from_packagedeps(package, opt))
- if package:is_plat("windows") then
- local vs_runtime = package:config("vs_runtime")
- if vs_runtime then
- table.insert(result, "/" .. vs_runtime)
- end
- end
if #result > 0 then
return os.args(result)
end
@@ -283,6 +271,15 @@ function _get_configs_for_windows(package, configs, opt)
elseif vs_runtime == "MDd" then
table.insert(configs, "-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDebugDLL")
end
+ if vs_runtime then
+ -- CMake default MSVC flags as of 3.21.2
+ local default_debug_flags = "/Zi /Ob0 /Od /RTC1"
+ local default_release_flags = "/O2 /Ob2 /DNDEBUG"
+ table.insert(configs, '-DCMAKE_CXX_FLAGS_DEBUG="/' .. vs_runtime .. ' ' .. default_debug_flags .. '"')
+ table.insert(configs, '-DCMAKE_CXX_FLAGS_RELEASE="/' .. vs_runtime .. ' ' .. default_release_flags .. '"')
+ table.insert(configs, '-DCMAKE_C_FLAGS_DEBUG="/' .. vs_runtime .. ' ' .. default_debug_flags .. '"')
+ table.insert(configs, '-DCMAKE_C_FLAGS_RELEASE="/' .. vs_runtime .. ' ' .. default_release_flags .. '"')
+ end
_get_configs_for_generic(package, configs, opt)
end