3 %bcond_with gnu # GNU libstdc++/libsupc++ ABI instead of LLVM libcxxabi
5 Summary: LibC++ - C++ standard library from LLVM project
6 Summary(pl.UTF-8): LibC++ - biblioteka standardowa C++ z projektu LLVM
10 License: MIT or BSD-like
12 #Source0Download: https://github.com/llvm/llvm-project/releases/
13 Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/libcxx-%{version}.src.tar.xz
14 # Source0-md5: c2c0724be18c153ab902a5a880796af8
15 #Source1Download: https://github.com/llvm/llvm-project/releases/
16 Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/libcxxabi-%{version}.src.tar.xz
17 # Source1-md5: c1f77222397506239dd79d8109a9113d
18 #Source2Download: https://github.com/llvm/llvm-project/releases/
19 Source2: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/llvm-%{version}.src.tar.xz
20 # Source2-md5: c77db4c71e1eb267358204dffe2c6e10
21 Source3: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/cmake-%{version}.src.tar.xz
22 # Source3-md5: 5be9535f0b93cb6232d0171a8abb3137
23 URL: https://libcxx.llvm.org/
25 BuildRequires: clang >= %{version}
26 BuildRequires: cmake >= 3.13.4
27 BuildRequires: python3 >= 1:3
28 BuildRequires: rpmbuild(macros) >= 1.605
30 BuildRequires: libstdc++-devel >= 6:10
32 BuildRequires: llvm-libcxxabi-devel
34 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
37 libc++ is a new implementation of the C++ standard library, targeting
40 %description -l pl.UTF-8
41 libc++ to nowa implementacja biblioteki standardowej C++ ze wskazaniem
45 Summary: Header files of LLVM LibC++ library
46 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki LLVM LibC++
47 Group: Development/Libraries
48 Requires: %{name} = %{version}-%{release}
50 Requires: libstdc++-devel
52 Requires: llvm-libcxxabi-devel
56 Header files of LLVM LibC++ library.
58 %description devel -l pl.UTF-8
59 Pliki nagłówkowe biblioteki LLVM LibC++.
62 Summary: Static LLVM LibC++ library
63 Summary(pl.UTF-8): Statyczna biblioteka LLVM LibC++
64 Group: Development/Libraries
65 Requires: %{name}-devel = %{version}-%{release}
68 Static LLVM LibC++ library.
70 %description static -l pl.UTF-8
71 Statyczna biblioteka LLVM LibC++.
74 %setup -q -c -a1 -a2 -a3
76 %{__mv} libcxx-%{version}.src libcxx
77 %{__mv} libcxxabi-%{version}.src libcxxabi
78 %{__mv} llvm-%{version}.src llvm
79 %{__mv} cmake-%{version}.src cmake
83 # requires C++20 compiler (clang ? or gcc 10+)
88 %cmake -B build -S libcxx \
89 -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=ON \
90 -DLIBCXX_INCLUDE_BENCHMARKS=OFF \
91 -DLIBCXX_LIBDIR_SUFFIX="${libsubdir#lib}" \
93 -DLIBCXX_CXX_ABI=libstdc++ \
94 -DLIBCXX_CXX_ABI_INCLUDE_PATHS="%{_includedir}/c++/%{cxx_version};%{_includedir}/c++/%{cxx_version}/%{_host}"
96 -DLIBCXX_CXX_ABI=system-libcxxabi \
97 -DLIBCXX_CXX_ABI_INCLUDE_PATHS="%{_includedir}/libcxxabi"
103 rm -rf $RPM_BUILD_ROOT
105 %{__make} -C build install \
106 DESTDIR=$RPM_BUILD_ROOT
109 rm -rf $RPM_BUILD_ROOT
111 %post -p /sbin/ldconfig
112 %postun -p /sbin/ldconfig
115 %defattr(644,root,root,755)
116 %doc libcxx/{CREDITS.TXT,LICENSE.TXT,TODO.TXT}
117 %attr(755,root,root) %{_libdir}/libc++.so.*.*
118 %attr(755,root,root) %ghost %{_libdir}/libc++.so.1
121 %defattr(644,root,root,755)
122 %attr(755,root,root) %{_libdir}/libc++.so
123 %{_libdir}/libc++experimental.a
124 %dir %{_includedir}/c++
125 %{_includedir}/c++/v1
128 %defattr(644,root,root,755)