From ed5abd79f84b463e4c28570c748c653cafde961d Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Wed, 29 Jan 2020 10:30:38 -0500 Subject: [PATCH] Updates for upcoming CMake 3.17 --- README.md | 4 ++-- chapters/intro/newcmake.md | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index cda180a..934dde2 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ People love to hate build systems. Just watch the talks from CppCon17 to see examples of developers making the state of build systems the brunt of jokes. This raises the question: Why? Certainly there are no shortage of problems when building. -But I think that, in 2018, we have a very good solution to quite a few of those problems. +But I think that, in 2020, we have a very good solution to quite a few of those problems. It's CMake. Not CMake 2.8 though; that was released before C++11 even existed! Nor the horrible examples out there for CMake (even those posted on KitWare's own tutorials list). I'm talking about Modern CMake. CMake 3.1+, maybe even CMake 3.16+! @@ -86,7 +86,7 @@ There are some other places to find good information on the web. Here are some o * [It's time to do CMake Right](https://pabloariasal.github.io/2018/02/19/its-time-to-do-cmake-right/): A nice set of best practices for Modern CMake projects. * [The Ultimate Guide to Modern CMake](https://rix0r.nl/blog/2015/08/13/cmake-guide/): A slightly dated post with similar intent. * [More Modern CMake](https://youtu.be/y7ndUhdQuU8): A great presentation from Meeting C++ 2018 that recommends CMake 3.12+. This talk makes calls CMake 3.0+ "Modern CMake" and CMake 3.12+ "More Modern CMake". -* [Oh No! More Modern CMake](https://www.youtube.com/watch?v=y9kSr5enrSk): The sequal to More Modern CMake. +* [Oh No! More Modern CMake](https://www.youtube.com/watch?v=y9kSr5enrSk): The sequel to More Modern CMake. * [toeb/moderncmake](https://github.com/toeb/moderncmake): A nice presentation and examples about CMake 3.5+, with intro to syntax through project organization ## Credits diff --git a/chapters/intro/newcmake.md b/chapters/intro/newcmake.md index 6f61726..c484032 100644 --- a/chapters/intro/newcmake.md +++ b/chapters/intro/newcmake.md @@ -221,6 +221,17 @@ fixes were implemented, especially to newer features, such as to FindPython, Fin * Generator expressions work in more places, like build and install paths * Find locations can now be explicitly controlled through new variables +## [CMake 3.17 (in progress)][CMake master] : More CUDA + +* `CUDA_RUNTIME_LIBRARY` can finally be set to Shared! +* FindCUDAToolkit finally added +* CUDA has meta features like `cuda_std_03`, etc. +* ExternalProject can now disable recursive checkouts +* FindPython better integration with Conda +* DEPRECATION can be applied to targets +* CMake gained a rm command +* Several new environment variables +* foreach can now do `ZIP_LISTS` (multiple lists at a time) [Releases]: https://cmake.org/cmake/help/latest/release/index.html [CMake 3.0]: https://cmake.org/cmake/help/latest/release/3.0.html @@ -240,4 +251,5 @@ fixes were implemented, especially to newer features, such as to FindPython, Fin [CMake 3.14]: https://cmake.org/cmake/help/latest/release/3.14.html [CMake 3.15]: https://cmake.org/cmake/help/latest/release/3.15.html [CMake 3.16]: https://cmake.org/cmake/help/latest/release/3.16.html +[CMake master]: https://cmake.org/cmake/help/git-master/release/index.html [fastercmake]: https://blog.kitware.com/improving-cmakes-runtime-performance/