commit: d46cf053da6ab5b3ff07979c6fee2e15dc0329e4 Author: Bernd Waibel <waebbl-gentoo <AT> posteo <DOT> net> AuthorDate: Mon Apr 4 07:10:51 2022 +0000 Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org> CommitDate: Tue Oct 4 14:56:18 2022 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d46cf053
sci-libs/vtk: add Qt6 support - bump to EAPI 8 - enable support for sci-libs/cgnslib and dev-libs/libfmt - temp. drop ~arm64 KEYWORD until cgnslib is keyworded Bug: https://bugs.gentoo.org/864791 Signed-off-by: Bernd Waibel <waebbl-gentoo <AT> posteo.net> Closes: https://github.com/gentoo/gentoo/pull/26808 Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org> sci-libs/vtk/metadata.xml | 1 + .../{vtk-9.1.0-r2.ebuild => vtk-9.1.0-r3.ebuild} | 80 ++++++++++++++-------- 2 files changed, 54 insertions(+), 27 deletions(-) diff --git a/sci-libs/vtk/metadata.xml b/sci-libs/vtk/metadata.xml index 50a77432780d..b4654dc0d664 100644 --- a/sci-libs/vtk/metadata.xml +++ b/sci-libs/vtk/metadata.xml @@ -23,6 +23,7 @@ <flag name="kits">Build kits in addition to modules</flag> <flag name="offscreen">Offscreen rendering through OSMesa</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="tbb">Use <pkg>dev-cpp/tbb</pkg> to handle smp support</flag> <flag name="views">Building Views modules</flag> diff --git a/sci-libs/vtk/vtk-9.1.0-r2.ebuild b/sci-libs/vtk/vtk-9.1.0-r3.ebuild similarity index 91% rename from sci-libs/vtk/vtk-9.1.0-r2.ebuild rename to sci-libs/vtk/vtk-9.1.0-r3.ebuild index e9034c50bbb0..7b1132e4e548 100644 --- a/sci-libs/vtk/vtk-9.1.0-r2.ebuild +++ b/sci-libs/vtk/vtk-9.1.0-r3.ebuild @@ -1,7 +1,7 @@ # Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 # TODO: # - add USE flag for remote modules? Those modules can be downloaded @@ -37,21 +37,26 @@ S="${WORKDIR}/VTK-${PV}" LICENSE="BSD LGPL-2" SLOT="0/${MY_PV}" -KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-linux ~x86-linux" +# ~arm64 #864791 +KEYWORDS="~amd64 ~arm ~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 - mpi mysql odbc openmp postgres python qt5 +rendering tbb test +threads + 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 qt5 rendering views ) + 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 ) " @@ -64,13 +69,16 @@ RDEPEND=" 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 @@ -97,6 +105,11 @@ RDEPEND=" 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:= @@ -152,8 +165,6 @@ DOCS=( CONTRIBUTING.md README.md ) # based on default settings CHECKREQS_DISK_BUILD="4G" -# we want the EAPI 8 default -CMAKE_BUILD_TYPE=RelWithDebInfo pkg_pretend() { [[ ${MERGE_TYPE} != binary ]] && has openmp && tc-check-openmp @@ -180,6 +191,10 @@ pkg_pretend() { CHECKREQS_DISK_BUILD="14G" fi + if use qt6 && use qt5; then + ewarn "Both qt5 and qt6 USE flags have been selected. Using qt5!" + fi + check-reqs_pkg_setup } @@ -205,6 +220,10 @@ pkg_setup() { CHECKREQS_DISK_BUILD="14G" 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 @@ -220,11 +239,9 @@ src_prepare() { # 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: fmt is ommited, >=libfmt-8.1.0 needed - # Note: cgns is ommited, >=cgnslib-4.1 needed # Note: no valid mpi4py target found with system library - # TODO: cgns (4.1), cli11 (::guru), exprtk, ioss, libfmt (8.1.0) - local -a DROPS=( doubleconversion eigen expat freetype hdf5 jpeg jsoncpp + # 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 ) @@ -281,7 +298,6 @@ src_configure() { -DVTK_ENABLE_REMOTE_MODULES=OFF -DVTK_GROUP_ENABLE_Imaging=$(usex imaging "YES" "DONT_WANT") - -DVTK_GROUP_ENABLE_Qt=$(usex qt5 "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") @@ -289,17 +305,13 @@ src_configure() { -DVTK_INSTALL_SDK=ON - -DVTK_MODULE_ENABLE_VTK_vtkm="WANT" -DVTK_MODULE_ENABLE_VTK_IOGeoJSON="WANT" -DVTK_MODULE_ENABLE_VTK_IOOggTheora="WANT" + -DVTK_MODULE_ENABLE_VTK_fmt="YES" + -DVTK_MODULE_ENABLE_VTK_vtkm="WANT" - # TODO: update one cgnslib-4.1.1 is packaged - -DVTK_MODULE_USE_EXTERNAL_VTK_cgns=OFF # not packaged in Gentoo -DVTK_MODULE_USE_EXTERNAL_VTK_exprtk=OFF - # TODO: update once libfmt-8.1.0 has been packaged - -DVTK_MODULE_USE_EXTERNAL_VTK_fmt=OFF - # not pacakged in Gentoo -DVTK_MODULE_USE_EXTERNAL_VTK_ioss=OFF -DVTK_RELOCATABLE_INSTALL=ON @@ -459,11 +471,33 @@ src_configure() { ) fi - if use qt5; then + if use qt5 && use qt6; then + # prefer Qt5: https://wiki.gentoo.org/wiki/Project:qt/Policies mycmakeargs+=( - -DVTK_MODULE_ENABLE_VTK_GUISupportQt="WANT" + -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 @@ -572,14 +606,6 @@ src_install() { use python && python_optimize - # environment -# cat >> "${T}"/40${PN} <<- EOF || die -# VTK_DATA_ROOT=${EPREFIX}/usr/share/${PN}/data -# VTK_DIR=${EPREFIX}/usr/$(get_libdir)/${PN} -# VTKHOME=${EPREFIX}/usr -# EOF -# doenvd "${T}"/40${PN} - use web && webapp_src_install # Temporary!