[vtk-developers] Plan to make CMake 3.3 and C++11 required
robert.maynard at kitware.com
Wed Jan 4 14:06:12 EST 2017
As we start a new year, it is time to announce that we are planning on
rolling out a series of updates to VTK that are starting with the update
of the minimum required CMake version.
We have chosen CMake 3.3 as the minimum required version for numerous reasons,
the most important of those reasons being:
- It is the first CMake release that offers C++11 support for all four major
compilers ( GCC / MSVC / Clang / XCode ). 
- The CMake version is sufficiently new enough that it allows for a cleaning
of the existing CMake infrastructure. The current CMake minimum version
requires VTK to maintain forks of numerous FindPackages and Modules that are
part of newer CMake versions.
- Supports HTTPS downloads, with all the official binaries come with support.
Allowing for migration of external data to a HTTPS only server. Something we
are going to require in the near future. 
As mentioned above this year we have a series of upgrades planned to VTK which
require moving the minimum CMake version to 3.3. The most significant
of these changes to all developers is the requirement of a C++11 capable
Yes you heard that correct, VTK is going to soon require a C++11 capable
compiler. To be more exact we are going to require a compiler that understands
the significant majority of the C++11 language and runtime additions. The exact
versions for each compiler have not been set in stone, but a rough estimation
- GCC 4.8+
- Clang 3.3+
- XCode 5.0+
- MSVC 2013+
As we progress through the year, I expect a more concrete list of supported
compilers will be determined and documented.
Now the roll out for C++11 support is going to happen in multiple stages
with an initial plan being:
Stage 1: We require CMake 3.3, upgrade all dashboards, work through developer
reported issues with the version bump
Stage 2: Explicitly enable C++11 compiler flags during CMake
we will have to upgrade/retire dashboards, work through developer
Stage 3: Update the VTK Coding Standards for C++11.
Stage 4: Allow C++11 to be used in VTK ( outside currently permitted usage ).
1 - If you are using a different compiler vendor than one of those listed above
please see if it is currently supported
( https://cmake.org/cmake/help/v3.7/manual/cmake-compile-features.7.html ).
If the vendor is not explicitly listed please contact me, so we can discuss
what options are available.
2 - https://data.kitware.com is transitioning to be the location for all
external data, and requires a SSL connection.
More information about the vtk-developers