mirror of
1
0
Fork 0

Updates for upcoming CMake 3.17

This commit is contained in:
Henry Schreiner 2020-01-29 10:30:38 -05:00
parent e2e074e02a
commit ed5abd79f8
2 changed files with 14 additions and 2 deletions

View File

@ -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

View File

@ -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/