2021-04-19 10:28:31 +00:00
|
|
|
|
%global pretty_name HighFive
|
|
|
|
|
|
|
|
|
|
%global _description %{expand:
|
|
|
|
|
HighFive is a modern header-only C++11 friendly interface for libhdf5.
|
|
|
|
|
|
|
|
|
|
HighFive supports STL vector/string, Boost::UBLAS, Boost::Multi-array, Eigen
|
|
|
|
|
and Xtensor. It handles C++ from/to HDF5 with automatic type mapping. HighFive
|
|
|
|
|
does not require additional libraries (see dependencies) and supports both HDF5
|
|
|
|
|
thread safety and Parallel HDF5 (contrary to the official hdf5 cpp)
|
|
|
|
|
|
|
|
|
|
It integrates nicely with other CMake projects by defining (and exporting) a
|
|
|
|
|
HighFive target.
|
|
|
|
|
|
|
|
|
|
Design:
|
|
|
|
|
- Simple C++-ish minimalist interface
|
|
|
|
|
- No other dependency than libhdf5
|
|
|
|
|
- Zero overhead
|
|
|
|
|
- Support C++11
|
|
|
|
|
|
|
|
|
|
Feature support:
|
|
|
|
|
- create/read/write files, datasets, attributes, groups, dataspaces.
|
|
|
|
|
- automatic memory management / ref counting
|
|
|
|
|
- automatic conversion of std::vector and nested std::vector from/to any
|
|
|
|
|
dataset with basic types
|
|
|
|
|
- automatic conversion of std::string to/from variable length string dataset
|
|
|
|
|
- selection() / slice support
|
|
|
|
|
- parallel Read/Write operations from several nodes with Parallel HDF5
|
|
|
|
|
- Advanced types: Compound, Enum, Arrays of Fixed-length strings, References
|
|
|
|
|
etc... (see ChangeLog)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
%bcond_without tests
|
|
|
|
|
%bcond_without docs
|
|
|
|
|
|
|
|
|
|
# Header only, so no debuginfo is generated
|
|
|
|
|
%global debug_package %{nil}
|
|
|
|
|
|
|
|
|
|
Name: highfive
|
2021-08-27 18:49:50 +00:00
|
|
|
|
Version: 2.3.1
|
2022-01-20 12:21:29 +00:00
|
|
|
|
Release: 3%{?dist}
|
2021-04-19 10:28:31 +00:00
|
|
|
|
Summary: Header-only C++ HDF5 interface
|
|
|
|
|
|
|
|
|
|
License: Boost
|
|
|
|
|
URL: https://bluebrain.github.io/HighFive/
|
|
|
|
|
Source0: https://github.com/BlueBrain/HighFive/archive/v%{version}/%{name}-%{version}.tar.gz
|
|
|
|
|
|
2021-08-27 18:49:50 +00:00
|
|
|
|
# Does not build on 32 bit architectures
|
|
|
|
|
# Issue filed upstream: https://github.com/BlueBrain/HighFive/issues/443
|
|
|
|
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1952348
|
|
|
|
|
#
|
|
|
|
|
# Partially patched, fixing i686; see upstream bug for armv7hl status. We can
|
|
|
|
|
# work around this by disabling OpenCV on armv7hl until a patch is available.
|
|
|
|
|
Patch0: 0001-fix-32bit-arches-use-explicit-casts.patch
|
|
|
|
|
Patch1: 0001-Fix-compiling-invalid-reinterpret_cast-on-32-bit.patch
|
|
|
|
|
|
2021-04-19 10:28:31 +00:00
|
|
|
|
BuildRequires: cmake
|
|
|
|
|
BuildRequires: gcc-c++
|
|
|
|
|
BuildRequires: git-core
|
|
|
|
|
BuildRequires: hdf5-devel
|
2021-08-27 18:49:50 +00:00
|
|
|
|
# Technically optional, enabled by default
|
|
|
|
|
BuildRequires: boost-devel
|
|
|
|
|
# Our choice vs. make
|
2021-04-19 10:28:31 +00:00
|
|
|
|
BuildRequires: ninja-build
|
|
|
|
|
|
|
|
|
|
# Optional but included in Fedora, so we use these
|
2021-08-27 18:49:50 +00:00
|
|
|
|
BuildRequires: cmake(eigen3)
|
|
|
|
|
BuildRequires: cmake(xtensor)
|
|
|
|
|
%ifnarch %{arm32}
|
|
|
|
|
BuildRequires: cmake(opencv)
|
|
|
|
|
%endif
|
|
|
|
|
# The -static versions are required by guidelines for tracking header-only
|
|
|
|
|
# libraries
|
|
|
|
|
BuildRequires: eigen3-static
|
|
|
|
|
BuildRequires: xtensor-static
|
2021-04-19 10:28:31 +00:00
|
|
|
|
|
|
|
|
|
%if %{with docs}
|
|
|
|
|
BuildRequires: doxygen
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
%description %_description
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
%package devel
|
|
|
|
|
Summary: Development files for %{name}
|
|
|
|
|
Provides: %{name}%{?_isa} = %{version}-%{release}
|
|
|
|
|
Provides: %{name}-static%{?_isa} = %{version}-%{release}
|
2021-08-27 18:49:50 +00:00
|
|
|
|
# Unarched version is needed since arched BuildRequires must not be used
|
|
|
|
|
Provides: %{name}-static = %{version}-%{release}
|
2021-04-19 10:28:31 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
%description devel
|
|
|
|
|
The %{name}-devel package contains libraries and header files for
|
|
|
|
|
developing applications that use %{name}.
|
|
|
|
|
|
|
|
|
|
%if %{with docs}
|
|
|
|
|
%package doc
|
|
|
|
|
Summary: Documentation for %{name}
|
|
|
|
|
BuildArch: noarch
|
|
|
|
|
|
|
|
|
|
%description doc
|
|
|
|
|
Documentation for %{name}
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
%prep
|
2021-08-27 18:49:50 +00:00
|
|
|
|
%autosetup -n %{pretty_name}-%{version} -S git -p1
|
2021-04-19 10:28:31 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
%build
|
2021-08-27 18:49:50 +00:00
|
|
|
|
%if %{with tests}
|
|
|
|
|
%set_build_flags
|
|
|
|
|
# The unit tests intentionally test deprecated APIs; silence these warnings so
|
|
|
|
|
# we are more likely to notice any real problems.
|
|
|
|
|
CXXFLAGS="${CXXFLAGS} -Wno-deprecated-declarations"
|
|
|
|
|
%endif
|
|
|
|
|
%cmake \
|
|
|
|
|
-DHIGHFIVE_USE_BOOST:BOOL=TRUE \
|
|
|
|
|
-DHIGHFIVE_USE_XTENSOR:BOOL=TRUE \
|
|
|
|
|
-DHIGHFIVE_USE_EIGEN:BOOL=TRUE \
|
|
|
|
|
%ifnarch %{arm32}
|
|
|
|
|
-DHIGHFIVE_USE_OPENCV:BOOL=TRUE \
|
|
|
|
|
%endif
|
|
|
|
|
-DHIGHFIVE_EXAMPLES:BOOL=TRUE \
|
|
|
|
|
-DHIGHFIVE_UNIT_TESTS:BOOL=%{?with_tests:TRUE}%{?!with_tests:FALSE} \
|
|
|
|
|
-DHIGHFIVE_BUILD_DOCS:BOOL=%{?with_docs:TRUE}%{?!with_docs:FALSE} \
|
|
|
|
|
-GNinja
|
2021-04-19 10:28:31 +00:00
|
|
|
|
%cmake_build
|
|
|
|
|
%if %{with docs}
|
2021-08-27 18:49:50 +00:00
|
|
|
|
%cmake_build --target doc
|
2021-04-19 10:28:31 +00:00
|
|
|
|
%endif
|
|
|
|
|
|
2021-08-27 18:49:50 +00:00
|
|
|
|
|
2021-04-19 10:28:31 +00:00
|
|
|
|
%install
|
|
|
|
|
%cmake_install
|
2021-08-27 18:49:50 +00:00
|
|
|
|
# Move the CMake configurations to the correct location
|
|
|
|
|
[ ! -d '%{buildroot}/%{_libdir}/cmake/%{pretty_name}' ]
|
|
|
|
|
install -d '%{buildroot}/%{_libdir}/cmake'
|
|
|
|
|
mv -v '%{buildroot}/%{_datadir}/%{pretty_name}/CMake' \
|
|
|
|
|
'%{buildroot}/%{_libdir}/cmake/%{pretty_name}'
|
2021-04-19 10:28:31 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
%check
|
|
|
|
|
%if %{with tests}
|
2021-04-19 12:22:14 +00:00
|
|
|
|
%ctest
|
2021-04-19 10:28:31 +00:00
|
|
|
|
%endif
|
|
|
|
|
|
2021-08-27 18:49:50 +00:00
|
|
|
|
|
2021-04-19 10:28:31 +00:00
|
|
|
|
%files devel
|
|
|
|
|
%license LICENSE
|
|
|
|
|
%doc README.md VERSION CHANGELOG.md
|
2021-08-27 18:49:50 +00:00
|
|
|
|
%{_includedir}/%{name}
|
2021-04-19 10:28:31 +00:00
|
|
|
|
%{_libdir}/cmake/%{pretty_name}
|
|
|
|
|
|
2021-08-27 18:49:50 +00:00
|
|
|
|
|
2021-04-19 10:28:31 +00:00
|
|
|
|
%if %{with docs}
|
|
|
|
|
%files doc
|
|
|
|
|
%license LICENSE
|
|
|
|
|
%doc %{_vpath_builddir}/doc/html
|
|
|
|
|
%endif
|
|
|
|
|
|
2021-08-27 18:49:50 +00:00
|
|
|
|
|
2021-04-19 10:28:31 +00:00
|
|
|
|
%changelog
|
2022-01-20 12:21:29 +00:00
|
|
|
|
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.1-3
|
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
|
|
|
|
|
2021-11-22 19:18:07 +00:00
|
|
|
|
* Mon Nov 22 2021 Orion Poplawski <orion@nwra.com> - 2.3.1-2
|
|
|
|
|
- Rebuild for hdf5 1.12.1
|
|
|
|
|
|
2021-08-27 18:49:50 +00:00
|
|
|
|
* Fri Aug 27 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 2.3.1-1
|
|
|
|
|
- Update to 2.3.1
|
|
|
|
|
- Drop patches, which were all upstreamed
|
|
|
|
|
- Switch BR’s to cmake(…) where appropriate
|
|
|
|
|
- Add -static BR’s for header-only library dependencies
|
|
|
|
|
- Add unarched -static virtual Provides since arched BR’s must not be used
|
|
|
|
|
- Use ninja cmake backend (which was already BR’d)
|
|
|
|
|
- Enable OpenCV (except on armv7hl, for now)
|
|
|
|
|
- Fix ExcludeArch
|
|
|
|
|
|
2021-07-22 07:38:33 +00:00
|
|
|
|
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.2-3
|
|
|
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
|
|
|
|
|
2021-04-22 06:22:27 +00:00
|
|
|
|
* Thu Apr 22 2021 Ankur Sinha <ankursinha AT fedoraproject DOT org> - 2.2.2-2
|
|
|
|
|
- Make note of excludearch bug
|
|
|
|
|
|
2021-04-19 12:22:14 +00:00
|
|
|
|
* Mon Apr 19 2021 Ankur Sinha <ankursinha AT fedoraproject DOT org> - 2.2.2-2
|
|
|
|
|
- Carry patch to fix failing test: https://github.com/BlueBrain/HighFive/issues/444
|
|
|
|
|
|
2021-04-19 10:28:31 +00:00
|
|
|
|
* Sun Apr 18 2021 Ankur Sinha <ankursinha AT fedoraproject DOT org> - 2.2.2-1
|
|
|
|
|
- Enable doc build
|
|
|
|
|
- include complete doc package in conditional
|