From 2292b6d856335b6c1ee352e9cb97d7a5b193c989 Mon Sep 17 00:00:00 2001 From: Peter Hill Date: Fri, 4 Dec 2020 15:43:47 +0000 Subject: [PATCH] CMake: Add namespaced ALIAS library Fixes #3125 --- googletest/CMakeLists.txt | 5 ++++- googletest/cmake/internal_utils.cmake | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/googletest/CMakeLists.txt b/googletest/CMakeLists.txt index 5e546ece23..c19961ecbf 100644 --- a/googletest/CMakeLists.txt +++ b/googletest/CMakeLists.txt @@ -92,10 +92,13 @@ include(cmake/internal_utils.cmake) config_compiler_and_linker() # Defined in internal_utils.cmake. +# Needed to set the namespace for both the export targets and the +# alias libraries +set(cmake_package_name GTest CACHE INTERNAL "") + # Create the CMake package file descriptors. if (INSTALL_GTEST) include(CMakePackageConfigHelpers) - set(cmake_package_name GTest) set(targets_export_name ${cmake_package_name}Targets CACHE INTERNAL "") set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated" CACHE INTERNAL "") set(cmake_files_install_dir "${CMAKE_INSTALL_LIBDIR}/cmake/${cmake_package_name}") diff --git a/googletest/cmake/internal_utils.cmake b/googletest/cmake/internal_utils.cmake index 37cf1efcc8..1442997522 100644 --- a/googletest/cmake/internal_utils.cmake +++ b/googletest/cmake/internal_utils.cmake @@ -148,6 +148,7 @@ function(cxx_library_with_type name type cxx_flags) # type can be either STATIC or SHARED to denote a static or shared library. # ARGN refers to additional arguments after 'cxx_flags'. add_library(${name} ${type} ${ARGN}) + add_library(${cmake_package_name}::${name} ALIAS ${name}) set_target_properties(${name} PROPERTIES COMPILE_FLAGS "${cxx_flags}")