FindGTest: Revert "Allow either "Debug" or "Release" configurations."

Revert commit a064b18f85 (FindGTest: Allow either "Debug" or "Release"
configurations., 2020-06-29, v3.19.0-rc1~584^2).  If both configurations
are found then `GTEST_LIBRARY` is populated in a way that breaks
`__gtest_determine_library_type`, and the imported target is not
created correctly.

Fixes: #21473
Issue: #17799
This commit is contained in:
Brad King
2020-11-20 09:29:08 -05:00
parent 1d1d78bbe1
commit 64dc4efc51

View File

@@ -96,27 +96,6 @@ function(__gtest_find_library _name)
mark_as_advanced(${_name})
endfunction()
function(__gtest_find_library_configuration _name _lib _cfg_suffix)
set(_libs ${_lib})
if(MSVC AND GTEST_MSVC_SEARCH STREQUAL "MD")
# The provided /MD project files for Google Test add -md suffixes to the
# library names.
list(INSERT _libs 0 ${_lib}-md)
endif()
list(TRANSFORM _libs APPEND "${_cfg_suffix}")
__gtest_find_library(${_name} ${_libs})
endfunction()
include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
function(__gtest_find_and_select_library_configurations _basename _lib)
__gtest_find_library_configuration(${_basename}_LIBRARY_RELEASE ${_lib} "")
__gtest_find_library_configuration(${_basename}_LIBRARY_DEBUG ${_lib} "d")
select_library_configurations(${_basename})
set(${_basename}_LIBRARY ${${_basename}_LIBRARY} PARENT_SCOPE)
endfunction()
macro(__gtest_determine_windows_library_type _var)
if(EXISTS "${${_var}}")
file(TO_NATIVE_PATH "${${_var}}" _lib_path)
@@ -208,13 +187,18 @@ find_path(GTEST_INCLUDE_DIR gtest/gtest.h
)
mark_as_advanced(GTEST_INCLUDE_DIR)
# Allow GTEST_LIBRARY and GTEST_MAIN_LIBRARY to be set manually, as the
# locations of the gtest and gtest_main libraries, respectively.
if(NOT GTEST_LIBRARY)
__gtest_find_and_select_library_configurations(GTEST gtest)
endif()
if(NOT GTEST_MAIN_LIBRARY)
__gtest_find_and_select_library_configurations(GTEST_MAIN gtest_main)
if(MSVC AND GTEST_MSVC_SEARCH STREQUAL "MD")
# The provided /MD project files for Google Test add -md suffixes to the
# library names.
__gtest_find_library(GTEST_LIBRARY gtest-md gtest)
__gtest_find_library(GTEST_LIBRARY_DEBUG gtest-mdd gtestd)
__gtest_find_library(GTEST_MAIN_LIBRARY gtest_main-md gtest_main)
__gtest_find_library(GTEST_MAIN_LIBRARY_DEBUG gtest_main-mdd gtest_maind)
else()
__gtest_find_library(GTEST_LIBRARY gtest)
__gtest_find_library(GTEST_LIBRARY_DEBUG gtestd)
__gtest_find_library(GTEST_MAIN_LIBRARY gtest_main)
__gtest_find_library(GTEST_MAIN_LIBRARY_DEBUG gtest_maind)
endif()
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)