Merge pull request #868 from mymedia2/master

Search for GoogleTest via pkg-config first
This commit is contained in:
Jordan Maples [MSFT] 2020-08-12 15:08:54 -07:00 committed by GitHub
commit 9355982fc5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,36 +1,41 @@
cmake_minimum_required(VERSION 3.0.2) cmake_minimum_required(VERSION 3.0.2)
project(GSLTests CXX) project(GSLTests CXX)
include(FindPkgConfig)
# will make visual studio generated project group files # will make visual studio generated project group files
set_property(GLOBAL PROPERTY USE_FOLDERS ON) set_property(GLOBAL PROPERTY USE_FOLDERS ON)
configure_file(CMakeLists.txt.in googletest-download/CMakeLists.txt) pkg_search_module(GTestMain gtest_main)
execute_process( if (NOT GTestMain_FOUND)
configure_file(CMakeLists.txt.in googletest-download/CMakeLists.txt)
execute_process(
COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
RESULT_VARIABLE result RESULT_VARIABLE result
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download
) )
if(result) if(result)
message(FATAL_ERROR "CMake step for googletest failed: ${result}") message(FATAL_ERROR "CMake step for googletest failed: ${result}")
endif() endif()
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} --build . COMMAND ${CMAKE_COMMAND} --build .
RESULT_VARIABLE result RESULT_VARIABLE result
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download
) )
if(result) if(result)
message(FATAL_ERROR "CMake step for googletest failed: ${result}") message(FATAL_ERROR "CMake step for googletest failed: ${result}")
endif() endif()
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
set(GTestMain_LIBRARIES gtest_main)
add_subdirectory( add_subdirectory(
${CMAKE_CURRENT_BINARY_DIR}/googletest-src ${CMAKE_CURRENT_BINARY_DIR}/googletest-src
${CMAKE_CURRENT_BINARY_DIR}/googletest-build ${CMAKE_CURRENT_BINARY_DIR}/googletest-build
EXCLUDE_FROM_ALL EXCLUDE_FROM_ALL
) )
endif()
if (MSVC AND (GSL_CXX_STANDARD EQUAL 17)) if (MSVC AND (GSL_CXX_STANDARD EQUAL 17))
set(GSL_CPLUSPLUS_OPT -Zc:__cplusplus -permissive-) set(GSL_CPLUSPLUS_OPT -Zc:__cplusplus -permissive-)
@ -149,7 +154,7 @@ function(add_gsl_test name)
target_link_libraries(${name} target_link_libraries(${name}
GSL GSL
gsl_tests_config gsl_tests_config
gtest_main ${GTestMain_LIBRARIES}
) )
add_test( add_test(
${name} ${name}
@ -254,7 +259,7 @@ function(add_gsl_test_noexcept name)
target_link_libraries(${name} target_link_libraries(${name}
GSL GSL
gsl_tests_config_noexcept gsl_tests_config_noexcept
gtest_main ${GTestMain_LIBRARIES}
) )
add_test( add_test(
${name} ${name}