mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Change search strategy for prebuilt GoogleTest/GoogleMock libraries
Prebuilt GoogleTest/GoogleMock libraries are now only searched, if GoogleTest source code wasn't found.
This commit is contained in:
parent
cbd6dea4ba
commit
7e71a9724f
@ -131,24 +131,26 @@ function(gnc_gtest_configure)
|
||||
endif()
|
||||
find_path(GTEST_INCLUDE_DIR gtest/gtest.h
|
||||
HINTS ${GTEST_ROOT}/include ${GMOCK_ROOT}/gtest/include /usr/include)
|
||||
unset(GTEST_SRC_DIR CACHE)
|
||||
find_path(GTEST_SRC_DIR src/gtest-all.cc
|
||||
HINTS ${GTEST_ROOT} ${GMOCK_ROOT}/gtest /usr/src/gtest)
|
||||
find_library(GTEST_SHARED_LIB gtest)
|
||||
find_library(GTEST_MAIN_LIB gtest_main)
|
||||
if (GTEST_SRC_DIR AND GTEST_INCLUDE_DIR)
|
||||
set(lib_gtest_SOURCES
|
||||
"${GTEST_SRC_DIR}/src/gtest_main.cc"
|
||||
"${GTEST_SRC_DIR}/src/gtest-all.cc"
|
||||
PARENT_SCOPE)
|
||||
set(GTEST_LIB "${CMAKE_BINARY_DIR}/common/test-core/libgtest.a" PARENT_SCOPE)
|
||||
else()
|
||||
find_library(GTEST_SHARED_LIB gtest)
|
||||
find_library(GTEST_MAIN_LIB gtest_main)
|
||||
if (GTEST_MAIN_LIB AND GTEST_SHARED_LIB)
|
||||
set(GTEST_LIB "${GTEST_MAIN_LIB};${GTEST_SHARED_LIB}" PARENT_SCOPE)
|
||||
endif()
|
||||
endif()
|
||||
if ((GTEST_SHARED_LIB OR GTEST_SRC_DIR) AND GTEST_INCLUDE_DIR)
|
||||
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||
find_package(Threads REQUIRED)
|
||||
set(GTEST_FOUND YES CACHE INTERNAL "Found GTest")
|
||||
if(GTEST_SHARED_LIB)
|
||||
set(GTEST_LIB "${GTEST_MAIN_LIB};${GTEST_SHARED_LIB}" PARENT_SCOPE)
|
||||
unset(GTEST_SRC_DIR CACHE)
|
||||
else()
|
||||
set(lib_gtest_SOURCES
|
||||
"${GTEST_SRC_DIR}/src/gtest_main.cc"
|
||||
"${GTEST_SRC_DIR}/src/gtest-all.cc"
|
||||
PARENT_SCOPE)
|
||||
set(GTEST_LIB "${CMAKE_BINARY_DIR}/common/test-core/libgtest.a" PARENT_SCOPE)
|
||||
endif()
|
||||
else()
|
||||
message(FATAL_ERROR "GTEST not found. Please install it or set GTEST_ROOT or GMOCK_ROOT")
|
||||
endif()
|
||||
@ -157,8 +159,6 @@ function(gnc_gtest_configure)
|
||||
find_path(GMOCK_INCLUDE_DIR gmock/gmock.h
|
||||
HINTS ${GMOCK_ROOT}/include /usr/include)
|
||||
unset(GMOCK_SRC_DIR CACHE)
|
||||
find_library(GMOCK_SHARED_LIB gmock)
|
||||
find_library(GMOCK_MAIN_LIB gmock_main)
|
||||
find_path(GMOCK_SRC_DIR src/gmock-all.cc
|
||||
HINTS ${GMOCK_ROOT} /usr/src/gmock)
|
||||
if (GMOCK_SRC_DIR)
|
||||
@ -170,15 +170,18 @@ function(gnc_gtest_configure)
|
||||
set(GMOCK_MAIN_SRC_DIR "${GMOCK_SRC_DIR}")
|
||||
endif()
|
||||
endif()
|
||||
if (GMOCK_SRC_DIR AND GMOCK_INCLUDE_DIR)
|
||||
set(GMOCK_SRC "${GMOCK_MAIN_SRC_DIR}/gmock-all.cc" PARENT_SCOPE)
|
||||
set(GMOCK_LIB "${CMAKE_BINARY_DIR}/common/test-core/libgmock.a" PARENT_SCOPE)
|
||||
else()
|
||||
find_library(GMOCK_SHARED_LIB gmock)
|
||||
find_library(GMOCK_MAIN_LIB gmock_main)
|
||||
if (GMOCK_MAIN_LIB AND GMOCK_SHARED_LIB)
|
||||
set(GMOCK_LIB "${GMOCK_SHARED_LIB};${GMOCK_MAIN_LIB}" PARENT_SCOPE)
|
||||
endif()
|
||||
endif()
|
||||
if (GMOCK_INCLUDE_DIR AND (GMOCK_SHARED_LIB OR GMOCK_SRC_DIR))
|
||||
set(GMOCK_FOUND YES PARENT_SCOPE)
|
||||
if(GMOCK_SHARED_LIB)
|
||||
set(GMOCK_LIB "${GMOCK_SHARED_LIB};${GMOCK_MAIN_LIB}" PARENT_SCOPE)
|
||||
unset(GMOCK_SRC_DIR CACHE)
|
||||
else()
|
||||
set(GMOCK_SRC "${GMOCK_MAIN_SRC_DIR}/gmock-all.cc" PARENT_SCOPE)
|
||||
set(GMOCK_LIB "${CMAKE_BINARY_DIR}/common/test-core/libgmock.a" PARENT_SCOPE)
|
||||
endif()
|
||||
else()
|
||||
message(FATAL_ERROR "GMOCK not found. Please install it or set GMOCK_ROOT")
|
||||
endif()
|
||||
|
@ -72,7 +72,7 @@ add_dependencies(check scm-test-core)
|
||||
gnc_add_scheme_deprecated_module ("gnucash unittest-support" "tests unittest-support" "scm-test-core" "")
|
||||
|
||||
|
||||
if(NOT GTEST_SHARED_LIB)
|
||||
if (GTEST_SRC_DIR)
|
||||
# in contrast to GoogleTest build system libraries libgtest.a and libgtest_main.a
|
||||
# are combined to one library libtest.a here
|
||||
add_library(gtest STATIC ${lib_gtest_SOURCES})
|
||||
@ -83,7 +83,7 @@ if(NOT GTEST_SHARED_LIB)
|
||||
endif()
|
||||
target_include_directories(gtest PUBLIC ${GTEST_INCLUDE_DIR} ${GTEST_SRC_DIR})
|
||||
endif()
|
||||
if(NOT GMOCK_SHARED_LIB)
|
||||
if (GMOCK_SRC_DIR)
|
||||
set (lib_gmock_SOURCES ${GMOCK_SRC})
|
||||
add_library(gmock STATIC ${lib_gmock_SOURCES})
|
||||
if (APPLE)
|
||||
|
Loading…
Reference in New Issue
Block a user