Transition to VTK 8.0


(Jean Christophe Fillion Robin) #1

Hi All,

Just to let you know we are working on updating the version of VTK used in Slicer to use the latest VTK version. As soon as a branch is ready for testing, I will follow up here.

It will include the follow steps:

(Andras Lasso) #2

It would give more time for testing and extension developers for updating if we temporarily make Slicer and extensions compatible with both VTK7 and VTK8 with (using #ifdefs, similarly how we did it for VTK5->VTK6 transition).

(Andrey Fedorov) #3

“This also means, beginning version 8.0.0, VTK requires a C++11 capable compiler to compile”

@jcfr can you please comment whether C++11 will be enabled for VTK compiled with Slicer?

(Jean Christophe Fillion Robin) #4

Look like we will have a CMake option to choose one or the other.

Will comment later. Depending on what require c++11, we may add this requirement at a later time and patch Slicer/VTK fork.

Cannot compile Slicer on Mac - macOS Sierra + clang 9 + cmake 3.9.1
Cannot compile Slicer on Mac - macOS Sierra + clang 9 + cmake 3.9.1
(Jean Christophe Fillion Robin) #5

Here is an update:

  • when building Slicer against Qt4, VTK 7.1 is used and C++98 is selected

  • when building Slicer against Qt5, VTK 8 is used and C++11 is selected

(Isaiah Norton) #6


Actually, it wouldn’t be completely crazy to go straight to C++14…

  • Windows: in the past, Visual Studio was always lagging, but we will be requiring MSVC19 (Visual Studio 2015) anyway, which supports everything in C++14.

  • Mac: Clang has supported everything in C++14 for more than two major releases.

  • Linux is the wildcard, because of old clusters. However, they are not any worse off than will be with C++11 – they have to use devtoolset or the equivalent anyway.

@pieper @lassoan

(Andras Lasso) #7

I would try to be as close to VTK as possible and switch to c++14 shortly after VTK switches.

(Andras Lasso) #8

I’m wondering if we should create a Slicer 4.8.1 patch release based on the latest trunk version (maybe excluding a few risky changes, if there were any), just before we switch to VTK8. There have been a couple of fixes and improvements that would be good to have in the stable version.

(Jean Christophe Fillion Robin) #9

Hi Slicers,

To streamline the maintenance, support for Slicer_VTK_VERSION_MAJOR=8 has been removed in r26710

What does this mean for existing build tree ?

Three cases:

  • Qt4: if you are building against Qt4: no action required.

  • Qt5: if you have done a clean build since November 15 (when r26634 was integrated), you are all set.

  • Qt5: if you have NOT done a clean build, now is the time to do so. Otherwise, you will get an error message like ``.