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!

Reply via email to