vtk/vtk-compat_gl.spec
Stanislav Brabec 5a0ed0f332 Accepting request 529129 from home:badshah400:branches:science
- Drop vtk-compat_gl-rpmlintrc: openSUSE:Factory bots don't accept
  conditional sources and one rpmlintrc file is sufficient for
  both main and linked packages anyway.
- do not exclude libViewsGeovisJava.so from devel package 
  This library is required for development.
- package vtk binary in devel package.
- VTKTargets-debug.cmake tests for the existance of the library (line 3394)
  and the binary (line 3404) and causes an error if the files do
  not exist
- Remove the various subpackage Requires from the devel package
  again. The qt subpackage contains a Qt Designer plugin and no
  dependency at all. Package the vtkWrap{Tcl,Java,Python} wrapper
  generators in the devel package, as these are useless without
  the vtk headers files.
- Fix description/summary of vtk-qt subpackage
- devel subpackage should require -tcl, -java and -qt subpackages
  since the *.cmake files refer to files in those subpackages
- Add 0001-Allow-compilation-on-GLES-platforms.patch
  The QOpenGLFunctions_3_2_Core class providing the framebuffer
  blit functions is not available on GLES 2 builds of Qt5. Let Qt
  handle the framebuffer blit, and just use the GLES/GL subset
  provided by QOpenGLFunctions for the remainder.
  Fix for https://gitlab.kitware.com/vtk/vtk/issues/17113
- Update to version 8.0.1:  
  * Fix QVTKOpenGLWidget rendering issues on Windows machines with
    certain Intel graphics chips. This was a significant issue
    that broke all rendering and resulted in a black screen.
  * Fix data array range caching per finite component which would
    otherwise cause considerable slow-downs when using data
    arrays.
  * Fix button and slider widgets to work in multi-viewport render
    windows. Without this change the widgets would either be
    placed in the wrong viewport or be non-interactive completely.
  * Fix image XY sampling in the volume mapper when depth peeling
    is enabled.
  * Fix z-fighting issues with dual depth peeling between two
    layers of geometry that are too close.
  * Fix crash when reparenting the QVTKWidget to a different
    window. The application would crash due to lack of OpenGL
    resources for the reparented widget.
- Suppress romlint error about shlib-policy-name-error for
  %{name}-java -- libvtkViewsGeovisJava.so packaged therein
  is not a versioned shared lib, and only used by vtk's java
  bindings, so there is no point in enforcing the shared lib
  packaging policy for this subpackage.
- Move libvtkViewsGeovisJava.so to the %{name}-java subpackage,
  this is not really a devel file.
- Fix RPM groups. Use POSIX-compliant find call.
- Implement shared library packaging policy for vtk:
  + Rename %{name} to %{shlib}.
  + Move all shared library objects to %{shlib} package.
  + Remove no longer needed Requires from %{name}-devel package;
    e.g.: %{name}-java contains the java binaries and jar object
    now, and no longer the lib*Java.so file which has been moved
    into %{shlib}.
  + Adapt conflicts for vtk-compat_gl accordingly.
  + Install libraries to /usr/lib(64) instead of
    /usr/lib(64)/vtk.
  + Do away with python3-%{name}-qt subpackage and
    Obsolete/Provide it from %{shlib} as it only contained a
    shared lib object.
- Use system mpi4py; add BuildRequires on python3-mpi4py.
- liblz4 >= 1.7.3 now required (since version 8.0); adapt
  BuildRequires accordingly.
- Trim descriptions and rectify RPM groups.
- add liblz4-devel and libharu-devel also to Requires of devel package
  (fixes linking errors in other packages)
- Update to version 8.0.0: 
  * Read about changes here: https://blog.kitware.com/vtk-8-0-0/
  * API changes:
    http://www.vtk.org/Wiki/VTK/API_Changes_7_1_0_to_8_0_0
- Add BuildRequires on liblz4-devel, libharu-devel, mandatory
  requirements for version 8.0.0.
