From 0807986303f5d498cee32d42c242940d00617ad9 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Fri, 10 Mar 2023 17:22:14 -0800 Subject: Add install targets for gtest Stand-alone builds need an installed version of gtest in order to run the unittests. Reviewed By: mgorny, kwk Differential Revision: https://reviews.llvm.org/D137890 --- third-party/unittest/CMakeLists.txt | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'third-party') diff --git a/third-party/unittest/CMakeLists.txt b/third-party/unittest/CMakeLists.txt index 302e9e0e8440..74a523b6dfcc 100644 --- a/third-party/unittest/CMakeLists.txt +++ b/third-party/unittest/CMakeLists.txt @@ -40,7 +40,13 @@ endif() # Do not build unittest libraries automatically, they will be pulled in # by unittests if these are built. + +set(BUILDTREE_ONLY BUILDTREE_ONLY) set(EXCLUDE_FROM_ALL ON) +if (LLVM_INSTALL_GTEST) + set(EXCLUDE_FROM_ALL OFF) + set(BUILDTREE_ONLY "") +endif () add_llvm_library(llvm_gtest googletest/src/gtest-all.cc @@ -53,7 +59,7 @@ add_llvm_library(llvm_gtest Support # Depends on llvm::raw_ostream # This is a library meant only for the build tree. - BUILDTREE_ONLY + ${BUILDTREE_ONLY} ) # The googletest and googlemock sources don't presently use the 'override' @@ -69,12 +75,22 @@ if (NOT LLVM_ENABLE_THREADS) endif () target_include_directories(llvm_gtest - PUBLIC googletest/include googlemock/include + PUBLIC $ + $ + $ + $ PRIVATE googletest googlemock ) add_subdirectory(UnitTestMain) +if (LLVM_INSTALL_GTEST) + install(TARGETS llvm_gtest llvm_gtest_main LLVMTestingSupport LLVMTestingAnnotations + ARCHIVE DESTINATION "lib${LLVM_LIBDIR_SUFFIX}" COMPONENT llvm_gtest) + 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 -- cgit v1.2.1