openvdb/openvdb.spec
2017-07-19 18:02:23 +01:00

178 lines
5.3 KiB
RPMSpec

%global python_version %(%{__python2} -c "import sys ; print(sys.version[:3])")
%{!?python2_sitearch: %global python2_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
Name: openvdb
Version: 4.0.1
Release: 4%{?dist}
Summary: C++ library for sparse volumetric data discretized on three-dimensional grids
License: MPLv2.0
URL: http://www.openvdb.org/
Source0: https://github.com/dreamworksanimation/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
BuildRequires: blosc-devel >= 1.5.0
BuildRequires: boost-devel >= 1.57.0
BuildRequires: cmake >= 2.8
BuildRequires: cppunit-devel >= 1.10
BuildRequires: doxygen >= 1.8.11
BuildRequires: epydoc
BuildRequires: ghostscript >= 8.70
BuildRequires: glfw-devel >= 2.7
BuildRequires: ilmbase-devel
BuildRequires: libXi-devel
BuildRequires: log4cplus-devel >= 1.0
BuildRequires: OpenEXR-devel
BuildRequires: python
BuildRequires: python2-numpy
BuildRequires: python-devel
BuildRequires: tbb-devel >= 3.0
BuildRequires: zlib-devel
%description
OpenVDB is an Academy Award-winning open-source C++ library comprising a novel
hierarchical data structure and a suite of tools for the efficient storage and
manipulation of sparse volumetric data discretized on three-dimensional grids.
It is developed and maintained by DreamWorks Animation for use in volumetric
applications typically encountered in feature film production.
This package contains some graphical tools.
%package libs
Summary: Core OpenVDB libraries
%description libs
OpenVDB is an Academy Award-winning open-source C++ library comprising a novel
hierarchical data structure and a suite of tools for the efficient storage and
manipulation of sparse volumetric data discretized on three-dimensional grids.
It is developed and maintained by DreamWorks Animation for use in volumetric
applications typically encountered in feature film production.
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
The %{name}-devel package contains libraries and header files for developing
applications that use %{name}.
%package python
Summary: OpenVDB Python module
Requires: %{name}%{?_isa} = %{version}-%{release}
%description python
OpenVDB is an Academy Award-winning open-source C++ library comprising a novel
hierarchical data structure and a suite of tools for the efficient storage and
manipulation of sparse volumetric data discretized on three-dimensional grids.
It is developed and maintained by DreamWorks Animation for use in volumetric
applications typically encountered in feature film production.
This package contains the Python module.
%package doc
Summary: Documentation for %{name}
BuildArch: noarch
%description doc
The %{name}-doc package contains documentation for developing applications that
use %{name}.
%prep
%setup -q
iconv -f iso8859-1 -t utf-8 %{name}/CHANGES > %{name}/CHANGES.conv && \
mv -f %{name}/CHANGES.conv %{name}/CHANGES
# Hardcoded paths for installation, as described in the INSTALL file
sed -i -e 's@lib@%{_lib}@g' %{name}/CMakeLists.txt
# Save Makefile that contains doc building instructions, new cmake build system
# does not build docs yet
cp %{name}/Makefile %{name}/Makefile.docbuild
%build
export CXXFLAGS="%{optflags} -Wl,--as-needed"
%cmake \
-DBLOSC_LOCATION=%{_prefix} \
-DCPPUNIT_LOCATION=%{_prefix} \
-DGLEW_LOCATION=%{_prefix} \
-DGLFW3_LOCATION=%{_prefix} \
-DILMBASE_NAMESPACE_VERSIONING=OFF \
-DILMBASE_LOCATION=%{_prefix} \
-DOPENEXR_LOCATION=%{_prefix} \
-DOPENEXR_NAMESPACE_VERSIONING=OFF \
-DOPENVDB_ENABLE_RPATH=OFF \
-DOPENVDB_ENABLE_3_ABI_COMPATIBLE=ON \
-DPYTHON_VERSION=%{python_version} \
-DTBB_LOCATION=%{_prefix} \
-DUSE_GLFW3=True
%make_build
# Build docs with previously saved Makefile
pushd %{name}
make -f Makefile.docbuild doc
popd
# vdb_unit_test fails everywhere except on x86_64
%ifarch x86_64
%check
make test
%endif
%install
%make_install
# Remove CMakeFiles from includes
rm -fr %{buildroot}/%{_includedir}/%{name}/CMakeFiles
# Let RPM pick up HTML documents in the files section
rm -fr %{buildroot}/%{_datadir}/doc
find %{buildroot} -name '*.a' -delete
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
%files
%{_bindir}/vdb_view
%{_bindir}/vdb_print
%{_bindir}/vdb_render
%files libs
%license %{name}/LICENSE %{name}/COPYRIGHT
%doc README.md %{name}/CHANGES
%{_libdir}/*.so.*
%files python
%{_libdir}/python%{python_version}/py%{name}.so
%files devel
%{_includedir}/*
%{_libdir}/*.so
%files doc
%doc %{name}/doc/html
%changelog
* Wed Jul 19 2017 Jonathan Wakely <jwakely@redhat.com> - 4.0.1-4
- Rebuilt for s390x binutils bug
* Tue Jul 18 2017 Jonathan Wakely <jwakely@redhat.com> - 4.0.1-3
- Rebuilt for Boost 1.64
* Sat May 06 2017 Simone Caronni <negativo17@gmail.com> - 4.0.1-2
- Review fixes.
* Sat Apr 22 2017 Simone Caronni <negativo17@gmail.com> - 4.0.1-1
- Update to 4.0.1.
- Perform tests, build HTML documentation.
- Require main OpenVDB library for Python module.
* Wed Nov 23 2016 Simone Caronni <negativo17@gmail.com> - 4.0.0-2
- Update to 4.0.0.
* Sun Oct 16 2016 Simone Caronni <negativo17@gmail.com> - 4.0.0-1.20161015git40271e7
- First build.