Add llvm-googletest/test packages

Clang/lld unit test requires some test binaries and
static library, create llvm-test and llvm-googletest
packages in llvm source code.

Signed-off-by: Chenxi Mao <chenxi.mao@suse.com>
(cherry picked from commit d5703ec84454fa5966446c42c614f4233a64657c)
This commit is contained in:
Chenxi Mao 2023-02-08 22:28:30 +08:00 committed by openeuler-sync-bot
parent 8f7d0f8d2d
commit 2385aada53

View File

@ -10,10 +10,12 @@
%global install_bindir %{install_prefix}/bin
%global install_includedir %{install_prefix}/include
%global install_libdir %{install_prefix}/lib
%global install_srcdir %{install_prefix}/src
%global pkg_bindir %{install_bindir}
%global pkg_includedir %{_includedir}/%{name}
%global pkg_libdir %{install_libdir}
%global pkg_srcdir %{install_srcdir}
%global max_link_jobs %{_smp_build_ncpus}
%global targets_to_build "all"
@ -24,7 +26,7 @@
Name: %{pkg_name}
Version: %{maj_ver}.%{min_ver}.%{patch_ver}
Release: 2
Release: 3
Summary: The Low Level Virtual Machine
License: NCSA
@ -97,6 +99,22 @@ Provides: llvm-static(major) = %{maj_ver}
%description static
Static libraries for the LLVM compiler infrastructure.
%package test
Summary: LLVM regression tests
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Provides: llvm-test(major) = %{maj_ver}
%description test
LLVM regression tests.
%package googletest
Summary: LLVM's modified googletest sources
%description googletest
LLVM's modified googletest sources.
%prep
%setup -T -q -b 1 -n cmake-%{version}.src
cd ..
@ -158,6 +176,23 @@ cd _build
mkdir -p %{buildroot}/%{_bindir}
# Install binaries needed for lit tests
for f in llvm-isel-fuzzer llvm-opt-fuzzer
do
install -m 0755 %{_builddir}/llvm-%{version}.src/_build/bin/$f %{buildroot}%{install_bindir}
done
install %{_builddir}/llvm-%{version}.src/_build/lib/libLLVMTestingSupport.a %{buildroot}%{install_libdir}
# Install gtest sources so clang can use them for gtest
install -d %{buildroot}%{install_srcdir}
install -d %{buildroot}%{install_srcdir}/utils/
cp -R %{_builddir}/llvm-%{version}.src/utils/unittest %{buildroot}%{install_srcdir}/utils/
# Clang needs these for running lit tests.
cp %{_builddir}/llvm-%{version}.src/utils/update_cc_test_checks.py %{buildroot}%{install_srcdir}/utils/
cp -R %{_builddir}/llvm-%{version}.src/utils/UpdateTestChecks %{buildroot}%{install_srcdir}/utils/
# Add version suffix to binaries
for f in %{buildroot}/%{install_bindir}/*; do
filename=`basename $f`
@ -217,6 +252,18 @@ fi
%exclude %{_bindir}/llvm-config%{bin_suffix}
%exclude %{pkg_bindir}/llvm-config%{bin_suffix}-%{__isa_bits}
%{pkg_bindir}
%exclude %{_bindir}/not%{bin_suffix}
%exclude %{_bindir}/count%{bin_suffix}
%exclude %{_bindir}/yaml-bench%{bin_suffix}
%exclude %{_bindir}/lli-child-target%{bin_suffix}
%exclude %{_bindir}/llvm-isel-fuzzer%{bin_suffix}
%exclude %{_bindir}/llvm-opt-fuzzer%{bin_suffix}
%exclude %{pkg_bindir}/not
%exclude %{pkg_bindir}/count
%exclude %{pkg_bindir}/yaml-bench
%exclude %{pkg_bindir}/lli-child-target
%exclude %{pkg_bindir}/llvm-isel-fuzzer
%exclude %{pkg_bindir}/llvm-opt-fuzzer
%files libs
%license LICENSE.TXT
@ -248,8 +295,32 @@ fi
%files static
%license LICENSE.TXT
%{_libdir}/%{name}/lib/*.a
%exclude %{_libdir}/%{name}/lib/libLLVMTestingSupport.a
%files test
%license LICENSE.TXT
%{_bindir}/not%{bin_suffix}
%{_bindir}/count%{bin_suffix}
%{_bindir}/yaml-bench%{bin_suffix}
%{_bindir}/lli-child-target%{bin_suffix}
%{_bindir}/llvm-isel-fuzzer%{bin_suffix}
%{_bindir}/llvm-opt-fuzzer%{bin_suffix}
%{pkg_bindir}/not
%{pkg_bindir}/count
%{pkg_bindir}/yaml-bench
%{pkg_bindir}/lli-child-target
%{pkg_bindir}/llvm-isel-fuzzer
%{pkg_bindir}/llvm-opt-fuzzer
%files googletest
%license LICENSE.TXT
%{pkg_srcdir}/utils
%{_libdir}/%{name}/lib/libLLVMTestingSupport.a
%changelog
* Wed Feb 8 2023 Chenxi Mao <chenxi.mao@suse.com> - 15.0.6-3
- Create llvm-test/googletest to support clang/lld unit test.
* Fri Feb 3 2023 Chenxi Mao <chenxi.mao@suse.com> - 15.0.6-2
- Enable llvm utils tools.