5b8117dd4a
- Fix build with GCC 13, add add_missing_cstdint.patch OBS-URL: https://build.opensuse.org/request/show/1077233 OBS-URL: https://build.opensuse.org/package/show/science/vtk?expand=0&rev=182
660 lines
21 KiB
RPMSpec
660 lines
21 KiB
RPMSpec
#
|
|
# spec file
|
|
#
|
|
# Copyright (c) 2023 SUSE LLC
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%global flavor @BUILD_FLAVOR@%{nil}
|
|
|
|
%bcond_with examples
|
|
%bcond_with documentation
|
|
%bcond_with testing
|
|
|
|
%ifarch %arm aarch64
|
|
%bcond_without gles
|
|
%else
|
|
%bcond_with gles
|
|
%endif
|
|
|
|
%define pkgname vtk
|
|
|
|
# pugixml in Leap 15.x is too old
|
|
# fmt in Leap 15.x is too old
|
|
# Need haru/hpdf version with HPDF_SHADING, i.e. >= 2.4.0
|
|
# PEGTL >= 3.0 not supported, https://gitlab.kitware.com/vtk/vtk/-/issues/18151
|
|
%if 0%{?suse_version} <= 1500
|
|
%bcond_with fmt
|
|
%bcond_with haru
|
|
%bcond_without pegtl
|
|
%bcond_with pugixml
|
|
%else
|
|
%bcond_without fmt
|
|
%bcond_without haru
|
|
%bcond_with pegtl
|
|
%bcond_without pugixml
|
|
%endif
|
|
|
|
%bcond_without gl2ps
|
|
%bcond_without java
|
|
|
|
%if "%{flavor}" == ""
|
|
%define my_suffix %{nil}
|
|
%define my_prefix %_prefix
|
|
%define my_bindir %_bindir
|
|
%define my_libdir %_libdir
|
|
%define my_incdir %_includedir
|
|
%define my_datadir %_datadir
|
|
%endif
|
|
|
|
%if "%{flavor}" == "openmpi2"
|
|
%define my_suffix -openmpi2
|
|
%define mpi_flavor openmpi2
|
|
%define mpiprefix %{_libdir}/mpi/gcc/%{mpi_flavor}
|
|
%endif
|
|
|
|
%if "%{flavor}" == "openmpi3"
|
|
%{?DisOMPI3}
|
|
%define my_suffix -openmpi3
|
|
%define mpi_flavor openmpi3
|
|
%define mpiprefix %{_libdir}/mpi/gcc/%{mpi_flavor}
|
|
%endif
|
|
|
|
%if "%{flavor}" == "openmpi4"
|
|
%{?DisOMPI4}
|
|
%define my_suffix -openmpi4
|
|
%define mpi_flavor openmpi4
|
|
%define mpiprefix %{_libdir}/mpi/gcc/%{mpi_flavor}
|
|
%endif
|
|
|
|
%{?mpi_flavor:%{bcond_without mpi}}%{!?mpi_flavor:%{bcond_with mpi}}
|
|
|
|
%if %{with mpi}
|
|
%define my_prefix %{mpiprefix}
|
|
%define my_bindir %{my_prefix}/bin
|
|
%define my_libdir %{my_prefix}/%{_lib}/
|
|
%define my_incdir %{my_prefix}/include/
|
|
%define my_datadir %{my_prefix}/share/
|
|
%endif
|
|
|
|
%define vtklib lib%{pkgname}1%{?my_suffix}
|
|
%define shlib %{vtklib}
|
|
|
|
Name: vtk%{?my_suffix}
|
|
Version: 9.2.6
|
|
Release: 0
|
|
%define series 9.2
|
|
Summary: The Visualization Toolkit - A high level 3D visualization library
|
|
# This is a variant BSD license, a cross between BSD and ZLIB.
|
|
# For all intents, it has the same rights and restrictions as BSD.
|
|
# http://fedoraproject.org/wiki/Licensing/BSD#VTKBSDVariant
|
|
License: BSD-3-Clause
|
|
Group: Productivity/Scientific/Other
|
|
URL: https://vtk.org/
|
|
Source: https://www.vtk.org/files/release/%{series}/VTK-%{version}.tar.gz
|
|
# FIXME See if packaging can be tweaked to accommodate python-vtk's devel files in a devel package later
|
|
# We need to use the compat conditionals here to avoid Factory's source validator from tripping up
|
|
Source99: vtk-rpmlintrc
|
|
# PATCH-FIX-OPENSUSE bundled_libharu_add_missing_libm.patch stefan.bruens@rwth-aachen.de -- Add missing libm for linking (gh#libharu/libharu#213)
|
|
Patch1: bundled_libharu_add_missing_libm.patch
|
|
# PATCH-FIX-OPENSUSE -- Fix building with Qt GLES builds
|
|
Patch7: 0001-Add-missing-guard-required-for-GLES-to-disable-stere.patch
|
|
# PATCH-FIX-UPSTREAM -- Fix building with Qt GLES builds
|
|
Patch8: 0001-Correct-GL_BACK-GL_BACK_LEFT-mapping-on-GLES.patch
|
|
# PATCH-FIX-UPSTREAM -- Fix building with Qt GLES builds
|
|
Patch9: 0002-Use-GL_DRAW_BUFFER0-instead-of-GL_DRAW_BUFFER-for-GL.patch
|
|
# PATCH-FIX-UPSTREAM
|
|
Patch10: 0001-GL_POINT_SPRITE-is-only-available-for-Compatibility-.patch
|
|
# PATCH-FIX-UPSTREAM -- Always create python package metadata (egg-info)
|
|
Patch17: 0001-Always-generate-Python-Metadata-when-WRAP_PYTHON-is-.patch
|
|
# PATCH-FIX-UPSTREAM -- Copy generated metadata to the right directory
|
|
Patch18: 0001-Consider-VTK_PYTHON_SITE_PACKAGES_SUFFIX-for-Python-.patch
|
|
# PATCH-FIX-UPSTREAM -- Add missing cstdint header required by GCC 13
|
|
Patch19: https://gitlab.kitware.com/vtk/vtk/-/commit/b1a09529f3ab.patch#/add_missing_cstdint.patch
|
|
BuildRequires: cgns-devel
|
|
BuildRequires: chrpath
|
|
BuildRequires: cmake >= 3.12
|
|
BuildRequires: double-conversion-devel
|
|
BuildRequires: fdupes
|
|
BuildRequires: gcc-c++
|
|
BuildRequires: hdf5-devel
|
|
BuildRequires: libboost_graph-devel
|
|
BuildRequires: libboost_graph_parallel-devel
|
|
BuildRequires: libboost_serialization-devel
|
|
BuildRequires: libjpeg-devel
|
|
BuildRequires: libmysqlclient-devel
|
|
BuildRequires: libtiff-devel
|
|
BuildRequires: python3-devel
|
|
BuildRequires: python3-numpy-devel
|
|
BuildRequires: python3-qt5-devel
|
|
BuildRequires: python3-setuptools
|
|
BuildRequires: utfcpp-devel
|
|
BuildRequires: cmake(Verdict)
|
|
BuildRequires: cmake(nlohmann_json)
|
|
BuildRequires: pkgconfig(Qt5Core)
|
|
BuildRequires: pkgconfig(Qt5OpenGL)
|
|
BuildRequires: pkgconfig(Qt5OpenGLExtensions)
|
|
BuildRequires: pkgconfig(Qt5Sql)
|
|
BuildRequires: pkgconfig(Qt5Widgets)
|
|
BuildRequires: pkgconfig(eigen3) >= 3.3.9
|
|
BuildRequires: pkgconfig(expat)
|
|
BuildRequires: pkgconfig(freetype2) >= 2.11.0
|
|
BuildRequires: pkgconfig(gl)
|
|
BuildRequires: pkgconfig(glew)
|
|
BuildRequires: pkgconfig(jsoncpp)
|
|
BuildRequires: pkgconfig(libavcodec)
|
|
BuildRequires: pkgconfig(libavdevice)
|
|
BuildRequires: pkgconfig(libavformat)
|
|
BuildRequires: pkgconfig(libavutil)
|
|
BuildRequires: pkgconfig(libiodbc)
|
|
BuildRequires: pkgconfig(liblz4) >= 1.8.0
|
|
BuildRequires: pkgconfig(libpng)
|
|
BuildRequires: pkgconfig(libswscale)
|
|
BuildRequires: pkgconfig(libxml-2.0)
|
|
BuildRequires: pkgconfig(netcdf)
|
|
BuildRequires: pkgconfig(proj) >= 5.0.0
|
|
BuildRequires: pkgconfig(sqlite3)
|
|
BuildRequires: pkgconfig(theora)
|
|
BuildRequires: pkgconfig(xt)
|
|
BuildRequires: pkgconfig(zlib)
|
|
%if %{with documentation}
|
|
BuildRequires: doxygen
|
|
BuildRequires: gnuplot
|
|
BuildRequires: graphviz
|
|
%endif
|
|
%if %{with fmt}
|
|
BuildRequires: fmt-devel > 9.0
|
|
%endif
|
|
%if %{with gl2ps}
|
|
BuildRequires: gl2ps-devel > 1.4.0
|
|
%endif
|
|
%if %{with haru}
|
|
BuildRequires: libharu-devel >= 2.4.0
|
|
%endif
|
|
%if %{with java}
|
|
BuildRequires: java-devel
|
|
%endif
|
|
%if %{with mpi}
|
|
BuildRequires: %{mpi_flavor}-devel
|
|
BuildRequires: hdf5-%{mpi_flavor}-devel
|
|
BuildRequires: libboost_mpi-devel
|
|
BuildRequires: netcdf-%{mpi_flavor}-devel
|
|
BuildRequires: python3-mpi4py-devel
|
|
%endif
|
|
%if %{with pugixml}
|
|
BuildRequires: pkgconfig(pugixml) >= 1.11
|
|
%endif
|
|
%if %{with pegtl}
|
|
BuildRequires: (pegtl-devel >= 2.0.0 with pegtl-devel < 3.0)
|
|
%endif
|
|
%if %{with testing}
|
|
BuildRequires: cli11-devel
|
|
BuildRequires: vtkdata = %{version}
|
|
%endif
|
|
|
|
%description
|
|
VTK is a software system for image processing, 3D graphics, volume
|
|
rendering and visualization. VTK includes many advanced algorithms
|
|
(e.g. surface reconstruction, implicit modelling, decimation) and
|
|
rendering techniques (e.g. hardware-accelerated volume rendering,
|
|
LOD control).
|
|
|
|
%package -n %{shlib}
|
|
Summary: The Visualization Toolkit - A high level 3D visualization library
|
|
Group: System/Libraries
|
|
Conflicts: libvtkcompat_gl1
|
|
Provides: %{name} = %{version}
|
|
|
|
%description -n %{shlib}
|
|
VTK is a software system for image processing, 3D graphics, volume
|
|
rendering and visualization. VTK includes many advanced algorithms
|
|
(e.g. surface reconstruction, implicit modelling, decimation) and
|
|
rendering techniques (e.g. hardware-accelerated volume rendering,
|
|
LOD control).
|
|
|
|
This package provides the shared libraries for VTK.
|
|
|
|
%package devel
|
|
Summary: VTK header files for building C++ code
|
|
Group: Development/Libraries/C and C++
|
|
Requires: %{name}-qt = %{version}
|
|
Requires: %{shlib} = %{version}
|
|
Requires: cgns-devel
|
|
Requires: cmake >= 3.4
|
|
Requires: double-conversion-devel
|
|
Requires: gcc-c++
|
|
%{?with_gl2ps:Requires: gl2ps-devel}
|
|
Requires: hdf5-devel
|
|
%{?with_mpi:Requires: hdf5-%{mpi_flavor}-devel}
|
|
Requires: libjpeg-devel
|
|
Requires: libmysqlclient-devel
|
|
Requires: libnetcdf_c++-devel
|
|
Requires: libtiff-devel
|
|
# not strictly necessary, but required by VTKs cmake files
|
|
Requires: python3-%{name} = %{version}
|
|
Requires: utfcpp-devel
|
|
%{?with_mpi:Requires: %{mpi_flavor}}
|
|
%{?with_mpi:Requires: %{mpi_flavor}-devel}
|
|
Requires: cmake(Verdict)
|
|
Requires: cmake(nlohmann_json)
|
|
Requires: pkgconfig(Qt5Core)
|
|
Requires: pkgconfig(Qt5OpenGL)
|
|
Requires: pkgconfig(Qt5OpenGLExtensions)
|
|
Requires: pkgconfig(Qt5Sql)
|
|
Requires: pkgconfig(Qt5Widgets)
|
|
Requires: pkgconfig(expat)
|
|
Requires: pkgconfig(freetype2)
|
|
Requires: pkgconfig(gl)
|
|
Requires: pkgconfig(jsoncpp)
|
|
Requires: pkgconfig(libavcodec)
|
|
Requires: pkgconfig(libavdevice)
|
|
Requires: pkgconfig(libavformat)
|
|
Requires: pkgconfig(libavutil)
|
|
Requires: pkgconfig(libiodbc)
|
|
Requires: pkgconfig(liblz4) >= 1.7.3
|
|
Requires: pkgconfig(liblzma)
|
|
Requires: pkgconfig(libpng)
|
|
Requires: pkgconfig(libswscale)
|
|
Requires: pkgconfig(netcdf)
|
|
Requires: pkgconfig(theora)
|
|
Requires: pkgconfig(zlib)
|
|
%if %{with pegtl}
|
|
Requires: (pegtl-devel >= 2.0.0 with pegtl-devel < 3.0)
|
|
%endif
|
|
%if %{with pugixml}
|
|
Requires: pkgconfig(pugixml) >= 1.11
|
|
%endif
|
|
Conflicts: vtk-compat_gl-devel
|
|
|
|
%description devel
|
|
VTK is a software system for image processing, 3D graphics, volume
|
|
rendering and visualization. VTK includes many advanced algorithms
|
|
(e.g. surface reconstruction, implicit modelling, decimation) and
|
|
rendering techniques (e.g. hardware-accelerated volume rendering,
|
|
LOD control).
|
|
|
|
This provides development libraries and header files required to
|
|
compile C++ programs that use VTK to do 3D visualisation.
|
|
|
|
%package java-devel
|
|
Summary: Develoment files for VTK Java bindings
|
|
Group: Development/Libraries/C and C++
|
|
Requires: %{name}-devel = %{version}
|
|
Requires: %{name}-java = %{version}
|
|
Requires: java-devel
|
|
Provides: %{name}-devel:%{my_libdir}/libvtkJava.so
|
|
|
|
%description java-devel
|
|
VTK is a software system for image processing, 3D graphics, volume
|
|
rendering and visualization. VTK includes many advanced algorithms
|
|
(e.g. surface reconstruction, implicit modelling, decimation) and
|
|
rendering techniques (e.g. hardware-accelerated volume rendering,
|
|
LOD control).
|
|
|
|
This provides the Java part of the development files.
|
|
|
|
%package devel-doc
|
|
Summary: VTK API documentation
|
|
Group: Documentation/HTML
|
|
|
|
%description devel-doc
|
|
VTK is a software system for image processing, 3D graphics, volume
|
|
rendering and visualization. VTK includes many advanced algorithms
|
|
(e.g. surface reconstruction, implicit modelling, decimation) and
|
|
rendering techniques (e.g. hardware-accelerated volume rendering,
|
|
LOD control).
|
|
|
|
This provides the VTK API documentation useful for developing
|
|
programs that use VTK to do 3D visualisation.
|
|
|
|
%package java
|
|
Summary: Java bindings for VTK
|
|
Group: Development/Libraries/Java
|
|
Requires: %{shlib} = %{version}
|
|
Conflicts: vtk-compat_gl-java
|
|
|
|
%description java
|
|
VTK is a software system for image processing, 3D graphics, volume
|
|
rendering and visualization. VTK includes many advanced algorithms
|
|
(e.g. surface reconstruction, implicit modelling, decimation) and
|
|
rendering techniques (e.g. hardware-accelerated volume rendering,
|
|
LOD control).
|
|
|
|
This package provides java bindings for VTK.
|
|
|
|
%package -n python3-%{name}
|
|
Summary: Python bindings for VTK
|
|
Group: Development/Libraries/Python
|
|
# explicitly require the correct mpi flavor, because the automatic
|
|
# rpm requirements generator for shared libs fails to distinguish
|
|
# between them -- boo#1187161
|
|
Requires: %{name}-qt = %{version}
|
|
Requires: %{shlib} = %{version}
|
|
%{?with_mpi:Requires: python3-mpi4py}
|
|
Requires: python3-numpy
|
|
Requires: python3-qt5
|
|
Conflicts: python3-vtk-compat_gl
|
|
|
|
%description -n python3-%{name}
|
|
VTK is a software system for image processing, 3D graphics, volume
|
|
rendering and visualization. VTK includes many advanced algorithms
|
|
(e.g. surface reconstruction, implicit modelling, decimation) and
|
|
rendering techniques (e.g. hardware-accelerated volume rendering,
|
|
LOD control).
|
|
|
|
This package provides python 3.x bindings for VTK.
|
|
|
|
%package qt
|
|
Summary: Qt libraries for VTK
|
|
Group: Development/Libraries/C and C++
|
|
Requires: %{shlib} = %{version}
|
|
Conflicts: vtk-compat_gl-qt
|
|
|
|
%description qt
|
|
VTK is a software system for image processing, 3D graphics, volume
|
|
rendering and visualization. VTK includes many advanced algorithms
|
|
(e.g. surface reconstruction, implicit modelling, decimation) and
|
|
rendering techniques (e.g. hardware-accelerated volume rendering,
|
|
LOD control).
|
|
|
|
This package provides the Qt libraries for VTK.
|
|
|
|
# The examples work with any VTK flavor, just package these once
|
|
%if "%{flavor}" == ""
|
|
%package examples
|
|
Summary: Examples for VTK
|
|
Group: Documentation/Other
|
|
Recommends: vtkdata = %{version}
|
|
Conflicts: vtk-compat_gl-examples
|
|
|
|
%description examples
|
|
VTK is a software system for image processing, 3D graphics, volume
|
|
rendering and visualization. VTK includes many advanced algorithms
|
|
(e.g. surface reconstruction, implicit modelling, decimation) and
|
|
rendering techniques (e.g. hardware-accelerated volume rendering,
|
|
LOD control).
|
|
|
|
This package contains many examples showing how to use VTK.
|
|
Examples are available in the C++, Tcl, Python and Java programming
|
|
languages.
|
|
%endif
|
|
|
|
%prep
|
|
%setup -n VTK-%{version}
|
|
%patch1 -p1
|
|
%if %{with gles}
|
|
%patch7 -p1
|
|
%patch8 -p1
|
|
%patch9 -p1
|
|
%patch10 -p1
|
|
%endif
|
|
%patch17 -p1
|
|
%patch18 -p1
|
|
%patch19 -p1
|
|
|
|
# Replace relative path ../../../../VTKData with %%{_datadir}/vtkdata
|
|
# otherwise it will break on symlinks.
|
|
grep -rl '\.\./\.\./\.\./\.\./VTKData' . | xargs -r perl -pi -e's,\.\./\.\./\.\./\.\./VTKData,%{_datadir}/vtkdata,g'
|
|
|
|
# Fix erroneous dependency on sqlite3 binary
|
|
sed -i -e '/set(vtk_sqlite_build_binary 1)/ s/.*/#\0/' CMakeLists.txt
|
|
|
|
# Allow testing also without external downloads - https://gitlab.kitware.com/vtk/vtk/-/issues/18692
|
|
sed -i -e '/set(vtk_enable_tests "OFF")/ s/.*/#\0/' CMakeLists.txt
|
|
|
|
%build
|
|
%if %{with mpi}
|
|
source %{mpiprefix}/bin/mpivars.sh
|
|
export CC=mpicc
|
|
export CXX=mpicxx
|
|
%else
|
|
export CC=gcc
|
|
export CXX=g++
|
|
%endif
|
|
|
|
export CFLAGS="%{optflags}"
|
|
export CXXFLAGS="%{optflags}"
|
|
|
|
# The %%cmake macro sets CMAKE_SKIP_RPATH=ON for Leap 15.x which causes build failures
|
|
# https://discourse.vtk.org/t/building-fails-generating-wrap-hierarchy-for-vtk-commoncore-unable-to-open-libvtkwrappingtools-so-1
|
|
# Disable ioss module for MPI flavors, fails to build with 9.1.0, see MR 8565.
|
|
%cmake \
|
|
-DCMAKE_INSTALL_PREFIX:PATH=%{my_prefix} \
|
|
-DCMAKE_INSTALL_LIBDIR:PATH=%{_lib} \
|
|
-DCMAKE_INSTALL_DOCDIR:PATH=%{_docdir}/%{name}-%{series} \
|
|
-DCMAKE_INSTALL_QMLDIR:PATH=%{my_libdir}/qt5/qml \
|
|
-DVTK_FORBID_DOWNLOADS:BOOL=ON \
|
|
-DVTK_PYTHON_OPTIONAL_LINK:BOOL=OFF \
|
|
-DVTK_BUILD_TESTING:BOOL=%{?with_testing:ON}%{!?with_testing:OFF} \
|
|
-DVTK_DATA_STORE:PATH=/usr/share/vtkdata/.ExternalData \
|
|
-DExternalData_NO_SYMLINKS:BOOL=ON \
|
|
-DVTK_BUILD_EXAMPLES:BOOL=%{?with_examples:ON}%{!?with_examples:OFF} \
|
|
-DVTK_BUILD_DOCUMENTATION:BOOL=%{?with_documentation:ON}%{!?with_documentation:OFF} \
|
|
-DCMAKE_NO_BUILTIN_CHRPATH:BOOL=ON \
|
|
%if 0%{?suse_version} <= 1500
|
|
-DCMAKE_SKIP_RPATH:BOOL=OFF \
|
|
-DCMAKE_SKIP_INSTALL_RPATH:BOOL=ON \
|
|
%endif
|
|
-DVTK_MODULE_ENABLE_VTK_TestingCore=WANT \
|
|
-DVTK_MODULE_ENABLE_VTK_TestingRendering=WANT \
|
|
-DVTK_MODULE_ENABLE_VTK_RenderingContextOpenGL2=YES \
|
|
-DVTK_MODULE_ENABLE_VTK_RenderingLICOpenGL2=%{?with_gles:NO}%{!?with_gles:YES} \
|
|
-DVTK_MODULE_ENABLE_VTK_RenderingFreeTypeFontConfig=YES \
|
|
-DVTK_CUSTOM_LIBRARY_SUFFIX="" \
|
|
-DVTK_GROUP_ENABLE_Imaging=WANT \
|
|
%if %{with mpi}
|
|
-DVTK_USE_MPI:BOOL=ON \
|
|
-DVTK_GROUP_ENABLE_MPI=WANT \
|
|
%else
|
|
-DVTK_USE_MPI:BOOL=OFF \
|
|
%endif
|
|
-DVTK_GROUP_ENABLE_Qt=WANT \
|
|
-DVTK_GROUP_ENABLE_Rendering=WANT \
|
|
-DVTK_GROUP_ENABLE_StandAlone=WANT \
|
|
-DVTK_GROUP_ENABLE_Views=WANT \
|
|
-DVTK_PYTHON_VERSION=3 \
|
|
-DVTK_WRAP_JAVA:BOOL=%{?with_java:ON}%{!?with_java:OFF} \
|
|
-DVTK_WRAP_PYTHON:BOOL=ON \
|
|
-DOpenGL_GL_PREFERENCE:STRING='GLVND' \
|
|
-DVTK_OPENGL_USE_GLES:BOOL=%{?with_gles:ON}%{!?with_gles:OFF} \
|
|
-DVTK_USE_EXTERNAL:BOOL=ON \
|
|
-DVTK_MODULE_USE_EXTERNAL_VTK_exprtk:BOOL=OFF \
|
|
-DVTK_MODULE_USE_EXTERNAL_VTK_fmt:BOOL=%{?with_fmt:ON}%{!?with_fmt:OFF} \
|
|
-DVTK_MODULE_USE_EXTERNAL_VTK_gl2ps=%{?with_gl2ps:ON}%{!?with_gl2ps:OFF} \
|
|
-DVTK_MODULE_USE_EXTERNAL_VTK_ioss:BOOL=OFF \
|
|
-DVTK_MODULE_USE_EXTERNAL_VTK_libharu=%{?with_haru:ON}%{!?with_haru:OFF} \
|
|
-DVTK_MODULE_USE_EXTERNAL_VTK_pugixml=%{?with_pugixml:ON}%{!?with_pugixml:OFF} \
|
|
-DVTK_MODULE_ENABLE_VTK_ioss:BOOL=%{!?with_mpi:WANT}%{?with_mpi:NO} \
|
|
-DVTK_MODULE_ENABLE_VTK_pegtl=%{?with_pegtl:YES}%{!?with_pegtl:NO} \
|
|
-DVTK_MODULE_ENABLE_VTK_zfp:BOOL=NO \
|
|
%{nil}
|
|
|
|
%cmake_build
|
|
|
|
# Remove executable bits from sources (some of which are generated)
|
|
find . -name \*.c -o -name \*.cxx -o -name \*.h -o -name \*.hxx -o -name \*.gif -exec chmod -x "{}" "+"
|
|
|
|
%install
|
|
%cmake_install
|
|
|
|
%if %{with examples}
|
|
# List of executable examples
|
|
cat > examples.list << EOF
|
|
AmbientSpheres
|
|
Arrays
|
|
BalloonWidget
|
|
BandedContours
|
|
Cone
|
|
Cone2
|
|
Cone3
|
|
Cone4
|
|
Cone5
|
|
Cone6
|
|
Cube
|
|
Cylinder
|
|
Delaunay3D
|
|
Delaunay3DAlpha
|
|
DiffuseSpheres
|
|
DumpXMLFile
|
|
FilledContours
|
|
FixedPointVolumeRayCastMapperCT
|
|
GPURenderDemo
|
|
Generate2DAMRDataSetWithPulse
|
|
Generate3DAMRDataSetWithPulse
|
|
GenerateCubesFromLabels
|
|
GenerateModelsFromLabels
|
|
HierarchicalBoxPipeline
|
|
ImageSlicing
|
|
LabeledMesh
|
|
Medical1
|
|
Medical2
|
|
Medical3
|
|
Medical4
|
|
MultiBlock
|
|
ParticleReader
|
|
RGrid
|
|
SGrid
|
|
Slider
|
|
Slider2D
|
|
SpecularSpheres
|
|
TubesWithVaryingRadiusAndColors
|
|
finance
|
|
EOF
|
|
|
|
# Install examples
|
|
%if "%{flavor}" == ""
|
|
for file in `cat examples.list`; do
|
|
install -p build/bin/$file %{buildroot}%{my_bindir}
|
|
done
|
|
perl -pi -e's,^,%{my_bindir}/,' examples.list
|
|
%endif
|
|
|
|
%endif
|
|
|
|
# Move licenses to licensedir instead of %%{my_datadir}/licenses
|
|
mkdir -p %{buildroot}%{_licensedir}
|
|
mv %{buildroot}%{my_datadir}/licenses/VTK %{buildroot}%{_licensedir}/%{name}
|
|
|
|
%if ! %{with mpi}
|
|
# Generate and install python distribution metadata
|
|
pushd build/%{_lib}/python%{python3_version}/site-packages/
|
|
python3 setup.py install_egg_info -d %{buildroot}%{python3_sitearch}
|
|
popd
|
|
%endif
|
|
|
|
%fdupes %{buildroot}
|
|
|
|
%check
|
|
# Make sure the python library is at least importable
|
|
%if %{with mpi}
|
|
source %{mpiprefix}/bin/mpivars.sh
|
|
export _PYTHON_MPI_PREFIX=`echo %{buildroot}%{my_libdir}/py*/site-packages/`
|
|
export PYTHONPATH=$_PYTHON_MPI_PREFIX:$PYTHONPATH
|
|
%endif
|
|
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{buildroot}%{my_libdir}
|
|
export PYTHONPATH=$PYTHONPATH:%{buildroot}%{python3_sitearch}
|
|
PYTHONDONTWRITEBYTECODE=1 python3 -c "import vtk"
|
|
find %{buildroot} . -name vtk.cpython-3*.pyc -print -delete # drop unreproducible time-based .pyc file
|
|
# Unittests
|
|
%if %{with testing}
|
|
%ctest
|
|
%endif
|
|
|
|
%post -n %{shlib} -p /sbin/ldconfig
|
|
%postun -n %{shlib} -p /sbin/ldconfig
|
|
%if %{with java}
|
|
%post java -p /sbin/ldconfig
|
|
%postun java -p /sbin/ldconfig
|
|
%endif
|
|
%post qt -p /sbin/ldconfig
|
|
%postun qt -p /sbin/ldconfig
|
|
%post -n python3-%{name} -p /sbin/ldconfig
|
|
%postun -n python3-%{name} -p /sbin/ldconfig
|
|
|
|
%files -n %{shlib}
|
|
%license Copyright.txt
|
|
%{my_libdir}/lib*.so.*
|
|
%exclude %{my_libdir}/libvtk*Qt*.so.*
|
|
%exclude %{my_libdir}/libvtk*Python*.so.*
|
|
|
|
%files devel
|
|
%license Copyright.txt
|
|
%license %{_datadir}/licenses/%{name}/
|
|
%if %{without gles}
|
|
%{my_bindir}/vtkProbeOpenGLVersion
|
|
%endif
|
|
%{my_bindir}/%{pkgname}WrapHierarchy
|
|
# Should go into java-devel, but referenced by VTK-targets*.cmake
|
|
%{my_bindir}/%{pkgname}WrapJava
|
|
%{my_bindir}/%{pkgname}ParseJava
|
|
%{my_bindir}/%{pkgname}WrapPython
|
|
%{my_bindir}/%{pkgname}WrapPythonInit
|
|
%{my_libdir}/*.so
|
|
%{my_libdir}/vtk-%{series}
|
|
%{?with_mpi: %dir %{my_libdir}/cmake/}
|
|
%{my_libdir}/cmake/%{pkgname}-%{series}/
|
|
%{my_incdir}/%{pkgname}-%{series}/
|
|
# VTK JNI
|
|
%exclude %{my_libdir}/libvtkJava.so
|
|
%exclude %{my_libdir}/cmake/%{pkgname}-%{series}/VTKJava-*.cmake
|
|
|
|
%if %{with documentation}
|
|
%files devel-doc
|
|
%license Copyright.txt
|
|
%{_docdir}/%{name}-%{series}
|
|
%endif
|
|
|
|
%if %{with java}
|
|
%files java
|
|
%license Copyright.txt
|
|
# VTK JNI
|
|
%{my_libdir}/java/
|
|
|
|
%files java-devel
|
|
%{my_libdir}/libvtkJava.so
|
|
%{my_libdir}/cmake/%{pkgname}-%{series}/VTKJava-*.cmake
|
|
%endif
|
|
|
|
%files -n python3-%{name}
|
|
%license Copyright.txt
|
|
%{my_bindir}/%{pkgname}python
|
|
%{my_libdir}/libvtk*Python*.so.*
|
|
%if %{with mpi}
|
|
%{my_bindir}/p%{pkgname}python
|
|
%{my_libdir}/py*
|
|
%else
|
|
%{python3_sitearch}/vtk.py
|
|
%{python3_sitearch}/vtk-%{version}*-info
|
|
%{python3_sitearch}/vtkmodules
|
|
%endif
|
|
|
|
%files qt
|
|
%license Copyright.txt
|
|
%{my_libdir}/libvtk*Qt*.so.*
|
|
%if %{with mpi}
|
|
%dir %{my_libdir}/qt5
|
|
%{my_libdir}/qt5/qml
|
|
%else
|
|
%{_libqt5_archdatadir}/qml
|
|
%endif
|
|
|
|
%if %{with examples}
|
|
%if "%{flavor}" == ""
|
|
%files examples -f examples.list
|
|
%license Copyright.txt
|
|
%endif
|
|
%endif
|
|
|
|
%changelog
|