summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorMichel Alexandre Salim <salimma@fedoraproject.org>2022-01-24 19:54:49 -0800
committerMichel Alexandre Salim <salimma@fedoraproject.org>2022-01-24 19:54:49 -0800
commita34d5aaef3f34490ae45d3f5386f12f3ef7b5a1c (patch)
treed2f6cd9318fb1e1e9c83b86f908c565e78ca7c04 /meta
parent09162956971e77780bdc50fd1aad6158f87c979e (diff)
downloadspecs-a34d5aaef3f34490ae45d3f5386f12f3ef7b5a1c.tar.gz
specs-a34d5aaef3f34490ae45d3f5386f12f3ef7b5a1c.tar.xz
specs-a34d5aaef3f34490ae45d3f5386f12f3ef7b5a1c.zip
+ dispenso
Signed-off-by: Michel Alexandre Salim <salimma@fedoraproject.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/dispenso.spec90
1 files changed, 90 insertions, 0 deletions
diff --git a/meta/dispenso.spec b/meta/dispenso.spec
new file mode 100644
index 0000000..c288a85
--- /dev/null
+++ b/meta/dispenso.spec
@@ -0,0 +1,90 @@
+# need to sort out tests
+# - patch to use system gtest needs to be made toggle-able
+%bcond_without check
+
+Name: dispenso
+Version: 1.0.0
+Release: %{autorelease}
+Summary: A library for working with sets of tasks in parallel
+
+License: MIT
+URL: https://github.com/facebookincubator/dispenso
+Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
+# allow Dispenso to be installed and fix its version
+Patch0: %{url}/commit/d00e7402ffcc780df11024f8d2285c153b7635b1.patch#/%{name}-1.0.0-add-install.patch
+Patch1: %{name}-1.0.0-use-system-gtest.patch
+
+BuildRequires: cmake
+BuildRequires: gcc-c++
+%if %{with check}
+BuildRequires: gmock-devel
+BuildRequires: gtest-devel
+%endif
+
+%global _description %{expand:
+Dispenso is a library for working with sets of tasks in parallel. It provides
+mechanisms for thread pools, task sets, parallel for loops, futures, pipelines,
+and more. Dispenso is a well-tested C++14 library designed to have minimal
+dependencies (some dependencies are required for the tests and benchmarks), and
+designed to be clean with compiler sanitizers (ASAN, TSAN). Dispenso is
+currently being used in dozens of projects and hundreds of C++ files at Meta
+(formerly Facebook). Dispenso also aims to avoid major disruption at every
+release. Releases will be made such that major versions are created when a
+backward incompatibility is introduced, and minor versions are created when
+substantial features have been added or bugs have been fixed, and the aim would
+be to only very rarely bump major versions. That should make the project
+suitable for use from main branch, or if you need a harder requirement, you can
+base code on a specific version.}
+
+%description %{_description}
+
+
+%package devel
+Summary: Development files for %{name}
+Requires: %{name}%{?_isa} = %{version}-%{release}
+# Requires: cmake-filesystem
+
+%description devel %{_description}
+
+The %{name}-devel package contains libraries and header files for
+developing applications that use %{name}.
+
+
+%prep
+%autosetup -p1
+
+
+%build
+%cmake \
+%if %{with check}
+ -DDISPENSO_BUILD_TESTS=ON \
+%else
+ %{nil}
+%endif
+
+%cmake_build
+
+
+%install
+%cmake_install
+
+
+%if %{with check}
+%check
+%ctest
+%endif
+
+
+%files
+%license LICENSE
+%{_libdir}/*.so.*
+
+%files devel
+%doc CODE_OF_CONDUCT.md CONTRIBUTING.md README.md
+%{_includedir}/*
+%{_libdir}/*.so
+%{_libdir}/cmake/Dispenso-%{version}
+
+
+%changelog
+%autochangelog