diff options
| author | ruki <[email protected]> | 2022-07-10 22:24:42 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-07-10 22:24:42 +0800 |
| commit | c497ad7b4cb33a8977a924ea8e528541f1e72f84 (patch) | |
| tree | a74088060a0a0df362a5d053b0730aa0290427e4 | |
| parent | 9cb8dbd5545c470162413551a727ffc059b374ea (diff) | |
| parent | 59bc570d0541a6f4150925547544b3ee01a6df05 (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.lua | 9 |
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 |
