[vtk-developers] Plan to make CMake 3.3 and C++11 required

Robert Maynard 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 ). [1]

- 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. [2]

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
would be:
  - 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
configuration. Again
         we will have to upgrade/retire dashboards, work through developer
         reported issues.

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 mailing list