1 Star 0 Fork 6

abushwang/boost

forked from OpenCloudOS Stream/boost 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
boost.spec 18.81 KB
一键复制 编辑 原始数据 按行查看 历史
rockerzhu 提交于 2023-07-31 18:37 . update to 1.82.0
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581
%bcond_without numpy
%ifnarch x86_64
%bcond_with quadmath
%else
%bcond_without quadmath
%endif
Summary: The free peer-reviewed portable C++ source libraries
Name: boost
Version: 1.82.0
Release: 1%{?dist}
License: Boost Software License 1.0
URL: http://www.boost.org
%define ver_ %(echo "%{version}" | tr "." "_")
Source0: https://sourceforge.net/projects/%{name}/files/%{name}/%{version}/%{name}_%{ver_}.tar.gz
Patch3000: boost-rpmoptflags-only.patch
Patch3001: boost-remove-cmakedir.patch
Patch3002: boost-b2-build-flags.patch
Patch3003: boost-phoenix-revert-std-tuple-support.patch
Requires: %{name}-atomic = %{version}-%{release}
Requires: %{name}-chrono = %{version}-%{release}
Requires: %{name}-container = %{version}-%{release}
Requires: %{name}-contract = %{version}-%{release}
Requires: %{name}-context = %{version}-%{release}
Requires: %{name}-coroutine = %{version}-%{release}
Requires: %{name}-date-time = %{version}-%{release}
Requires: %{name}-fiber = %{version}-%{release}
Requires: %{name}-filesystem = %{version}-%{release}
Requires: %{name}-graph = %{version}-%{release}
Requires: %{name}-iostreams = %{version}-%{release}
Requires: %{name}-locale = %{version}-%{release}
Requires: %{name}-log = %{version}-%{release}
Requires: %{name}-math = %{version}-%{release}
Requires: %{name}-nowide = %{version}-%{release}
Requires: %{name}-program-options = %{version}-%{release}
Requires: %{name}-python3 = %{version}-%{release}
Requires: %{name}-random = %{version}-%{release}
Requires: %{name}-regex = %{version}-%{release}
Requires: %{name}-serialization = %{version}-%{release}
Requires: %{name}-stacktrace = %{version}-%{release}
Requires: %{name}-system = %{version}-%{release}
Requires: %{name}-test = %{version}-%{release}
Requires: %{name}-thread = %{version}-%{release}
Requires: %{name}-timer = %{version}-%{release}
Requires: %{name}-type_erasure = %{version}-%{release}
Requires: %{name}-wave = %{version}-%{release}
Requires: %{name}-url = %{version}-%{release}
%if %{with numpy}
Recommends: (%{name}-numpy3 if python3-numpy)
%endif
BuildRequires: gcc-c++ libstdc++-devel bzip2-devel zlib-devel xz-devel bison
BuildRequires: python3-devel
%if %{with numpy}
BuildRequires: python3-numpy
%endif
BuildRequires: libicu-devel
%if %{with quadmath}
BuildRequires: libquadmath-devel
%endif
%description
Boost provides free peer-reviewed portable C++ source libraries.
Boost libraries are intended to be widely useful, and usable across a broad spectrum of applications.
The Boost license encourages the use of Boost libraries for all users with minimal restrictions.
Aim to establish "existing practice" and provide reference implementations
so that Boost libraries are suitable for eventual standardization.
Beginning with the ten Boost Libraries included in the Library Technical Report (TR1) and continuing with
every release of the ISO standard for C++ since 2011,the C++ Standards Committee has continued to rely on Boost
as a valuable source for additions to the Standard C++ Library.
%package atomic
Summary: Run-time component of boost atomic library
%description atomic
Boost.Atomic is a library that provides atomic data types and operations on these data types,
as well as memory ordering constraints required for coordinating multiple threads through atomic variables.
%package chrono
Summary: Run-time component of boost chrono library
Requires: %{name}-system = %{version}-%{release}
%description chrono
Boost.Chrono provides specific process and thread clocks that are thin wrappers
around the operating system's process time API, thereby allowing the extraction
of wall clock time, user CPU time, and system CPU time of the process.
%package container
Summary: Run-time component of boost container library
%description container
Boost.Container library implements several well-known containers,
including STL containers.
%package contract
Summary: Run-time component of boost contract library
%description contract
This library implements contract programming for the C++ programming language.
All contract programming features are supported by this library:
Subcontracting, class invariants (also for static and volatile member functions),
postconditions (with old and return values), preconditions,
customizable actions on assertion failure (e.g., terminate the program or throw exceptions),
optional compilation of assertions, disable assertions while already checking other assertions
(to avoid infinite recursion), and more.
%package context
Summary: Run-time component of boost context switching library
%description context
Boost.Context is a foundational library that provides a sort of cooperative multitasking on a single thread.
By providing an abstraction of the current execution state in the current thread,
including the stack (with local variables) and stack pointer, all registers and CPU flags,
and the instruction pointer, a execution context represents a specific point in the application's execution path.
This is useful for building higher-level abstractions, like coroutines,
cooperative threads (userland threads) or an equivalent to C# keyword yield in C++.
%package coroutine
Summary: Run-time component of boost coroutine library
%description coroutine
Boost.Coroutine provides templates for generalized subroutines which allow suspending and resuming execution
at certain locations. It preserves the local state of execution and allows re-entering subroutines more than once
(useful if state must be kept across function calls).
In contrast to threads, which are pre-emptive, coroutine switches are cooperative
(programmer controls when a switch will happen). The kernel is not involved in the coroutine switches.
The implementation uses Boost.Context for context switching.
%package date-time
Summary: Run-time component of boost date-time library
%description date-time
The library provides support for calculating with dates and times.
%package fiber
Summary: Run-time component of boost fiber library
%description fiber
Boost.Fiber provides a framework for micro-/userland-threads (fibers) scheduled cooperatively.
The API contains classes and functions to manage and synchronize fibers similiarly to standard thread support library.
Each fiber has its own stack.
A fiber can save the current execution state, including all registers and CPU flags, the instruction pointer,
and the stack pointer and later restore this state. The idea is to have multiple execution paths
running on a single thread using cooperative scheduling (versus threads, which are preemptively scheduled).
The running fiber decides explicitly when it should yield to allow another fiber to run (context switching).
Boost.Fiber internally uses call/cc from Boost.Context; the classes in this library manage, schedule and,
when needed, synchronize those execution contexts. A context switch between threads usually
costs thousands of CPU cycles on x86, compared to a fiber switch with less than a hundred cycles.
A fiber runs on a single thread at any point in time.
%package filesystem
Summary: Run-time component of boost filesystem library
Requires: %{name}-system = %{version}-%{release}
%description filesystem
The Boost Filesystem Library provides portable facilities
to query and manipulate paths, files, and directories.
%package graph
Summary: Run-time component of boost graph library
Requires: %{name}-regex = %{version}-%{release}
%description graph
Boost Graph Library is a generic interface that allows access to a graph's structure,
but hides the details of the implementation. This is an “open” interface in the sense that
any graph library that implements this interface will be interoperable with the BGL generic algorithms
and with other algorithms that also use this interface.
%package iostreams
Summary: Run-time component of boost iostreams library
%description iostreams
Boost.IOStreams provides a framework for defining streams,
stream buffers and i/o filters.
%package json
Summary: Run-time component of boost json library
%description json
JSON parsing, serialization, and DOM in C++11
%package locale
Summary: Run-time component of boost locale library
Requires: %{name}-chrono = %{version}-%{release}
Requires: %{name}-system = %{version}-%{release}
Requires: %{name}-thread = %{version}-%{release}
%description locale
Provide localization and Unicode handling tools for C++.
%package log
Summary: Run-time component of boost logging library
%description log
This library aims to make logging significantly easier for the application developer.
It provides a wide range of out-of-the-box tools along with public interfaces
for extending the library.
%package math
Summary: Math functions for boost TR1 library
%description math
Boost.Math includes several contributions in the domain of mathematics:
The Greatest Common Divisor and Least Common Multiple library provides
run-time and compile-time evaluation of the greatest common divisor (GCD)
or least common multiple (LCM) of two integers. The Special Functions library
currently provides eight templated special functions, in namespace boost.
The Complex Number Inverse Trigonometric Functions are the inverses of
trigonometric functions currently present in the C++ standard.
Quaternions are a relative of complex numbers often used to parameterise rotations
in three dimentional space. Octonions, like quaternions, are a relative of complex numbers.
%package nowide
Summary: Run-time support for Boost.Nowide
%description nowide
Standard library functions with UTF-8 API on Windows.
%if %{with numpy}
%package numpy3
Summary: Run-time component of boost numpy library for Python3
Requires: %{name}-python3 = %{version}-%{release}
Requires: python3-numpy
%description numpy3
The Boost Python Library is a framework for interfacing Python and
C++. It allows you to quickly and seamlessly expose C++ classes,
functions and objects to Python, and vice versa, using no special
tools -- just your C++ compiler. This package contains run-time
support for the NumPy extension of the Boost Python Library for Python3.
%endif
%package python3
Summary: Run-time component of boost python library for Python3
Requires: python(abi) = %{python3_version}
%description python3
The Boost Python Library is a framework for interfacing Python and
C++. It allows you to quickly and seamlessly expose C++ classes,
functions and objects to Python, and vice versa, using no special
tools -- just your C++ compiler. This package contains run-time
support for the Boost Python Library compiled for Python3.
%package program-options
Summary: Run-time component of boost program_options library
%description program-options
The program_options library allows program developers to obtain program options,
that is (name, value) pairs from the user, via conventional methods such as command line and config file.
%package random
Summary: Run-time component of boost random library
%description random
A complete system for random number generation.
%package regex
Summary: Run-time component of boost regular expression library
%description regex
Regular expression library.
%package serialization
Summary: Run-time component of boost serialization library
%description serialization
Serialization for persistence and marshalling.
%package stacktrace
Summary: Run-time component of boost stacktrace library
%description stacktrace
Gather, store, copy and print backtraces.
%package system
Summary: Run-time component of boost system support library
%description system
Extensible error reporting.
%package test
Summary: Run-time component of boost test library
%description test
Support for simple program testing, full unit testing,
and for program execution monitoring.
%package thread
Summary: Run-time component of boost thread library
Requires: %{name}-system = %{version}-%{release}
%description thread
Portable C++ multi-threading. C++03, C++11, C++14, C++17.
%package timer
Summary: Run-time component of boost timer library
Requires: %{name}-chrono = %{version}-%{release}
Requires: %{name}-system = %{version}-%{release}
%description timer
Event timer, progress timer, and progress display classes.
%package type_erasure
Summary: Run-time component of boost type erasure library
Requires: %{name}-chrono = %{version}-%{release}
Requires: %{name}-system = %{version}-%{release}
%description type_erasure
Runtime polymorphism based on concepts.
%package wave
Summary: Run-time component of boost C99/C++ preprocessing library
Requires: %{name}-chrono = %{version}-%{release}
Requires: %{name}-date-time = %{version}-%{release}
Requires: %{name}-filesystem = %{version}-%{release}
Requires: %{name}-system = %{version}-%{release}
Requires: %{name}-thread = %{version}-%{release}
%description wave
The Boost.Wave library is a Standards conformant, and highly configurable implementation of
the mandated C99/C++ preprocessor functionality packed behind an easy to use iterator interface.
%package devel
Summary: The Boost C++ headers and shared development libraries
Requires: %{name} = %{version}-%{release}
Requires: libicu-devel
%if %{with quadmath}
Requires: libquadmath-devel
%endif
%if %{with numpy}
Requires: %{name}-numpy3 = %{version}-%{release}
%endif
Provides: %{name}-python3-devel = %{version}-%{release}
Provides: boost-nowide-devel = %{version}
%description devel
Headers and shared object symbolic links for the Boost C++ libraries.
%package static
Summary: The Boost C++ static development libraries
Requires: %{name}-devel = %{version}-%{release}
%description static
Static Boost C++ libraries.
%package doc
Summary: HTML documentation and examples for the Boost C++ libraries
BuildArch: noarch
%description doc
This package contains the documentation in the HTML format and examples of
the Boost C++ libraries. The documentation provides the same content as that
on the Boost web page (http://www.boost.org/doc/libs/%{ver_}).
%package url
Summary: Runtime component of boost URL library
%description url
Run-time support for the Boost.URL library, a Standards conforming library for
parsing Uniform Resource Locators.
%prep
%autosetup -n %{name}_%{ver_} -p1
%build
./bootstrap.sh --with-toolset=gcc
%define py3_abiflags %(python3-config --abiflags)
cat >> ./tools/build/src/user-config.jam << EOF
using python
: %{python3_version}
: %{_bindir}/python3
: %{_includedir}/python%{python3_version}%{py3_abiflags}
:
:
:
:
;
EOF
./b2 -d+2 -q %{?_smp_mflags} \
--without-mpi --without-graph_parallel \
variant=release threading=multi debug-symbols=on pch=off \
python=%{python3_version} cxxflags="$RPM_OPT_FLAGS" \
stage
%install
./b2 -d+2 -q %{?_smp_mflags} \
--without-mpi --without-graph_parallel \
--prefix=$RPM_BUILD_ROOT%{_prefix} --libdir=$RPM_BUILD_ROOT%{_libdir} \
variant=release threading=multi debug-symbols=on pch=off \
python=%{python3_version} install
rm -r $RPM_BUILD_ROOT/%{_libdir}/cmake
%define boost_docdir %{_docdir}/boost%{version}
mkdir -p %{buildroot}/%{boost_docdir}
find libs doc more -regex '.*\.\(html?\|css\|png\|gif\)' -exec cp {} %{buildroot}/%{boost_docdir} --parents \;
cp index.html boost.png rst.css boost.css %{buildroot}/%{boost_docdir}
find libs -name example -exec cp {} %{buildroot}/%{boost_docdir} --parents -r \;
find %{buildroot}%{boost_docdir} -name \*.py -exec chmod -x {} \;
%check
:
%files
%license LICENSE_1_0.txt
%files atomic
%license LICENSE_1_0.txt
%{_libdir}/libboost_atomic.so.%{version}
%files chrono
%license LICENSE_1_0.txt
%{_libdir}/libboost_chrono.so.%{version}
%files container
%license LICENSE_1_0.txt
%{_libdir}/libboost_container.so.%{version}
%files context
%license LICENSE_1_0.txt
%{_libdir}/libboost_context.so.%{version}
%files coroutine
%license LICENSE_1_0.txt
%{_libdir}/libboost_coroutine.so.%{version}
%files date-time
%license LICENSE_1_0.txt
%{_libdir}/libboost_date_time.so.%{version}
%files fiber
%license LICENSE_1_0.txt
%{_libdir}/libboost_fiber.so.%{version}
%files filesystem
%license LICENSE_1_0.txt
%{_libdir}/libboost_filesystem.so.%{version}
%files graph
%license LICENSE_1_0.txt
%{_libdir}/libboost_graph.so.%{version}
%files iostreams
%license LICENSE_1_0.txt
%{_libdir}/libboost_iostreams.so.%{version}
%files json
%license LICENSE_1_0.txt
%{_libdir}/libboost_json.so.%{version}
%files locale
%license LICENSE_1_0.txt
%{_libdir}/libboost_locale.so.%{version}
%files log
%license LICENSE_1_0.txt
%{_libdir}/libboost_log.so.%{version}
%{_libdir}/libboost_log_setup.so.%{version}
%files math
%license LICENSE_1_0.txt
%{_libdir}/libboost_math_c99.so.%{version}
%{_libdir}/libboost_math_c99f.so.%{version}
%ifnarch ppc64 ppc64le
%{_libdir}/libboost_math_c99l.so.%{version}
%endif
%{_libdir}/libboost_math_tr1.so.%{version}
%{_libdir}/libboost_math_tr1f.so.%{version}
%ifnarch ppc64 ppc64le
%{_libdir}/libboost_math_tr1l.so.%{version}
%endif
%files nowide
%license LICENSE_1_0.txt
%{_libdir}/libboost_nowide.so.%{version}
%if %{with numpy}
%files numpy3
%license LICENSE_1_0.txt
%{_libdir}/libboost_numpy%{python3_version_nodots}.so.%{version}
%endif
%files test
%license LICENSE_1_0.txt
%{_libdir}/libboost_prg_exec_monitor.so.%{version}
%{_libdir}/libboost_unit_test_framework.so.%{version}
%files program-options
%license LICENSE_1_0.txt
%{_libdir}/libboost_program_options.so.%{version}
%files python3
%license LICENSE_1_0.txt
%{_libdir}/libboost_python%{python3_version_nodots}.so.%{version}
%files random
%license LICENSE_1_0.txt
%{_libdir}/libboost_random.so.%{version}
%files regex
%license LICENSE_1_0.txt
%{_libdir}/libboost_regex.so.%{version}
%files serialization
%license LICENSE_1_0.txt
%{_libdir}/libboost_serialization.so.%{version}
%{_libdir}/libboost_wserialization.so.%{version}
%files stacktrace
%license LICENSE_1_0.txt
%{_libdir}/libboost_stacktrace_addr2line.so.%{version}
%{_libdir}/libboost_stacktrace_basic.so.%{version}
%{_libdir}/libboost_stacktrace_noop.so.%{version}
%files system
%license LICENSE_1_0.txt
%{_libdir}/libboost_system.so.%{version}
%files thread
%license LICENSE_1_0.txt
%{_libdir}/libboost_thread.so.%{version}
%files timer
%license LICENSE_1_0.txt
%{_libdir}/libboost_timer.so.%{version}
%files type_erasure
%license LICENSE_1_0.txt
%{_libdir}/libboost_type_erasure.so.%{version}
%files wave
%license LICENSE_1_0.txt
%{_libdir}/libboost_wave.so.%{version}
%files contract
%license LICENSE_1_0.txt
%{_libdir}/libboost_contract.so.%{version}
%files doc
%dir %{boost_docdir}
%doc %{boost_docdir}/*
%files devel
%license LICENSE_1_0.txt
%{_includedir}/%{name}
%{_libdir}/*.so
%ifarch ppc64 ppc64le
%exclude %{_libdir}/libboost_math_tr1l.so
%exclude %{_libdir}/libboost_math_c99l.so
%endif
%files static
%license LICENSE_1_0.txt
%{_libdir}/*.a
%files url
%license LICENSE_1_0.txt
%{_libdir}/libboost_url.so.%{version}
%changelog
* Mon Jul 31 2023 rockerzhu <[email protected]> - 1.82.0-1
- Update to 1.82.0
* Fri Apr 28 2023 OpenCloudOS Release Engineering <[email protected]> - 1.79.0-3
- Rebuilt for OpenCloudOS Stream 23.05
* Fri Mar 31 2023 OpenCloudOS Release Engineering <[email protected]> - 1.79.0-2
- Rebuilt for OpenCloudOS Stream 23
* Mon May 09 2022 rockerzhu <[email protected]> - 1.79.0-1
- Initial build
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/abushwang/boost.git
[email protected]:abushwang/boost.git
abushwang
boost
boost
master

搜索帮助