-
Notifications
You must be signed in to change notification settings - Fork 142
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update minimum CMake version from 2.8.10 #832
Comments
Someone using creaky machines will have to admit their minimum (maximum?) CMake version. CMake is generally trivial to install, so I am happy to move to 3.1 or more recent. As with (say) our QE support it would be good to define a policy if possible. |
No replies yet. Seems like it would be safe to require cmake 3. Package managers have it and the HPC centers have it.... Some of the minimum version discussion had around the miniapp (3.4+) should be had here. |
It looks like for set(CXX_STANDARD 11) support for intel, gcc, and clang cmake >=3.6.0 is required. |
We have been using 3.6.3 on oxygen since 9/2016. Unless anyone chirps up by the 9th, when this issue will have been up for a week, lets make 3.6.0 the minimum version. |
ALCF Mira has 3.8.1 and Theta has 3.9.1. |
Remove the unneeded cmake version tests. Switch to the cmake mechanism for specifying the C++11 standard 3.6.0 is the first version that gets the C++11 flags correct for the Intel compiler Addresses QMCPACK#832
There is a tension with the minimum CMake version required - supporting older versions makes it easier for users, but moving to newer versions makes life easier for developers.
This issue is to gather some information on what versions would help developers, and which versions are easily accessible on various platforms.
The current minimum required is 2.8.10, with some additional unit tests enabled for versions > 2.8.11
CMake 3.1 introduces the CMAKE_CXX_STANDARD and CMAKE_CXX_STANDARD_REQUIRED, which should set the flags on the compilers properly, and the existing c++11 flag checking could be removed.
A more modern approach to CMake organization uses target_* commands. The target_source command was added in CMake 3.1. I don't know if there are subsequent additions in later CMake versions to better support this style of organization.
The text was updated successfully, but these errors were encountered: