commit: 6fa1c0a79bf4c37e14fe2a97f3c9ec6589e95548 Author: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org> AuthorDate: Tue May 2 12:52:40 2023 +0000 Commit: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org> CommitDate: Tue May 2 12:52:40 2023 +0000 URL: https://gitweb.gentoo.org/proj/sci.git/commit/?id=6fa1c0a7
sci-libs/vtk: remove duplicate Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org> ...0-freetype-2.10.3-provide-FT_CALLBACK_DEF.patch | 18 - ...r-compute_arch-if-CUDA-toolkit-11-is-used.patch | 32 - ...-IO-FFMPEG-support-FFmpeg-5.0-API-changes.patch | 141 ----- ...-or-scope-struct-names-to-avoid-conflicts.patch | 127 ---- .../files/vtk-9.1.0-adjust-to-find-binaries.patch | 25 - ...-avoid-naming-collision-with-netcdf-4.9.0.patch | 26 - sci-libs/vtk/metadata.xml | 42 -- sci-libs/vtk/vtk-9.1.0-r6.ebuild | 641 --------------------- 8 files changed, 1052 deletions(-) diff --git a/sci-libs/vtk/files/vtk-8.2.0-freetype-2.10.3-provide-FT_CALLBACK_DEF.patch b/sci-libs/vtk/files/vtk-8.2.0-freetype-2.10.3-provide-FT_CALLBACK_DEF.patch deleted file mode 100644 index b46748735..000000000 --- a/sci-libs/vtk/files/vtk-8.2.0-freetype-2.10.3-provide-FT_CALLBACK_DEF.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- VTK-8.2.0/ThirdParty/freetype/vtk_freetype.h.in.orig 2019-01-30 18:15:13.000000000 +0100 -+++ VTK-8.2.0/ThirdParty/freetype/vtk_freetype.h.in 2020-10-17 00:03:32.730820908 +0200 -@@ -20,6 +20,15 @@ - - #ifdef VTK_USE_SYSTEM_FREETYPE - # include <ft2build.h> -+/* FT_CALLBACK_DEF no longer exported since freetype-2.10.3 */ -+/* has been moved to <freetype/internal/compiler-macros.h> */ -+# ifndef FT_CALLBACK_DEF -+# ifdef __cplusplus -+# define FT_CALLBACK_DEF( x ) extern "C" x -+# else -+# define FT_CALLBACK_DEF( x ) static x -+# endif -+# endif /* FT_CALLBACK_DEF */ - #else - # include <vtkfreetype/include/ft2build.h> - #endif diff --git a/sci-libs/vtk/files/vtk-9.0.1-0001-fix-kepler-compute_arch-if-CUDA-toolkit-11-is-used.patch b/sci-libs/vtk/files/vtk-9.0.1-0001-fix-kepler-compute_arch-if-CUDA-toolkit-11-is-used.patch deleted file mode 100644 index 2514dac63..000000000 --- a/sci-libs/vtk/files/vtk-9.0.1-0001-fix-kepler-compute_arch-if-CUDA-toolkit-11-is-used.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 33d9b7ded14ce36e3f63810f3403623ee5c2059c Mon Sep 17 00:00:00 2001 -From: Bernd Waibel <waebbl-gen...@posteo.net> -Date: Sun, 10 Jan 2021 20:29:56 +0100 -Subject: [PATCH] fix kepler compute_arch if CUDA toolkit >=11 is used. - -Signed-off-by: Bernd Waibel <waebbl-gen...@posteo.net> ---- - .../vtkm/vtkvtkm/vtk-m/CMake/VTKmDeviceAdapters.cmake | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/VTKmDeviceAdapters.cmake b/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/VTKmDeviceAdapters.cmake -index ff0b2581..e565e783 100644 ---- a/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/VTKmDeviceAdapters.cmake -+++ b/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake/VTKmDeviceAdapters.cmake -@@ -229,8 +229,12 @@ if(VTKm_ENABLE_CUDA) - if(VTKm_CUDA_Architecture STREQUAL "fermi") - set(arch_flags --generate-code=arch=compute_20,code=sm_20) - elseif(VTKm_CUDA_Architecture STREQUAL "kepler") -- set(arch_flags --generate-code=arch=compute_30,code=sm_30 -- --generate-code=arch=compute_35,code=sm_35) -+ if(CMAKE_CUDA_COMPILER_VERSION VERSION_LESS 11.0) -+ set(arch_flags --generate-code=arch=compute_30,code=sm_30 -+ --generate-code=arch=compute_35,code=sm_35) -+ else() -+ set(arch_flags --generate-code=arch=compute_35,code=sm_35) -+ endif() - elseif(VTKm_CUDA_Architecture STREQUAL "maxwell") - set(arch_flags --generate-code=arch=compute_50,code=sm_50) - elseif(VTKm_CUDA_Architecture STREQUAL "pascal") --- -2.30.0 - diff --git a/sci-libs/vtk/files/vtk-9.0.3-IO-FFMPEG-support-FFmpeg-5.0-API-changes.patch b/sci-libs/vtk/files/vtk-9.0.3-IO-FFMPEG-support-FFmpeg-5.0-API-changes.patch deleted file mode 100644 index 276831d84..000000000 --- a/sci-libs/vtk/files/vtk-9.0.3-IO-FFMPEG-support-FFmpeg-5.0-API-changes.patch +++ /dev/null @@ -1,141 +0,0 @@ -From https://gitlab.kitware.com/ben.boeckel/vtk/-/commit/bad8f3e9d0aad03e8f2aff9524cb3c5f2d10ccaf -From: Ben Boeckel <ben.boec...@kitware.com> -Date: Fri, 28 Jan 2022 10:44:28 -0500 -Subject: [PATCH] IO/FFMPEG: support FFmpeg 5.0 API changes - -Fixes: #18445 ---- /dev/null -+++ b/Documentation/release/dev/ffmpeg-5.0.md -@@ -0,0 +1,3 @@ -+## FFmpeg 5.0 support -+ -+FFmpeg 5.0 API changes are now supported. ---- a/IO/FFMPEG/CMakeLists.txt -+++ b/IO/FFMPEG/CMakeLists.txt -@@ -6,7 +6,9 @@ vtk_module_find_package( - avformat - avcodec - avutil -- swscale) -+ swscale -+ OPTIONAL_COMPONENTS -+ swresample) - - set(classes - vtkFFMPEGWriter) -@@ -21,6 +23,17 @@ if (NOT FFMPEG_VERSION VERSION_LESS "3.1") - vtkFFMPEGVideoSource) - endif () - -+set(ffmpeg_libraries) -+if (NOT FFMPEG_VERSION VERSION_LESS "5.0") -+ if (NOT FFMPEG_swresample_FOUND) -+ message(FATAL_ERROR -+ "FFMPEG 5.0 requires the `swresample` library.") -+ endif () -+ -+ list(APPEND ffmpeg_libraries -+ FFMPEG::swresample) -+endif () -+ - vtk_module_add_module(VTK::IOFFMPEG - CLASSES ${classes}) - vtk_module_link(VTK::IOFFMPEG -@@ -28,4 +41,5 @@ vtk_module_link(VTK::IOFFMPEG - FFMPEG::avformat - FFMPEG::avcodec - FFMPEG::avutil -- FFMPEG::swscale) -+ FFMPEG::swscale -+ ${ffmpeg_libraries}) ---- a/IO/FFMPEG/vtkFFMPEGVideoSource.cxx -+++ b/IO/FFMPEG/vtkFFMPEGVideoSource.cxx -@@ -205,7 +205,7 @@ void vtkFFMPEGVideoSource::Initialize() - - this->Internal->VideoStream = fcontext->streams[this->Internal->VideoStreamIndex]; - -- AVCodec* dec = avcodec_find_decoder(this->Internal->VideoStream->codecpar->codec_id); -+ const AVCodec* dec = avcodec_find_decoder(this->Internal->VideoStream->codecpar->codec_id); - if (!dec) - { - vtkErrorMacro("Failed to find codec for video"); -@@ -271,7 +271,7 @@ void vtkFFMPEGVideoSource::Initialize() - { - this->Internal->AudioStream = fcontext->streams[this->Internal->AudioStreamIndex]; - -- AVCodec* adec = avcodec_find_decoder(this->Internal->AudioStream->codecpar->codec_id); -+ const AVCodec* adec = avcodec_find_decoder(this->Internal->AudioStream->codecpar->codec_id); - if (!adec) - { - vtkErrorMacro("Failed to find codec for audio"); ---- a/IO/FFMPEG/vtkFFMPEGWriter.cxx -+++ b/IO/FFMPEG/vtkFFMPEGWriter.cxx -@@ -21,10 +21,17 @@ - - extern "C" - { -+#include <libavcodec/avcodec.h> - #include <libavformat/avformat.h> - #include <libswscale/swscale.h> - } - -+#if LIBAVFORMAT_VERSION_MAJOR < 59 -+#define vtk_ff_const59 -+#else -+#define vtk_ff_const59 const -+#endif -+ - #if defined(LIBAVFORMAT_VERSION_MAJOR) && LIBAVFORMAT_VERSION_MAJOR >= 57 - extern "C" - { -@@ -51,7 +58,7 @@ private: - - AVFormatContext* avFormatContext; - -- AVOutputFormat* avOutputFormat; -+ vtk_ff_const59 AVOutputFormat* avOutputFormat; - - AVStream* avStream; - -@@ -115,15 +122,9 @@ int vtkFFMPEGWriterInternal::Start() - return 0; - } - -- if (this->Writer->GetCompression()) -- { -- // choose a codec that is easily playable on windows -- this->avOutputFormat->video_codec = AV_CODEC_ID_MJPEG; -- } -- else -- { -- this->avOutputFormat->video_codec = AV_CODEC_ID_RAWVIDEO; -- } -+ enum AVCodecID video_codec = this->Writer->GetCompression() -+ ? AV_CODEC_ID_MJPEG // choose a codec that is easily playable on windows -+ : AV_CODEC_ID_RAWVIDEO; - - // create the format context that wraps all of the media output structures - if (avformat_alloc_output_context2( -@@ -133,8 +134,8 @@ int vtkFFMPEGWriterInternal::Start() - return 0; - } - -- AVCodec* codec; -- if (!(codec = avcodec_find_encoder(this->avOutputFormat->video_codec))) -+ vtk_ff_const59 AVCodec* codec; -+ if (!(codec = avcodec_find_encoder(video_codec))) - { - vtkGenericWarningMacro(<< "Failed to get video codec."); - return 0; -@@ -155,7 +156,7 @@ int vtkFFMPEGWriterInternal::Start() - return 0; - } - -- this->avStream->codecpar->codec_id = static_cast<AVCodecID>(this->avOutputFormat->video_codec); -+ this->avStream->codecpar->codec_id = video_codec; - this->avStream->codecpar->codec_type = AVMEDIA_TYPE_VIDEO; - this->avStream->codecpar->width = this->Dim[0]; - this->avStream->codecpar->height = this->Dim[1]; --- -2.35.1 - diff --git a/sci-libs/vtk/files/vtk-9.1.0-Change-or-scope-struct-names-to-avoid-conflicts.patch b/sci-libs/vtk/files/vtk-9.1.0-Change-or-scope-struct-names-to-avoid-conflicts.patch deleted file mode 100644 index 24804ca2d..000000000 --- a/sci-libs/vtk/files/vtk-9.1.0-Change-or-scope-struct-names-to-avoid-conflicts.patch +++ /dev/null @@ -1,127 +0,0 @@ -From https://gitlab.kitware.com/vtk/vtk/-/commit/0322b938968eebee585ad7efb93bbdade7106355 - -https://bugs.gentoo.org/863038 -https://gitlab.kitware.com/vtk/vtk/-/issues/18638 - -From: Aron Helser <aron.hel...@kitware.com> -Date: Mon, 15 Aug 2022 10:06:13 -0400 -Subject: [PATCH 16/30] Change or scope struct names to avoid conflicts. - -(cherry picked from commit b79eb46bf5a4277cafc1ed2bd47fd3ffc28a5b3f) ---- a/IO/AMR/vtkAMRFlashReader.cxx -+++ b/IO/AMR/vtkAMRFlashReader.cxx -@@ -153,7 +153,7 @@ void vtkAMRFlashReader::ComputeStats( - - for (int i = 0; i < internal->NumberOfBlocks; ++i) - { -- Block& theBlock = internal->Blocks[i]; -+ FlashReaderBlock& theBlock = internal->Blocks[i]; - double* gridMin = theBlock.MinBounds; - if (gridMin[0] < min[0]) - { -@@ -193,7 +193,7 @@ int vtkAMRFlashReader::FillMetaData() - - for (int i = 0; i < this->Internal->NumberOfBlocks; ++i) - { -- Block& theBlock = this->Internal->Blocks[i]; -+ FlashReaderBlock& theBlock = this->Internal->Blocks[i]; - - // Start numbering levels from 0! - int level = this->Internal->Blocks[i].Level - 1; ---- a/IO/AMR/vtkAMRFlashReaderInternal.cxx -+++ b/IO/AMR/vtkAMRFlashReaderInternal.cxx -@@ -692,7 +692,7 @@ void vtkFlashReaderInternal::GetBlockMinMaxGlobalDivisionIds() - - for (int b = 0; b < this->NumberOfBlocks; b++) - { -- Block& B = this->Blocks[b]; -+ FlashReaderBlock& B = this->Blocks[b]; - - for (int d = 0; d < 3; d++) - { ---- a/IO/AMR/vtkAMRFlashReaderInternal.h -+++ b/IO/AMR/vtkAMRFlashReaderInternal.h -@@ -74,7 +74,7 @@ typedef struct tagFlashReaderSimulationParameters - double RedShift; - } FlashReaderSimulationParameters; - --typedef struct tagBlock -+typedef struct tagFlashReaderBlock - { - int Index; // Id of the block - int Level; // LOD level -@@ -88,7 +88,7 @@ typedef struct tagBlock - double Center[3]; // center of the block - double MinBounds[3]; // lower left of the bounding box - double MaxBounds[3]; // upper right of the bounding box --} Block; -+} FlashReaderBlock; - - typedef struct tagFlashReaderSimulationInformation - { -@@ -152,7 +152,7 @@ public: - FlashReaderSimulationInformation SimulationInformation; // CFD simulation - - // blocks -- std::vector<Block> Blocks; -+ std::vector<FlashReaderBlock> Blocks; - std::vector<int> LeafBlocks; - std::vector<std::string> AttributeNames; - ---- a/IO/AMR/vtkAMRVelodyneReader.cxx -+++ b/IO/AMR/vtkAMRVelodyneReader.cxx -@@ -219,7 +219,7 @@ int vtkAMRVelodyneReader::FillMetaData() - double spacing[3]; - for (int i = 0; i < this->Internal->nBlocks; i++) - { -- Block& theBlock = this->Internal->Blocks[i]; -+ vtkAMRVelodyneReaderInternal::Block& theBlock = this->Internal->Blocks[i]; - int level = theBlock.Level; - int id = theBlock.Index; - CalculateBlockDims(this->Internal->blockDims.data(), theBlock.isFull, dims); -@@ -243,7 +243,7 @@ vtkUniformGrid* vtkAMRVelodyneReader::GetAMRGrid(const int blockIdx) - { - return nullptr; - } -- Block& theBlock = this->Internal->Blocks[blockIdx]; -+ vtkAMRVelodyneReaderInternal::Block& theBlock = this->Internal->Blocks[blockIdx]; - int dims[3]; - CalculateBlockDims(this->Internal->blockDims.data(), theBlock.isFull, dims); - vtkUniformGrid* ug = vtkUniformGrid::New(); ---- a/IO/AMR/vtkAMRVelodyneReaderInternal.h -+++ b/IO/AMR/vtkAMRVelodyneReaderInternal.h -@@ -48,24 +48,20 @@ - //================================================================================ - // INTERNAL VELODYNE READER - //================================================================================ --typedef struct tagVelodyneSimParameters --{ -- double Time; -- int CycleTime; --} VelodneSimParameters; - --typedef struct tagBlock --{ -- int Index; -- int dSetLoc; -- int Level; -- double Origin[3]; -- bool isFull; -- bool isLeaf; --} Block; - class vtkAMRVelodyneReaderInternal - { - public: -+ typedef struct tagVelodyneBlock -+ { -+ int Index; -+ int dSetLoc; -+ int Level; -+ double Origin[3]; -+ bool isFull; -+ bool isLeaf; -+ } Block; -+ - vtkAMRVelodyneReaderInternal(); - ~vtkAMRVelodyneReaderInternal(); - void SetFileName(VTK_FILEPATH VTK_FUTURE_CONST char* fileName); diff --git a/sci-libs/vtk/files/vtk-9.1.0-adjust-to-find-binaries.patch b/sci-libs/vtk/files/vtk-9.1.0-adjust-to-find-binaries.patch deleted file mode 100644 index 10d6d251e..000000000 --- a/sci-libs/vtk/files/vtk-9.1.0-adjust-to-find-binaries.patch +++ /dev/null @@ -1,25 +0,0 @@ -From e59b8ff7b83cd6a58c226cb4f5d9661bcb29002b Mon Sep 17 00:00:00 2001 -From: Bernd Waibel <waebbl-gen...@posteo.net> -Date: Thu, 31 Mar 2022 08:05:17 +0200 -Subject: [PATCH] adjust to find binaries - -Add compatibility for qt-5.15.3 with no qtchooser installed. QtCore exports -Qt5::{qmake,moc,rcc} which we use to get the path for binaries. - -Signed-off-by: Bernd Waibel <waebbl-gen...@posteo.net> ---- a/GUISupport/QtQuick/qml/CMakeLists.txt -+++ b/GUISupport/QtQuick/qml/CMakeLists.txt -@@ -60,8 +60,8 @@ file(GENERATE - # Generate the qmltypes file for the VTK QML plugin - - # First, find the qmlplugindump executable --get_target_property(qt_core_location "Qt${vtk_qt_major_version}::Core" LOCATION) --get_filename_component(qt_bin_dir "${qt_core_location}" PATH) -+get_target_property(qt_qmake_location "Qt${vtk_qt_major_version}::qmake" LOCATION) -+get_filename_component(qt_bin_dir "${qt_qmake_location}" PATH) - if (APPLE) - get_filename_component(qt_bin_dir "${qt_bin_dir}" PATH) - endif () --- -2.35.1 - diff --git a/sci-libs/vtk/files/vtk-9.1.0-avoid-naming-collision-with-netcdf-4.9.0.patch b/sci-libs/vtk/files/vtk-9.1.0-avoid-naming-collision-with-netcdf-4.9.0.patch deleted file mode 100644 index 7549c240e..000000000 --- a/sci-libs/vtk/files/vtk-9.1.0-avoid-naming-collision-with-netcdf-4.9.0.patch +++ /dev/null @@ -1,26 +0,0 @@ -https://bugs.gentoo.org/851594 - -From b155e9716a1cf4a03948c01f49c4097e466da4f0 Mon Sep 17 00:00:00 2001 -From: Bernd Waibel <waebbl-gen...@posteo.net> -Date: Mon, 20 Jun 2022 07:07:19 +0200 -Subject: [PATCH] avoid naming collision with netcdf-4.9.0 - -The identifier has already been #defined with netcdf-4.9.0. To avoid -conflicts guard the declaration. - -Signed-off-by: Bernd Waibel <waebbl-gen...@posteo.net> ---- a/ThirdParty/exodusII/vtkexodusII/src/ex_utils.c -+++ b/ThirdParty/exodusII/vtkexodusII/src/ex_utils.c -@@ -1770,7 +1770,9 @@ void ex__compress_variable(int exoid, int varid, int type) - */ - - /* const int NC_SZIP_EC = 4; */ /* Selects entropy coding method for szip. */ -+#ifndef NC_SZIP_NN - const int NC_SZIP_NN = 32; /* Selects nearest neighbor coding method for szip. */ -+#endif - /* Even and between 4 and 32; typical values are 8, 10, 16, 32 */ - const int SZIP_PIXELS_PER_BLOCK = - file->compression_level == 0 ? 32 : file->compression_level; --- -2.35.1 - diff --git a/sci-libs/vtk/metadata.xml b/sci-libs/vtk/metadata.xml deleted file mode 100644 index d047994a2..000000000 --- a/sci-libs/vtk/metadata.xml +++ /dev/null @@ -1,42 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="project" proxied="proxy"> - <email>s...@gentoo.org</email> - <name>Gentoo Science Project</name> - </maintainer> - <maintainer type="person" proxied="yes"> - <email>waebbl-gen...@posteo.net</email> - <name>Bernd Waibel</name> - </maintainer> - <maintainer type="project" proxied="proxy"> - <email>proxy-ma...@gentoo.org</email> - <description>Gentoo Proxy Maintainers</description> - </maintainer> - <use> - <flag name="all-modules">Build all modules</flag> - <flag name="boost">Add support for boost</flag> - <flag name="cuda">Add support for CUDA</flag> - <flag name="freetype">Build support for font rendering</flag> - <flag name="gdal">Support for gdal formated data</flag> - <flag name="imaging">Building Imaging modules</flag> - <flag name="json">Support for json formatted data</flag> - <flag name="kits">Build kits in addition to modules</flag> - <flag name="las">Build support for LiDAR files</flag> - <flag name="logging">Build the logging module</flag> - <flag name="offscreen">Offscreen rendering through OSMesa</flag> - <flag name="openvdb">Build support to handle VDB data files</flag> - <flag name="pdal">Build support to handle point cloud data files</flag> - <flag name="pegtl">Use pegtl to build parsers</flag> - <flag name="qt6">Use Qt6 packages instead of Qt5</flag> - <flag name="rendering">Building Redering modules</flag> - <flag name="sdl">Enable SDL2 support for rendering modules</flag> - <flag name="tbb">Use <pkg>dev-cpp/tbb</pkg> to handle smp support</flag> - <flag name="views">Building Views modules</flag> - <flag name="vtkm">Build the vtkm accelerations modules</flag> - <flag name="web">Install web component</flag> - </use> - <upstream> - <remote-id type="github">Kitware/VTK</remote-id> - </upstream> -</pkgmetadata> diff --git a/sci-libs/vtk/vtk-9.1.0-r6.ebuild b/sci-libs/vtk/vtk-9.1.0-r6.ebuild deleted file mode 100644 index 47c9d92e8..000000000 --- a/sci-libs/vtk/vtk-9.1.0-r6.ebuild +++ /dev/null @@ -1,641 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# TODO: -# - add USE flag for remote modules? Those modules can be downloaded -# properly before building. -# - replace usex by usev once we bump to EAPI 8 - -PYTHON_COMPAT=( python3_10 ) -WEBAPP_OPTIONAL=yes -WEBAPP_MANUAL_SLOT=yes - -inherit check-reqs cmake cuda java-pkg-opt-2 python-single-r1 toolchain-funcs virtualx webapp - -# Short package version -MY_PV="$(ver_cut 1-2)" - -DESCRIPTION="The Visualization Toolkit" -HOMEPAGE="https://www.vtk.org/" -SRC_URI=" - https://www.vtk.org/files/release/${MY_PV}/VTK-${PV}.tar.gz - https://www.vtk.org/files/release/${MY_PV}/VTKData-${PV}.tar.gz - https://www.vtk.org/files/release/${MY_PV}/VTKDataFiles-${PV}.tar.gz - doc? ( https://www.vtk.org/files/release/${MY_PV}/vtkDocHtml-${PV}.tar.gz ) - examples? ( - https://www.vtk.org/files/release/${MY_PV}/VTKLargeData-${PV}.tar.gz - https://www.vtk.org/files/release/${MY_PV}/VTKLargeDataFiles-${PV}.tar.gz - ) - test? ( - https://www.vtk.org/files/release/${MY_PV}/VTKLargeData-${PV}.tar.gz - https://www.vtk.org/files/release/${MY_PV}/VTKLargeDataFiles-${PV}.tar.gz - ) -" -S="${WORKDIR}/VTK-${PV}" - -LICENSE="BSD LGPL-2" -SLOT="0/${MY_PV}" -KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-linux ~x86-linux" -# TODO: Like to simplifiy these. Mostly the flags related to Groups, plus -# maybe some flags related to Kits and a few other needed flags. -IUSE="all-modules +boost cuda debug doc examples +ffmpeg +gdal imaging java - logging mpi mysql odbc openmp postgres python qt5 qt6 +rendering tbb test - +threads tk video_cards_nvidia views web" - -RESTRICT="!test? ( test )" - -REQUIRED_USE=" - all-modules? ( - boost ffmpeg gdal imaging mysql odbc postgres rendering views - || ( qt5 qt6 ) - ) - cuda? ( video_cards_nvidia ) - java? ( rendering ) - python? ( ${PYTHON_REQUIRED_USE} ) - qt5? ( rendering ) - qt6? ( rendering ) - tk? ( rendering python ) - web? ( python ) -" - -RDEPEND=" - app-arch/lz4:= - app-arch/xz-utils - dev-db/sqlite:3 - dev-libs/double-conversion:= - dev-libs/expat - dev-libs/icu:= - dev-libs/jsoncpp:= - >=dev-libs/libfmt-8.1.1:= - dev-libs/libxml2:2 - dev-libs/libzip:= - dev-libs/pugixml - media-libs/freetype - media-libs/libogg - media-libs/libpng:= - media-libs/libtheora - media-libs/tiff:= - >=sci-libs/cgnslib-4.1.1:=[hdf5,mpi=] - sci-libs/hdf5:=[mpi=] - sci-libs/netcdf:=[mpi=] - sys-libs/zlib - media-libs/libjpeg-turbo - all-modules? ( sci-geosciences/liblas[gdal] ) - boost? ( dev-libs/boost:=[mpi?] ) - cuda? ( dev-util/nvidia-cuda-toolkit:= ) - ffmpeg? ( media-video/ffmpeg:= ) - gdal? ( sci-libs/gdal:= ) - java? ( >=virtual/jdk-1.8:* ) - mpi? ( - media-libs/glew:= - sys-cluster/openmpi[cxx,romio] - virtual/opengl - ) - mysql? ( dev-db/mariadb-connector-c ) - odbc? ( dev-db/unixODBC ) - postgres? ( dev-db/postgresql:= ) - python? ( ${PYTHON_DEPS} ) - qt5? ( - dev-qt/qtcore:5 - dev-qt/qtopengl:5 - dev-qt/qtquickcontrols2:5 - dev-qt/qtsql:5 - dev-qt/qtwidgets:5 - ) - qt6? ( - dev-qt/qtbase:6[gui,opengl,sql,widgets] - dev-qt/qtdeclarative:6[opengl] - dev-qt/qtshadertools:6 - ) - rendering? ( - media-libs/freeglut - media-libs/glew:= - media-libs/libsdl2 - sci-libs/proj:= - virtual/opengl - x11-libs/gl2ps - x11-libs/libXcursor - ) - tbb? ( <dev-cpp/tbb-2021.4.0:= ) - tk? ( dev-lang/tk:= ) - video_cards_nvidia? ( x11-drivers/nvidia-drivers[tools,static-libs] ) - views? ( - x11-libs/libICE - x11-libs/libXext - ) - web? ( ${WEBAPP_DEPEND} ) - python? ( - $(python_gen_cond_dep ' - boost? ( dev-libs/boost:=[mpi?,python?,${PYTHON_USEDEP}] ) - mpi? ( dev-python/mpi4py[${PYTHON_USEDEP}] ) - ') - gdal? ( sci-libs/gdal:=[python?,${PYTHON_SINGLE_USEDEP}] ) - ) -" - -DEPEND=" - ${RDEPEND} - dev-cpp/eigen - <dev-libs/pegtl-3 - dev-libs/utfcpp -" -BDEPEND=" - virtual/pkgconfig - mpi? ( app-admin/chrpath ) - test? ( - media-libs/glew - virtual/opengl - x11-libs/libXcursor - ) -" - -PATCHES=( - "${FILESDIR}"/${PN}-9.0.1-0001-fix-kepler-compute_arch-if-CUDA-toolkit-11-is-used.patch - "${FILESDIR}"/${PN}-8.2.0-freetype-2.10.3-provide-FT_CALLBACK_DEF.patch - "${FILESDIR}"/${PN}-9.0.3-IO-FFMPEG-support-FFmpeg-5.0-API-changes.patch - "${FILESDIR}"/${P}-adjust-to-find-binaries.patch - "${FILESDIR}"/${P}-avoid-naming-collision-with-netcdf-4.9.0.patch - "${FILESDIR}"/${P}-Change-or-scope-struct-names-to-avoid-conflicts.patch -) - -DOCS=( CONTRIBUTING.md README.md ) - -# based on default settings -CHECKREQS_DISK_BUILD="4G" - -pkg_pretend() { - [[ ${MERGE_TYPE} != binary ]] && has openmp && tc-check-openmp - - if [[ $(tc-is-gcc) && $(gcc-majorversion) = 11 ]] && use cuda ; then - # FIXME: better use eerror? - ewarn "GCC 11 is know to fail building with CUDA support in some cases." - ewarn "See bug #820593" - fi - - if use examples || use doc; then - CHECKREQS_DISK_BUILD="7G" - fi - - if use examples && use doc; then - CHECKREQS_DISK_BUILD="10G" - fi - - if use cuda; then - # NOTE: This should actually equal to (number of build jobs)*7G, - # as any of the cuda compile tasks can take up 7G! - # 10.2 GiB install directory, 6.4 GiB build directory with max. USE flags - CHECKREQS_MEMORY="7G" - CHECKREQS_DISK_BUILD="14G" - if [[ ${VTK_CUDA_ARCH} = native ]]; then - eerror "Using native CUDA arches is currently broken." - eerror "Please set it to one of the common arch names:" - eerror "kepler, maxwell, pascal, turing or ampere." - die "Please set VTK_CUDA_ARCH environment variable!" - fi - fi - - if use qt6 && use qt5; then - ewarn "Both qt5 and qt6 USE flags have been selected. Using qt5!" - fi - - check-reqs_pkg_setup -} - -pkg_setup() { - [[ ${MERGE_TYPE} != binary ]] && has openmp && tc-check-openmp - - if [[ $(tc-is-gcc) && $(gcc-majorversion) = 11 ]] && use cuda ; then - # FIXME: better use eerror? - ewarn "GCC 11 is know to fail building with CUDA support in some cases." - ewarn "See bug #820593" - fi - - if use examples || use doc; then - CHECKREQS_DISK_BUILD="7G" - fi - - if use examples && use doc; then - CHECKREQS_DISK_BUILD="10G" - fi - - if use cuda; then - CHECKREQS_MEMORY="7G" - CHECKREQS_DISK_BUILD="14G" - if [[ ${VTK_CUDA_ARCH} = native ]]; then - eerror "Using native CUDA arches is currently broken." - eerror "Please set it to one of the common arch names:" - eerror "kepler, maxwell, pascal, turing or ampere." - die "Please set VTK_CUDA_ARCH environment variable!" - fi - fi - - if use qt6 && use qt5; then - ewarn "Both qt5 and qt6 USE flags have been selected. Using qt5!" - fi - - check-reqs_pkg_setup - - use java && java-pkg-opt-2_pkg_setup - use python && python-single-r1_pkg_setup - use web && webapp_pkg_setup -} - -src_prepare() { - # If we have system libraries available use these and delete - # the respecting files in ${S}/ThirdParty to save some space. - # Note: The following libraries are marked as internal by kitware - # and can currently not unbundled: - # diy2, exodusII, fides, h5part, kissfft, loguru, verdict, vpic, - # vtkm, xdmf{2,3}, zfp - # Note: libharu is omitted: vtk needs an updated version (2.4.0) - # Note: no valid mpi4py target found with system library - # TODO: cli11 (::guru), exprtk, ioss - local -a DROPS=( cgns doubleconversion eigen expat fmt freetype hdf5 jpeg jsoncpp - libxml2 lz4 lzma netcdf ogg pegtl png pugixml sqlite theora tiff utf8 - zlib ) - use rendering && DROPS+=( gl2ps glew libproj ) - - local x - for x in ${DROPS[@]}; do - ebegin "Dropping bundled ${x}" - rm -r ThirdParty/${x}/vtk${x} || die - eend $? - done - unset x - - if use doc; then - einfo "Removing .md5 files from documents." - rm -f "${WORKDIR}"/html/*.md5 || die "Failed to remove superfluous hashes" - sed -e "s|\${VTK_BINARY_DIR}/Utilities/Doxygen/doc|${WORKDIR}|" \ - -i Utilities/Doxygen/CMakeLists.txt || die - fi - - cmake_src_prepare - - if use cuda; then - cuda_add_sandbox -w - cuda_src_prepare - fi - - if use test; then - ebegin "Copying data files to ${BUILD_DIR}" - mkdir -p "${BUILD_DIR}/ExternalData" || die - pushd "${BUILD_DIR}/ExternalData" >/dev/null || die - ln -sf ../../VTK-${PV}/.ExternalData/README.rst . || die - ln -sf ../../VTK-${PV}/.ExternalData/SHA512 . || die - popd >/dev/null || die - eend "$?" - fi -} - -src_configure() { -# TODO: check these and consider to use them -# VTK_BUILD_SCALED_SOA_ARRAYS -# VTK_DISPATCH_{AOS,SOA,TYPED}_ARRAYS - - local mycmakeargs=( - -DVTK_ANDROID_BUILD=OFF - -DVTK_IOS_BUILD=OFF - - -DVTK_BUILD_ALL_MODULES=$(usex all-modules ON OFF) - # we use the pre-built documentation and install these with USE=doc - -DVTK_BUILD_DOCUMENTATION=OFF - -DVTK_BUILD_EXAMPLES=$(usex examples ON OFF) - - -DVTK_ENABLE_KITS=ON - -DVTK_ENABLE_LOGGING=$(usex logging ON OFF) - # defaults to ON: USE flag for this? - -DVTK_ENABLE_REMOTE_MODULES=OFF - - -DVTK_GROUP_ENABLE_Imaging=$(usex imaging "YES" "DONT_WANT") - -DVTK_GROUP_ENABLE_Rendering=$(usex rendering "YES" "DONT_WANT") - -DVTK_GROUP_ENABLE_StandAlone="YES" - -DVTK_GROUP_ENABLE_Views=$(usex views "YES" "DONT_WANT") - -DVTK_GROUP_ENABLE_Web=$(usex web "YES" "DONT_WANT") - - -DVTK_INSTALL_SDK=ON - - -DVTK_MODULE_ENABLE_VTK_IOGeoJSON="WANT" - -DVTK_MODULE_ENABLE_VTK_IOOggTheora="WANT" - -DVTK_MODULE_ENABLE_VTK_fmt="YES" - -DVTK_MODULE_ENABLE_VTK_vtkm="WANT" - - # not packaged in Gentoo - -DVTK_MODULE_USE_EXTERNAL_VTK_exprtk=OFF - -DVTK_MODULE_USE_EXTERNAL_VTK_ioss=OFF - - -DVTK_RELOCATABLE_INSTALL=ON - - -DVTK_SMP_ENABLE_OPENMP=$(usex openmp ON OFF) - -DVTK_SMP_ENABLE_STDTHREAD=$(usex threads ON OFF) - -DVTK_SMP_ENABLE_TBB=$(usex tbb ON OFF) - - -DVTK_USE_CUDA=$(usex cuda ON OFF) - # use system libraries where possible - -DVTK_USE_EXTERNAL=ON - -DVTK_USE_MPI=$(usex mpi ON OFF) - -DVTK_USE_TK=$(usex tk ON OFF) - -DVTK_USE_X=ON - - -DVTK_WRAP_JAVA=$(usex java ON OFF) - -DVTK_WRAP_PYTHON=$(usex python ON OFF) - ) - - if use all-modules; then - mycmakeargs+=( - -DVTK_ENABLE_OSPRAY=OFF - # TODO: some of these are tied to the VTK_ENABLE_REMOTE_MODULES - # option. Check whether we can download them clean and enable - # them. - -DVTK_MODULE_ENABLE_VTK_DomainsMicroscopy="DONT_WANT" - -DVTK_MODULE_ENABLE_VTK_fides="DONT_WANT" - -DVTK_MODULE_ENABLE_VTK_FiltersOpenTURNS="DONT_WANT" - -DVTK_MODULE_ENABLE_VTK_IOADIOS2="DONT_WANT" - -DVTK_MODULE_ENABLE_VTK_IOFides="DONT_WANT" - -DVTK_MODULE_ENABLE_VTK_IOOpenVDB="DONT_WANT" - -DVTK_MODULE_ENABLE_VTK_IOPDAL="DONT_WANT" - -DVTK_MODULE_ENABLE_VTK_RenderingOpenVR="DONT_WANT" - - # available in ::guru, so avoid detection if installed - -DVTK_MODULE_USE_EXTERNAL_VTK_cli11=OFF - ) - fi - - # TODO: consider removing USE flags and enable by default - if use boost; then - mycmakeargs+=( - -DVTK_MODULE_ENABLE_VTK_InfovisBoost="WANT" - -DVTK_MODULE_ENABLE_VTK_InfovisBoostGraphAlgorithms="WANT" - ) - fi - - # TODO: checks this on updates of nvidia-cuda-toolkit and update - # the list of available arches if necessary, i.e. add new arches - # once they are released at the end of the list before all. - # See https://en.wikipedia.org/wiki/CUDA#GPUs_supported - if use cuda; then - local cuda_arch= - case ${VTK_CUDA_ARCH:-native} in - # we ignore fermi arch, because current nvidia-cuda-toolkit-11* - # no longer supports it - kepler|maxwell|pascal|volta|turing|ampere|all) - cuda_arch=${VTK_CUDA_ARCH} - ;; - native) - ewarn "If auto detection fails for you, please try and export the" - ewarn "VTK_CUDA_ARCH environment variable to one of the common arch" - ewarn "names: kepler, maxwell, pascal, volta, turing, ampere or all." - cuda_arch=native - ;; - *) - eerror "Please properly set the VTK_CUDA_ARCH environment variable to" - eerror "one of: kepler, maxwell, pascal, volta, turing, ampere, all" - die "Invalid CUDA architecture given: '${VTK_CUDA_ARCH}'!" - ;; - esac - ewarn "Using CUDA architecture '${cuda_arch}'" - - mycmakeargs+=( -DVTKm_CUDA_Architecture=${cuda_arch} ) - fi - - if use debug; then - mycmakeargs+=( - -DVTK_DEBUG_LEAKS=ON - -DVTK_DEBUG_MODULE=ON - -DVTK_DEBUG_MODLE_ALL=ON - -DVTK_ENABLE_SANITIZER=ON - -DVTK_EXTRA_COMPILER_WARNINGS=ON - -DVTK_WARN_ON_DISPATCH_FAILURE=ON - ) - if use rendering; then - mycmakeargs+=( -DVTK_OPENGL_ENABLE_STREAM_ANNOTATIONS=ON ) - fi - fi - - if use examples || use test; then - mycmakeargs+=( -DVTK_USE_LARGE_DATA=ON ) - fi - - # TODO: consider removing the USE flag and enable by default - if use ffmpeg; then - mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_IOFFMPEG="WANT" ) - fi - - # TODO: consider removing the USE flag and enable by default - if use gdal; then - mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_GeovisGDAL="WANT" ) - fi - - if ! use java && ! use python; then - # defaults to ON - mycmakeargs+=( -DVTK_ENABLE_WRAPPING=OFF ) - fi - - if use java; then - mycmakeargs+=( - -DCMAKE_INSTALL_JARDIR="share/${PN}" - -DVTK_ENABLE_WRAPPING=ON - ) - fi - - if use mpi; then - mycmakeargs+=( - -DVTK_GROUP_ENABLE_MPI="YES" - -DVTK_MODULE_ENABLE_VTK_IOH5part="WANT" - -DVTK_MODULE_ENABLE_VTK_IOParallel="WANT" - -DVTK_MODULE_ENABLE_VTK_IOParallelNetCDF="WANT" - -DVTK_MODULE_ENABLE_VTK_IOParallelXML="WANT" - -DVTK_MODULE_ENABLE_VTK_ParallelMPI="WANT" - -DVTK_MODULE_ENABLE_VTK_RenderingParallel="WANT" - -DVTK_MODULE_ENABLE_VTK_h5part="WANT" - -DVTKm_ENABLE_MPI=ON - ) - if use python; then - mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_ParallelMPI4Py="WANT" ) - fi - fi - - if use mysql; then - mycmakeargs+=( - -DVTK_MODULE_ENABLE_VTK_IOMySQL="WANT" - -DVTK_MODULE_ENABLE_VTK_IOSQL="WANT" - ) - fi - - if use odbc; then - mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_IOODBC="WANT" ) - fi - - if use postgres; then - mycmakeargs+=( - -DVTK_MODULE_ENABLE_VTK_IOPostgreSQL="WANT" - -DVTK_MODULE_ENABLE_VTK_IOSQL="WANT" - ) - fi - - if use python; then - mycmakeargs+=( - -DVTK_ENABLE_WRAPPING=ON - -DPython3_EXECUTABLE="${PYTHON}" - -DVTK_PYTHON_SITE_PACKAGES_SUFFIX="lib/${EPYTHON}/site-packages" - ) - fi - - if use qt5 && use qt6; then - # prefer Qt5: https://wiki.gentoo.org/wiki/Project:qt/Policies - mycmakeargs+=( - -DCMAKE_INSTALL_QMLDIR="/usr/$(get_libdir)/qt5/qml" - -DVTK_QT_VERSION="5" - ) - else - if use qt5; then - mycmakeargs+=( - -DCMAKE_INSTALL_QMLDIR="/usr/$(get_libdir)/qt5/qml" - -DVTK_QT_VERSION="5" - ) - elif use qt6; then - mycmakeargs+=( - -DCMAKE_INSTALL_QMLDIR="/usr/$(get_libdir)/qt6/qml" - -DVTK_QT_VERSION="6" - ) - else - mycmakeargs+=( -DVTK_GROUP_ENABLE_Qt="DONT_WANT" ) - fi - fi - - if use qt5 || use qt6; then - mycmakeargs+=( - -DVTK_GROUP_ENABLE_Qt:STRING="YES" - -DVTK_MODULE_ENABLE_VTK_GUISupportQt="WANT" - ) - if use mysql || use postgres; then - mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_GUISupportQtSQL="WANT" ) - fi - if use rendering; then - mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_RenderingQt="WANT" ) - fi - if use views; then - mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_ViewsQt="WANT" ) - fi - fi - - if use rendering || use test || use web || use all-modules; then - # needs patched version - mycmakeargs+=( -DVTK_MODULE_USE_EXTERNAL_VTK_libharu=OFF ) - fi - - if use rendering; then - mycmakeargs+=( -DVTK_MODULE_ENABLE_VTK_IOExportGL2PS="WANT" ) - fi - - if use test; then - ewarn "Testing requires VTK_FORBID_DOWNLOADS=OFF by upstream." - ewarn "Care has been taken to pre-download all required files." - ewarn "In case you find missing files, please inform me." - mycmakeargs+=( - -DVTK_BUILD_TESTING=ON - -DVTK_FORBID_DOWNLOADS=OFF - - -DVTK_MODULE_ENABLE_VTK_octree="WANT" - -DVTK_MODULE_ENABLE_VTK_ViewsCore="WANT" - - # available in ::guru, so avoid detection if installed - -DVTK_MODULE_USE_EXTERNAL_VTK_cli11=OFF - ) - else - mycmakeargs+=( - -DVTK_BUILD_TESTING=OFF - -DVTK_FORBID_DOWNLOADS=ON - ) - fi - - # FIXME: upstream provides 4 threading models, as of 9.1.0. These are - # sequential, stdthread, openmp and tbb. AFAICS all of them can be - # enabled at the same time. Sequential and Stdthread are enabled by - # default. The default selected type for the build is sequential. - # Assuming sequential < stdpthread < openmp < tbb wrt speed, although - # this is dependent on the actual scenario where threading is used. - if use tbb; then - mycmakeargs+=( -DVTK_SMP_IMPLEMENTATION_TYPE="TBB" ) - elif use openmp; then - mycmakeargs+=( -DVTK_SMP_IMPLEMENTATION_TYPE="OpenMP" ) - elif use threads; then - mycmakeargs+=( -DVTK_SMP_IMPLEMENTATION_TYPE="STDThread" ) - else - mycmakeargs+=( -DVTK_SMP_IMPLEMENTATION_TYPE="Sequential" ) - fi - - use java && export JAVA_HOME="${EPREFIX}/etc/java-config-2/current-system-vm" - - if use mpi; then - export CC=mpicc - export CXX=mpicxx - export FC=mpif90 - export F90=mpif90 - export F77=mpif77 - fi - - cmake_src_configure -} - -# FIXME: avoid nonfatal? -# see https://github.com/gentoo/gentoo/pull/22878#discussion_r747204043 -src_test() { -# nonfatal virtx cmake_src_test - virtx cmake_src_test -} - -src_install() { - use web && webapp_src_preinst - - # Stop web page images from being compressed - if use doc; then - HTML_DOCS=( "${WORKDIR}/html/." ) - fi - - cmake_src_install - - use java && java-pkg_regjar "${ED}"/usr/share/${PN}/${PN}.jar - - # install examples - if use examples; then - einfo "Installing examples" - mv -v {E,e}xamples || die - dodoc -r examples - docompress -x /usr/share/doc/${PF}/examples - - einfo "Installing datafiles" - insinto /usr/share/${PN}/data - doins -r "${S}/.ExternalData" - fi - - # with MPI runpath's are not deleted properly - if use mpi; then - chrpath -d "${ED}"/usr/$(get_libdir)/*.so.${PV} || die - fi - - use python && python_optimize - - use web && webapp_src_install - - # Temporary! - # Avoid collision with paraview. - # bug #793221 - rm -rf "${ED}"/usr/share/vtkm-1.5/VTKm{LICENSE.txt,README.md} || die -} - -# webapp.eclass exports these but we want it optional #534036 -pkg_postinst() { - use web && webapp_pkg_postinst - - if use examples; then - einfo "You can get more and updated examples at" - einfo "https://kitware.github.io/vtk-examples/site/" - fi -} - -pkg_prerm() { - use web && webapp_pkg_prerm -}