From c82ceee2edce72419959eaf1b980f12251ed008c Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Wed, 1 Sep 2021 16:26:46 +0200 Subject: [PATCH 1/3] vtk_9: fix Qt support Passing enableQt to the package does not build QVTK and CMake warns: Manually-specified variables were not used by the project: VTK_Group_Qt --- pkgs/development/libraries/vtk/generic.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/vtk/generic.nix b/pkgs/development/libraries/vtk/generic.nix index 482e6be7bbcf..fb2b11511b99 100644 --- a/pkgs/development/libraries/vtk/generic.nix +++ b/pkgs/development/libraries/vtk/generic.nix @@ -73,8 +73,9 @@ in stdenv.mkDerivation rec { "-DCMAKE_INSTALL_LIBDIR=lib" "-DCMAKE_INSTALL_INCLUDEDIR=include" "-DCMAKE_INSTALL_BINDIR=bin" + ] ++ optionals enableQt [ + "-D${if lib.versionOlder version "9.0" then "VTK_Group_Qt:BOOL=ON" else "VTK_GROUP_ENABLE_Qt:STRING=YES"}" ] - ++ optionals enableQt [ "-DVTK_Group_Qt:BOOL=ON" ] ++ optionals stdenv.isDarwin [ "-DOPENGL_INCLUDE_DIR=${OpenGL}/Library/Frameworks" ] ++ optionals enablePython [ "-DVTK_WRAP_PYTHON:BOOL=ON" From e6caf52f64d5a6347913a0d75c68edf63a66a302 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Wed, 1 Sep 2021 17:04:55 +0200 Subject: [PATCH 2/3] vtk_9: do not vendor libpng and libtiff Previously ldd did not show the dependencies so presumably, VTK 9 started linking them statically after build system changes, as hinted by the following CMake warning: Manually-specified variables were not used by the project: VTK_USE_SYSTEM_PNG VTK_USE_SYSTEM_TIFF --- pkgs/development/libraries/vtk/generic.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/vtk/generic.nix b/pkgs/development/libraries/vtk/generic.nix index fb2b11511b99..a3d3824a5410 100644 --- a/pkgs/development/libraries/vtk/generic.nix +++ b/pkgs/development/libraries/vtk/generic.nix @@ -67,8 +67,8 @@ in stdenv.mkDerivation rec { cmakeFlags = [ "-DCMAKE_C_FLAGS=-fPIC" "-DCMAKE_CXX_FLAGS=-fPIC" - "-DVTK_USE_SYSTEM_PNG=ON" - "-DVTK_USE_SYSTEM_TIFF=1" + "-D${if lib.versionOlder version "9.0" then "VTK_USE_SYSTEM_PNG" else "VTK_MODULE_USE_EXTERNAL_vtkpng"}=ON" + "-D${if lib.versionOlder version "9.0" then "VTK_USE_SYSTEM_TIFF" else "VTK_MODULE_USE_EXTERNAL_vtktiff"}=1" "-DOPENGL_INCLUDE_DIR=${libGL}/include" "-DCMAKE_INSTALL_LIBDIR=lib" "-DCMAKE_INSTALL_INCLUDEDIR=include" From e6f94dea3ea3df9d84c6c1870779b8867ab16290 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Wed, 1 Sep 2021 17:17:59 +0200 Subject: [PATCH 3/3] vtk_7: Fix enableQt build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit VTK 7 builds with Qt 4 by default but we only support Qt 5, so let’s switch to that. Also Qt changed some headers so let’s backport the VTK patch to fix the build. --- pkgs/development/libraries/vtk/7.x.nix | 24 ++++++++++++++-------- pkgs/development/libraries/vtk/generic.nix | 2 ++ 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/pkgs/development/libraries/vtk/7.x.nix b/pkgs/development/libraries/vtk/7.x.nix index 860f17639454..615553f80f22 100644 --- a/pkgs/development/libraries/vtk/7.x.nix +++ b/pkgs/development/libraries/vtk/7.x.nix @@ -2,13 +2,21 @@ import ./generic.nix { majorVersion = "7.1"; minorVersion = "1"; sourceSha256 = "0nm7xwwj7rnsxjdv2ssviys8nhci4n9iiiqm2y14s520hl2dsp1d"; - patchesToFetch = [{ - url = "https://gitlab.kitware.com/vtk/vtk/-/commit/706f1b397df09a27ab8981ab9464547028d0c322.diff"; - sha256 = "1q3pi5h40g05pzpbqp75xlgzvbfvyw8raza51svmi7d8dlslqybx"; - } - { - url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/sci-libs/vtk/files/vtk-8.2.0-gcc-10.patch?id=c4256f68d3589570443075eccbbafacf661f785f"; - sha256 = "sha256:0bpwrdfmi15grsg4jy7bzj2z6511a0c160cmw5lsi65aabyh7cl5"; - } + patchesToFetch = [ + { + url = "https://gitlab.kitware.com/vtk/vtk/-/commit/706f1b397df09a27ab8981ab9464547028d0c322.diff"; + sha256 = "1q3pi5h40g05pzpbqp75xlgzvbfvyw8raza51svmi7d8dlslqybx"; + } + + { + url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/sci-libs/vtk/files/vtk-8.2.0-gcc-10.patch?id=c4256f68d3589570443075eccbbafacf661f785f"; + sha256 = "sha256:0bpwrdfmi15grsg4jy7bzj2z6511a0c160cmw5lsi65aabyh7cl5"; + } + + # Add missing include required with recent Qt. + { + url = "https://gitlab.kitware.com/vtk/vtk/-/commit/797f28697d5ba50c1fa2bc5596af626a3c277826.diff"; + sha256 = "BFjoKws1hVD3Ly9RS4lGN62J6RTyI1E8ATHrZdzg7ds="; + } ]; } diff --git a/pkgs/development/libraries/vtk/generic.nix b/pkgs/development/libraries/vtk/generic.nix index a3d3824a5410..c180b05e9521 100644 --- a/pkgs/development/libraries/vtk/generic.nix +++ b/pkgs/development/libraries/vtk/generic.nix @@ -75,6 +75,8 @@ in stdenv.mkDerivation rec { "-DCMAKE_INSTALL_BINDIR=bin" ] ++ optionals enableQt [ "-D${if lib.versionOlder version "9.0" then "VTK_Group_Qt:BOOL=ON" else "VTK_GROUP_ENABLE_Qt:STRING=YES"}" + ] ++ optionals (enableQt && lib.versionOlder version "8.0") [ + "-DVTK_QT_VERSION=5" ] ++ optionals stdenv.isDarwin [ "-DOPENGL_INCLUDE_DIR=${OpenGL}/Library/Frameworks" ] ++ optionals enablePython [