- Run make DoxygenDoc to generate documentation.
- add a separate package vtk-compat_gl compile using rendering backend
  OpenGL for systems without brand new graphic cards
- default package vtk still uses new rendering backend default OpenGL2
- Update to version 7.1.0: See news item at
  https://blog.kitware.com/kitware-plans-to-spotlight-new-vtk-and-paraview-releases-at-sc16/
- Drop patch vtk-gcc6.patch, upstreamed.
- Turn off usage of system DIY2, this library is not yet packaged
  for openSUSE.
- Disable mkg3states binary also for openSUSE:Leap versions.
- Update file list for upstream installation changes.
- Use bundled gl2ps, as it no longer builds against the system
  one (requires svn trunk version of gl2ps).
- CMake >= 3.4 is now required (earlier versions don't support
  NAMES_PER_DIR in find_program).
- Enable use of SYSTEM_LIBRARIES for openSUSE:Leap versions too
  (only 13.2 requires this turned off as of now).
- Refresh vtk-Rinterface-uintptr_t.patch to fix further issues
  with uintptr_t redefinition by defining the HAVE_UINTPTR_T
  macro using cmake functions; removing the #include of stdint.h
  is not needed any more since we will not be using the defs from
  Rinterface.h anyway (boo#985386). Although this really causes a
  build failure for the i586 arch, where the redefinition of
  unitptr_t in Rinterface.h conflicts with the stdint.h defintion,
  the patch is applied generally because the redefinition is not
  needed in any case. Patch sent upstream.
- Add freetype2-devel as a Requires for vtk-devel.
- Apply vtk-gcc6.patch also to python-vtk.
- Fixed RPATH error for Factory by passing the option
  CMAKE_NO_BUILTIN_CHRPATH:BOOL=ON to cmake. 
- add vtk-gcc6.patch: Fix build with gcc 6
- skip RPATH setting
- openmpi-libs will be installed with openmpi-devel if necessary.
  No such package on openSUSE 13.1.
- Add disk constraints 
- Update to version 7.0.0:
  + See https://blog.kitware.com/vtk-7-0-0/ for a detailed
    article describing all the changes in this version.
- Add vtk-Rinterface-uintptr_t.patch to fix building: uintptr_t
  is already defined in the R headers, uintptr_t definition in
  <stdint.h> conflicts with the R definition and causes builds to
  fail. This patch fixes the problem by commenting out the call
  to include stdint.h (it was only being used for this solitary
  symbol).
- Use python 3 for building, rename python- subpackages
  accordingly to python3-.
- Update file lists in accordance with added/dropped binaries
  upstream; affects vtk-examples, vtk-devel.
- Drop conditionals referencing outdated openSUSE version 12.3.
- Update rpmlintrc file to suppress rpmlint warnings for
  "no-manual-page-for-binary": upstream does not supply manuals
  for its binaries and does not plan to.
- vtkdata should be a Recommends for vtk-examples, not Requires.
- Update to version 6.3.0:
  - See list of changes at
    http://www.vtk.org/Bug/changelog_page.php?version_id=118
    or blog post at
    http://www.kitware.com/blog/home/post/963.
- python-vtk also needs openmpi-devel at runtime.
- python-vtk should have Requires on openmpi-libs to enable its
  parallelized modules to work.
- use qt5 for factory 
- Add libxml2-devel/netcdf-devel/libnetcdf_c++-devel Requires to vtk-devel
- Add jsoncpp-devel Requires to vtk-devel (for openSUSE > 13.2):
  vtkjsoncpp.cmake has
  set(vtkjsoncpp_LIBRARIES "/usr/lib64/libjsoncpp.so").
- Update to version 6.2.0:
  + See http://www.kitware.com/blog/home/post/858 for a list of
    changes.
- Drop patches incorporated upstream:
  + vtk-install-missing-modules.patch
  + vtk-Mesa10.3-build-failures.patch
  + vtk-system.patch.
- Update filelist to incorporate new files installed by upstream.
- Use system hdf5 and netcdf on all openSUSE versions.
- Build on openSUSE > 13.2 with system libraries ON (except
  for libproj4); all required depndencies for this purpose are
  now in Factory.
- Add rpmlintrc file to suppress
  "devel-files-in-non-devel-package" warning; python-vtk needs
  these devel files for its own functioning.
- Add MPI support
- Add vtk-Mesa10.3-build-failures.patch to workaround build
  failures when compiling against Mesa >= 10.3; patch taken from
  upstream git and rebased; applied only for openSUSE >= 13.2.
- Update to version 6.1.0:
  + See http://www.kitware.com/news/home/browse/502 for a list of
    changes
- Rebase patches:
  + vtk-system.patch
  + vtk-install-missing-modules.patch
- Packaging changes:
  + Re-enable R bindings for 13.1 and above
  + Turn off building test modules for now as it leads to build
    issues (DBUILD_TESTING:BOOL=OFF)
  + Turn off usage of system libraries for now
    (DVTK_USE_SYSTEM_LIBRARIES:BOOL=OFF), as usage of system
    libraries now introduces dependency on json-cpp which is not
    available for openSUSE (yet)
  + Python modules are now installed by vtk's cmake script;
    hence, pass system python dirs to cmake by using cmake
    variable DVTK_INSTALL_PYTHON_MODULE_DIR instead of
    DVTK_PYTHON_SETUP_ARGS used previously
  + vtkpython is now installed by cmake script automatically;
    hence remove the manual copying to /usr/bin used earlier
  + Python libraries are now stripped automatically on install;
    chrpath no longer needed on these
  + Python object files are now installed in
    %python_sitearch
  + Skip examples no longer installed as a result of test modules
    being turned off
  + Install new binaries (mkg3states) and bundled data files
    (/usr/share/vtk-6.1)
  + Cleanup spec file:
    - Remove support for EOL openSUSE versions (12.1 and earlier)
      by dropping appropriate conditionals
    - Fix minor formatting issues.
- Disable R bindings for Factory, since it causes weird build
  failures in openSUSE:Factory, (strangely no failures in devel
  project) until the reason behind the failure is found and fixed. 
- Update to version 6.0.0:
  + Lengthy list of changes, see 
    http://www.kitware.com/blog/home/post/515 for a summary
- Also build R language bindings, introduces dependency on R-base
- Drop patches for already being incorporated upstream:
  + vtk-pythondestdir.patch
  + vtk-sqldatabaseschema.patch
  + vtk-soversion2.patch
- Rebase patches for updated version:
  + vtk-fix-file-contains-date-time.patch
  + vtk-system.patch
- Add vtk-install-missing-modules.patch to install cmake modules
  missed by the upstream packaging, will be required esp. when
  we will be able to use the system installed vtk to build
  paraview in the future; patch taken from Fedora
- Remove unused cmake variables during configuration
- Install all examples (several more added in current version)
- Install vtk.conf file in /etc/ld.so.conf.d to enable vtk find
  its libraries
- Testing binaries are no longer installed separately.
- Update to version 5.10.1:
  + Fix netCDF symbol mangling, which allows applications to use
    an external netCDF library and VTK's internal copy
    simultaneously
  + Fixes for STL and SLC readers that prevent crashes and file
    handle resource exhaustion
  + Fix compilation on FreeBSD operating system
  + A handful of fixes in VTK's Qt interface kit
  + Fixes for interpreted language wrapping including a bug which
    prevented java wrapping of VTK on power PC macs, and
    compatibility with Tcl 8.6
- Add vtk-fix-file-contains-date-time.patch to fix rpmlint
  warning about a packaged file containing DATE and TIME.
- build python-qt and java binding for openSUSE version higher than
  11.2 which fixes build on SLE 11
- Update to version 5.10.0: See
  http://www.kitware.com/news/home/browse/408
  for a detailed list of changes
- Dropped patches:
  + vtk-boost149.patch: implemented upstream
- Patch vtk-sqldatabaseschema.patch now only required for
  openSUSE 11.4
- Minor rebasing of existing patches so they apply cleanly
- No longer use verbose make.
- Remove openmotif dependency 
- Use the gl2ps and hdf5 system libraries for building in openSUSE > 12.1.
- Updated Mesa and XOrg dependencies for openSUSE > 12.1.
- Removed the following dependencies which are not needed:
  MesaGLw-devel, freeglut-devel, gcc-java, libgcj-devel and sqlite3-devel.
- Removed postgresql-devel dependency (wasn't enabled and fails to compile
  anyway - added a note about it).
- Removed build time references so build-compare can do its work.
- Compile the package out-of-source.
- Use the generic "VTK_USE_SYSTEM_LIBRARIES" cmake variable for enabling the
  use of system libraries instead of doing it with a per package variable.
- Fix compilation with boost 1.49 and enable boost again 
- Cleaned up spec file formatting
- Build and package python-qt (python-sip) bindings
- Link libraries to library directory instead of moving them to
  avoid breaking the find vtk cmake macro
- Force enable of various additional optional components
- Removed redundant packages (readme and logo) from backends
- Make the devel package depend on the backends, since it does not
  work properly without them
- Disable boost building on factory due to an icompatibility with
  boosswt 1.4.9+.  See http://vtk.org/Bug/view.php?id=12988
- Reverted the source file change since it didn't work
- Changed the license text a little
- Switched to approved license text (fix for RPMLINT warning)
- Escaped some macros in comments (fix for RPMLINT warnings)
- Made the source file a tiny bit easier to use
- updated to 5.8.0
- removed patches:
* vtk-Balloon-Representation.patch (applied in upstream)
* vtk-gcc43.patch (applied in upstream)
* vtk-gcc46.patch (applied in upstream)
* vtk-libpng14.patch (applied in upstream)
* vtk-python27-compat.patch (applied in upstream)
* vtk-soversion.patch (applied in upstream)
* vtk-string-length.patch (not needed anymore)
* vtk-testcxxjavaremove.patch (applied in upstream)
- Add explicit libQtWebKit-devel BuildRequires to fix build
failures on openSUSE 11.3
- Make description of sub-package vtk-qt more detailed
- Spec file clean up
- fix the missing soname for libVTKnetcdf_cxx
- Fix the broken vtk-qt package
- Fix dependencies for openSUSE 11.2 and SLE 11
- Fix build problems with openSUSE 11.4
- Restored vtk-string-length.patch to solve buffer overflow errors
during string copy operations
- Added vtk-sqldatabaseschema.patch (from upstream) to fix
compilation errors with python enabled
- Update to version 5.6.1, rebase existing patches and remove
unnecessary ones
- Add vtk-python2.7-compat.patch to fix build problems with
python 2.7
- Add vtk-gcc4.3.patch to fix building issues with gcc 4.3
------------------------------------------------------------------
- Extended buffer size in VTK/Utilities/kwsys/SystemInformation.cxx
to fix buffer overflow report from rpmlint
- Drop vtk-compat_gl-rpmlintrc: openSUSE:Factory bots don't accept
  conditional sources and one rpmlintrc file is sufficient for
  both main and linked packages anyway.

OBS-URL: https://build.opensuse.org/request/show/529129
OBS-URL: https://build.opensuse.org/package/show/science/vtk?expand=0&rev=100
2017-09-29 14:13:41 +00:00

484 lines
14 KiB
RPMSpec

#
# spec file for package vtk-compat_gl
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# 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 http://bugs.opensuse.org/
#
%define compat_gl 1
%define pkgname vtk
%define vtklib lib%{pkgname}1
%define vtkcompatlib libvtkcompat_gl1
%if %{compat_gl}
%define shlib %{vtkcompatlib}
%else
%define shlib %{vtklib}
%endif
%if %{compat_gl}
Name: vtk-compat_gl
%else
Name: vtk
%endif
Version: 8.0.1
Release: 0
%define series 8.0
# 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
Summary: The Visualization Toolkit - A high level 3D visualization library
License: BSD-3-Clause
Group: Productivity/Scientific/Other
Url: http://vtk.org/
Source: http://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
Source1: vtk-rpmlintrc
# PATCH-FIX-UPSTREAM vtk-fix-file-contains-date-time.patch badshah400@gmail.com -- Fix file containing DATE and TIME
Patch1: vtk-fix-file-contains-date-time.patch
# PATCH-FIX-UPSTREAM vtk-Rinterface-uintptr_t.patch boo#985386 badshah400@gmail.com -- Fix issues with uintptr_t redefinition by defining the HAVE_UINTPTR_T macro using cmake functions to avoid redefinition of uintptr_t, which is already defined in stdint.h called earlier; patch sent upstream
Patch2: vtk-Rinterface-uintptr_t.patch
# PATCH-FIX-OPENSUSE 0001-Allow-compilation-on-GLES-platforms.patch VTK issue #17113 stefan.bruens@rwth-aachen.de -- Fix building with Qt GLES builds
Patch3: 0001-Allow-compilation-on-GLES-platforms.patch
BuildRequires: Mesa-libGL-devel
BuildRequires: R-base-devel
BuildRequires: boost-devel
BuildRequires: chrpath
BuildRequires: cmake >= 3.4
BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: freetype2-devel
BuildRequires: gcc-c++
BuildRequires: gl2ps-devel
BuildRequires: gnuplot
BuildRequires: graphviz
BuildRequires: hdf5-devel
BuildRequires: java-devel
BuildRequires: libQtWebKit-devel
BuildRequires: libX11-devel
BuildRequires: libXt-devel
BuildRequires: libexpat-devel
BuildRequires: libharu-devel
BuildRequires: libiodbc-devel
BuildRequires: libjpeg-devel
BuildRequires: liblz4-devel >= 1.7.3
BuildRequires: libmysqlclient-devel
BuildRequires: libnetcdf_c++-devel
BuildRequires: libpng-devel
BuildRequires: libtheora-devel
BuildRequires: libtiff-devel
BuildRequires: netcdf-devel
BuildRequires: openmpi-devel
BuildRequires: python3-devel
BuildRequires: python3-mpi4py-devel
BuildRequires: tcl-devel
BuildRequires: tk-devel
BuildRequires: wget
BuildRequires: zlib-devel
%if 0%{?suse_version} > 1320
BuildRequires: python3-qt5-devel
BuildRequires: pkgconfig(Qt5OpenGL)
BuildRequires: pkgconfig(Qt5OpenGLExtensions)
BuildRequires: pkgconfig(Qt5Sql)
BuildRequires: pkgconfig(Qt5WebKitWidgets)
BuildRequires: pkgconfig(Qt5Widgets)
%else
BuildRequires: libqt4-devel
BuildRequires: python3-qt4-devel
%endif
%if %{?sles_version}
BuildRequires: libxml2-devel
%else
BuildRequires: pkgconfig(libxml-2.0)
%endif
# jsoncpp available for openSUSE > 13.2 & Leap
%if 0%{?suse_version} > 1320 || 0%{suse_version} == 1315
BuildRequires: jsoncpp-devel
%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if 0%{?suse_version} > 1320
%define qtdir %{_lib}/qt5
%else
%define qtdir %{_lib}/qt4
%endif
Provides: python3-%{name}-qt = %{version}
%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
%if %{compat_gl}
Conflicts: %{vtklib}
%else
Conflicts: %{vtkcompatlib}
%endif
%description -n %{shlib}
VTK is a software system for image processing, 3D graphics, volume
rendering and visualization.
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: %{shlib} = %{version}
Requires: Mesa-libGL-devel
Requires: R-base-devel
Requires: gl2ps-devel
Requires: hdf5-devel
# jsoncpp available for openSUSE > 13.2 & Leap
%if 0%{?suse_version} > 1320 || 0%{suse_version} == 1315
Requires: jsoncpp-devel
%endif
Requires: freetype2-devel
Requires: libexpat-devel
Requires: libharu-devel
Requires: libjpeg-devel
Requires: liblz4-devel
Requires: libmysqlclient-devel
Requires: libnetcdf_c++-devel
Requires: libogg-devel
Requires: libpng-devel
Requires: libtheora-devel
Requires: libtiff-devel
Requires: libxml2-devel
Requires: netcdf-devel
Requires: openmpi-devel
%if %{compat_gl}
Conflicts: vtk-devel
Provides: vtk-devel
%else
Conflicts: vtk-compat_gl-devel
%endif
%description devel
VTK is a software system for image processing, 3D graphics, volume
rendering and visualization.
This provides the VTK header files required to compile C++ programs that
use VTK to do 3D visualisation.
%package java
Summary: Java bindings for VTK
Group: Development/Libraries/Java
Requires: %{shlib} = %{version}
%if %{compat_gl}
Conflicts: vtk-java
Provides: vtk-java
%else
Conflicts: vtk-compat_gl-java
%endif
%description java
VTK is a software system for image processing, 3D graphics, volume
rendering and visualization.
This package provides java bindings for VTK.
%package -n python3-%{name}
Summary: Python bindings for VTK
Group: Development/Languages/Python
Requires: %{shlib} = %{version}
# DESPITE NOT BEING A DEVEL PACKAGE, THIS REQUIRES OPENMPI-DEVEL TO RUN
Requires: openmpi-devel
%if %{compat_gl}
Conflicts: python3-vtk
Provides: python3-vtk
%else
Conflicts: python3-vtk-compat_gl
%endif
%description -n python3-%{name}
VTK is a software system for image processing, 3D graphics, volume
rendering and visualization.
This package provides python bindings for VTK.
%package qt
Summary: Qt Designer plugin for QVTKWidget
Group: Development/Libraries/C and C++
Requires: %{shlib} = %{version}
%if %{compat_gl}
Conflicts: vtk-qt
Provides: vtk-qt
%else
Conflicts: vtk-compat_gl-qt
%endif
%description qt
VTK is a software system for image processing, 3D graphics, volume
rendering and visualization.
This package provides a Qt Designer plugin for the QVTKWidget.
%package tcl
Summary: Tcl bindings for VTK
Group: Development/Languages/Tcl
Requires: %{shlib} = %{version}
%if %{compat_gl}
Conflicts: vtk-tcl
Provides: vtk-tcl
%else
Conflicts: vtk-compat_gl-tcl
%endif
%description tcl
VTK is a software system for image processing, 3D graphics, volume
rendering and visualization.
This package provides tcl bindings for VTK.
%package examples
Summary: Examples for VTK
Group: Productivity/Scientific/Other
Requires: %{shlib} = %{version}
Recommends: %{name}data = %{version}
%if %{compat_gl}
Conflicts: vtk-examples
Provides: vtk-examples
%else
Conflicts: vtk-compat_gl-examples
%endif
%description examples
VTK is a software system for image processing, 3D graphics, volume
rendering and visualization.
This package contains many examples showing how to use VTK. Examples
are available in the C++, Tcl, Python and Java programming languages.
%package testing
Summary: Testing programs for VTK
Group: Productivity/Scientific/Other
Requires: %{name}data = %{version}
Requires: %{shlib} = %{version}
%if %{compat_gl}
Conflicts: vtk-testing
Provides: vtk-testing
%else
Conflicts: vtk-compat_gl-testing
%endif
%description testing
VTK is a software system for image processing, 3D graphics, volume
rendering and visualization.
This package provides a few testing programs for VTK.
%prep
%setup -q -n VTK-%{version}
%patch1 -p1
%patch2 -p1
%patch3 -p1
# Replace relative path ../../../VTKData with %%{_datadir}/%%{pkgname}data-%%{version}
# otherwise it will break on symlinks.
grep -rl '\.\./\.\./\.\./\.\./VTKData' . | xargs -r perl -pi -e's,\.\./\.\./\.\./\.\./VTKData,%{_datadir}/%{pkgname},g'
%build
export CFLAGS="%{optflags}"
export CXXFLAGS="%{optflags}"
mkdir build
pushd build
cmake .. \
-DCMAKE_CXX_COMPILER:STRING='mpicxx' \
-DCMAKE_C_COMPILER:STRING='mpicc' \
-DBUILD_DOCUMENTATION:BOOL=ON \
-DBUILD_EXAMPLES:BOOL=ON \
-DBUILD_SHARED_LIBS:BOOL=ON \
-DBUILD_TESTING:BOOL=OFF \
-DCMAKE_SKIP_RPATH:BOOL=ON \
-DVTK_CUSTOM_LIBRARY_SUFFIX="" \
-DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \
-DSIP_INCLUDE_DIR:Path=%{py3_incdir} \
-DVTK_INSTALL_ARCHIVE_DIR:PATH=%{_lib} \
-DVTK_INSTALL_LIBRARY_DIR:PATH=%{_lib} \
-DVTK_INSTALL_PACKAGE_DIR:PATH=%{_lib}/cmake/%{pkgname} \
-DVTK_INSTALL_TCL_DIR:PATH=share/tcl/%{pkgname} \
%if 0%{?suse_version} > 1320
-DVTK_QT_VERSION=5 \
%endif
-DVTK_INSTALL_QT_DIR:STRING=/%{qtdir}/plugins/designer \
-DVTK_USE_OGGTHEORA_ENCODER:BOOL=ON \
-DVTK_USE_RENDERING:BOOL=ON \
%if %{compat_gl}
-DVTK_RENDERING_BACKEND:STRING='OpenGL' \
%endif
%if 0%{?suse_version} > 1320 || 0%{suse_version} == 1315
-DVTK_USE_SYSTEM_LIBRARIES:BOOL=ON \
%else
-DVTK_USE_SYSTEM_LIBRARIES:BOOL=OFF \
%endif
-DVTK_USE_SYSTEM_LIBPROJ4:BOOL=OFF \
-DVTK_INSTALL_PYTHON_MODULE_DIR:PATH=%{_lib}/python%{py3_ver}/site-packages \
-DVTK_WRAP_PYTHON:BOOL=ON \
-DVTK_WRAP_JAVA:BOOL=ON \
-DVTK_WRAP_PYTHON_SIP:BOOL=ON \
-DVTK_WRAP_TCL:BOOL=ON \
-DVTK_Group_MPI:BOOL=ON \
-DVTK_Group_Imaging:BOOL=ON \
-DVTK_Group_Qt:BOOL=ON \
-DModule_vtkTestingCore:BOOL=ON \
-DModule_vtkTestingRendering:BOOL=ON \
-DVTK_Group_Rendering:BOOL=ON \
-DVTK_Group_StandAlone:BOOL=ON \
-DVTK_Group_Tk:BOOL=ON \
-DVTK_Group_Views:BOOL=ON \
-DModule_vtkFiltersStatisticsGnuR:BOOL=ON \
-DVTK_WRAP_TCL:BOOL=ON \
-DVTK_USE_SYSTEM_HDF5:BOOL=ON \
-DVTK_USE_SYSTEM_NETCDF:BOOL=ON \
-DVTK_PYTHON_VERSION=3 \
-DCMAKE_NO_BUILTIN_CHRPATH:BOOL=ON \
-DVTK_USE_SYSTEM_DIY2=OFF \
-DVTK_USE_SYSTEM_GL2PS=OFF \
-DVTK_USE_SYSTEM_MPI4PY=ON
make %{?_smp_mflags} VERBOSE=1
make %{?_smp_mflags} DoxygenDoc
# 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 "{}" "+"
popd
%install
pushd build
%makeinstall
# Gather list of non-binding libraries
ls %{buildroot}%{_libdir}/lib*.so.* | sed -e's,^%{buildroot},,' > libs.list
# List of executable examples
cat > examples.list << EOF
Generate2DAMRDataSetWithPulse
Generate3DAMRDataSetWithPulse
HierarchicalBoxPipeline
ImageSlicing
DumpXMLFile
ParticleReader
GenerateCubesFromLabels
GenerateModelsFromLabels
Medical1
Medical2
Medical3
Medical4
Delaunay3D
Delaunay3DAlpha
finance
MultiBlock
BandedContours
FilledContours
TubesWithVaryingRadiusAndColors
BalloonWidget
Slider
Slider2D
LabeledMesh
Arrays
Cube
RGrid
SGrid
AmbientSpheres
Cylinder
DiffuseSpheres
SpecularSpheres
Cone
Cone2
Cone3
Cone4
Cone5
Cone6
FixedPointVolumeRayCastMapperCT
GPURenderDemo
EOF
# Install examples
for file in `cat examples.list`; do
install -p bin/$file %{buildroot}%{_bindir}
done
perl -pi -e's,^,%{_bindir}/,' examples.list
# Remove rpaths from installed binaries
chrpath -d %{buildroot}%{_bindir}/*
%fdupes -s %{buildroot}
%post -n %{shlib} -p /sbin/ldconfig
%postun -n %{shlib} -p /sbin/ldconfig
%files -n %{shlib} -f build/libs.list
%defattr(-,root,root,-)
%files devel
%defattr(-,root,root,-)
%doc Copyright.txt
%{_bindir}/%{pkgname}
%{_bindir}/%{pkgname}EncodeString
%{_bindir}/%{pkgname}HashSource
%{_bindir}/%{pkgname}WrapHierarchy
%{_bindir}/%{pkgname}ParseJava
%{_bindir}/%{pkgname}WrapJava
%{_bindir}/%{pkgname}WrapPython
%{_bindir}/%{pkgname}WrapPythonInit
%{_bindir}/%{pkgname}WrapTcl
%{_bindir}/%{pkgname}WrapTclInit
%if %{compat_gl}
%{_bindir}/%{pkgname}ParseOGLExt
%endif
%{_bindir}/pvtk
%if 0%{?suse_version} <= 1320 && 0%{?suse_version} != 1315
%{_bindir}/%{pkgname}mkg3states
%endif
%{_datadir}/doc/%{pkgname}-%{series}/
%{_libdir}/*.so
%if 0%{?suse_version} <= 1320 && 0%{?suse_version} != 1315
%{_libdir}/libvtktiff.so
%endif
%{_libdir}/cmake/%{pkgname}/
%{_libdir}/libvtkWrappingTools.a
%{_includedir}/%{pkgname}-%{series}/
%exclude %{_datadir}/tcl/vtk/vtktcl.c
%files java
%defattr(-,root,root,-)
%{_libdir}/%{pkgname}.jar
%files -n python3-%{name}
%defattr(-,root,root,-)
%{_bindir}/%{pkgname}python
%{_bindir}/p%{pkgname}python
%{python3_sitearch}/%{pkgname}/
%files tcl
%defattr(-,root,root,-)
%{_datadir}/tcl/%{pkgname}/
%files qt
%defattr(-,root,root,-)
%dir %{_prefix}/%{qtdir}/plugins/designer
%{_prefix}/%{qtdir}/plugins/designer/libQVTKWidgetPlugin.so
%files examples -f build/examples.list
%defattr(-,root,root,-)
%changelog