summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2022-07-10 22:24:42 +0800
committerGitHub <[email protected]>2022-07-10 22:24:42 +0800
commitc497ad7b4cb33a8977a924ea8e528541f1e72f84 (patch)
treea74088060a0a0df362a5d053b0730aa0290427e4
parent9cb8dbd5545c470162413551a727ffc059b374ea (diff)
parent59bc570d0541a6f4150925547544b3ee01a6df05 (diff)
Merge pull request #2553 from fifty-six/dev
Add support for cxxlatest (msvc) with CMakeLists generation
-rw-r--r--xmake/plugins/project/cmake/cmakelists.lua9
1 files changed, 8 insertions, 1 deletions
diff --git a/xmake/plugins/project/cmake/cmakelists.lua b/xmake/plugins/project/cmake/cmakelists.lua
index fbf8f22a0..062a9bad0 100644
--- a/xmake/plugins/project/cmake/cmakelists.lua
+++ b/xmake/plugins/project/cmake/cmakelists.lua
@@ -440,6 +440,7 @@ function _add_target_language_standards(cmakelists, target)
, gnuxx1z = "17"
, cxx2a = "20"
, gnuxx2a = "20"
+ , cxxlatest = "latest"
}
for _, lang in ipairs(target:get("languages")) do
local cstd = cstds[lang]
@@ -453,7 +454,13 @@ function _add_target_language_standards(cmakelists, target)
end
local cxxstd = cxxstds[lang]
if cxxstd then
- cmakelists:print("set_property(TARGET %s PROPERTY CXX_STANDARD %s)", target:name(), cxxstd)
+ if cxxstd == "latest" then
+ cmakelists:print("if (MSVC)")
+ cmakelists:print(" target_compile_options(%s PRIVATE $<$<COMPILE_LANGUAGE:CXX>:/std:c++latest>)", target:name())
+ cmakelists:print("endif()")
+ else
+ cmakelists:print("set_property(TARGET %s PROPERTY CXX_STANDARD %s)", target:name(), cxxstd)
+ end
end
end
end