This commit is contained in:
Konrad Kleine 2022-11-17 09:10:57 +00:00 committed by Tulio Magno Quites Machado Filho
parent 9812a7f1ae
commit 87fcbdde75
3 changed files with 89 additions and 1 deletions

View File

@ -0,0 +1,32 @@
From 8cc3870f09d728d9017c72eba9520117a4283fee Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar@redhat.com>
Date: Thu, 17 Nov 2022 09:01:10 +0000
Subject: Add install targets for gtest
Stand-alone builds need an installed version of gtest in order to run
the unittests.
Differential Revision: https://reviews.llvm.org/D137890
---
llvm/CMakeLists.txt | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt
index 60e1f29620af..d91338532815 100644
--- a/llvm/CMakeLists.txt
+++ b/llvm/CMakeLists.txt
@@ -693,6 +693,11 @@ option(LLVM_BUILD_TESTS
"Build LLVM unit tests. If OFF, just generate build targets." OFF)
option(LLVM_INCLUDE_TESTS "Generate build targets for the LLVM unit tests." ON)
+option(LLVM_INSTALL_GTEST
+ "Install the llvm gtest library. This should be on if you want to do
+ stand-alone builds of the other projects and run their unit tests." OFF)
+
+
option(LLVM_BUILD_BENCHMARKS "Add LLVM benchmark targets to the list of default
targets. If OFF, benchmarks still could be built using Benchmarks target." OFF)
option(LLVM_INCLUDE_BENCHMARKS "Generate benchmark targets. If OFF, benchmarks can't be built." ON)
--
2.34.3

View File

@ -0,0 +1,47 @@
From 8cc3870f09d728d9017c72eba9520117a4283fee Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar@redhat.com>
Date: Thu, 17 Nov 2022 09:01:10 +0000
Subject: Add install targets for gtest
Stand-alone builds need an installed version of gtest in order to run
the unittests.
Differential Revision: https://reviews.llvm.org/D137890
---
third-party/unittest/CMakeLists.txt | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/third-party/unittest/CMakeLists.txt b/third-party/unittest/CMakeLists.txt
index 0e54e0e57c35..1d2a52730d7d 100644
--- a/third-party/unittest/CMakeLists.txt
+++ b/third-party/unittest/CMakeLists.txt
@@ -65,12 +65,25 @@ if (NOT LLVM_ENABLE_THREADS)
endif ()
target_include_directories(llvm_gtest
- PUBLIC googletest/include googlemock/include
+ PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/googletest/include>
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/googlemock/include>
+ $<INSTALL_INTERFACE:include/llvm-gtest/>
+ $<INSTALL_INTERFACE:include/llvm-gmock/>
PRIVATE googletest googlemock
)
add_subdirectory(UnitTestMain)
+if (LLVM_INSTALL_GTEST)
+export(TARGETS llvm_gtest llvm_gtest_main LLVMTestingSupport FILE LLVMGTestConfig.cmake)
+install(TARGETS llvm_gtest llvm_gtest_main LLVMTestingSupport EXPORT LLVMGTestConfig
+ ARCHIVE DESTINATION "lib${LLVM_LIBDIR_SUFFIX}" COMPONENT llvm_gtest)
+ install(EXPORT LLVMGTestConfig DESTINATION ${LLVM_INSTALL_PACKAGE_DIR} COMPONENT llvm_gtest)
+ add_llvm_install_targets(install-llvm_gtest COMPONENT llvm_gtest DEPENDS llvm_gtest LLVMGTestConfig.cmake)
+ install(DIRECTORY googletest/include/gtest/ DESTINATION include/llvm-gtest/gtest/ COMPONENT llvm_gtest)
+ install(DIRECTORY googlemock/include/gmock/ DESTINATION include/llvm-gmock/gmock/ COMPONENT llvm_gtest)
+endif()
+
# When LLVM_LINK_LLVM_DYLIB is enabled, libLLVM.so is added to the interface
# link libraries for gtest and gtest_main. This means that any target, like
# unittests for example, that links against gtest will be forced to link
--
2.34.3

View File

@ -97,6 +97,11 @@ Patch2: 0003-XFAIL-missing-abstract-variable.ll-test-on-ppc64le.patch
# TODO: Can be dropped for LLVM 16, see https://reviews.llvm.org/D131282.
Patch3: 0001-Install-clang-tblgen.patch
# See https://reviews.llvm.org/D137890 for the next two patches
Patch2: 0001-llvm-Add-install-targets-for-gtest.patch
# Patching third-party dir with a 200 offset in patch number
Patch201: 0201-third-party-Add-install-targets-for-gtest.patch
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: clang
@ -216,9 +221,12 @@ LLVM's modified googletest sources.
cd ..
mv %{cmake_srcdir} cmake
%setup -T -q -b 3 -n %{third_party_srcdir}
%autopatch -m200 -p2
cd ..
mv %{third_party_srcdir} third-party
%autosetup -n %{llvm_srcdir} -p2
%setup -T -q -b 0 -n %{llvm_srcdir}
%autopatch -M200 -p2
%py3_shebang_fix \
test/BugPoint/compile-custom.ll.py \
@ -271,6 +279,7 @@ export ASMFLAGS=$CFLAGS
\
-DLLVM_INCLUDE_TESTS:BOOL=ON \
-DLLVM_BUILD_TESTS:BOOL=ON \
-DLLVM_INSTALL_GTEST:BOOL=ON \
-DLLVM_LIT_ARGS=-v \
\
-DLLVM_INCLUDE_EXAMPLES:BOOL=ON \