diff -ur root-6.22.00.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.22.00/cmake/modules/SearchInstalledSoftware.cmake --- root-6.22.00.orig/cmake/modules/SearchInstalledSoftware.cmake 2020-06-14 17:51:48.000000000 +0200 +++ root-6.22.00/cmake/modules/SearchInstalledSoftware.cmake 2020-06-21 18:29:13.973655810 +0200 @@ -1592,100 +1592,17 @@ #---Download googletest-------------------------------------------------------------- if (testing) - # FIXME: Remove our version of gtest in roottest. We can reuse this one. - # Add googletest - # http://stackoverflow.com/questions/9689183/cmake-googletest + # Workaround for missing libraries in Fedora's gmock packaging < 1.8.0 + if(EXISTS ${CMAKE_SOURCE_DIR}/googlemock) + set(_G_LIBRARY_PATH ${CMAKE_SOURCE_DIR}/googlemock) - set(_gtest_byproduct_binary_dir - ${CMAKE_CURRENT_BINARY_DIR}/googletest-prefix/src/googletest-build) - set(_gtest_byproducts - ${_gtest_byproduct_binary_dir}/lib/libgtest.a - ${_gtest_byproduct_binary_dir}/lib/libgtest_main.a - ${_gtest_byproduct_binary_dir}/lib/libgmock.a - ${_gtest_byproduct_binary_dir}/lib/libgmock_main.a - ) - - if(MSVC) - set(EXTRA_GTEST_OPTS - -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=${_gtest_byproduct_binary_dir}/lib/ - -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_MINSIZEREL:PATH=${_gtest_byproduct_binary_dir}/lib/ - -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=${_gtest_byproduct_binary_dir}/lib/ - -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO:PATH=${_gtest_byproduct_binary_dir}/lib/ - -Dgtest_force_shared_crt=ON - BUILD_COMMAND ${CMAKE_COMMAND} --build --config Release) - endif() - if(APPLE) - set(EXTRA_GTEST_OPTS - -DCMAKE_OSX_SYSROOT=${CMAKE_OSX_SYSROOT}) - endif() - - ExternalProject_Add( - googletest - GIT_REPOSITORY https://github.com/google/googletest.git - GIT_SHALLOW 1 - GIT_TAG release-1.10.0 - UPDATE_COMMAND "" - # TIMEOUT 10 - # # Force separate output paths for debug and release builds to allow easy - # # identification of correct lib in subsequent TARGET_LINK_LIBRARIES commands - # CMAKE_ARGS -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=DebugLibs - # -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=ReleaseLibs - # -Dgtest_force_shared_crt=ON - CMAKE_ARGS -G ${CMAKE_GENERATOR} - -DCMAKE_BUILD_TYPE=Release - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} - -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} - -DCMAKE_CXX_FLAGS=${ROOT_EXTERNAL_CXX_FLAGS} - -DCMAKE_AR=${CMAKE_AR} - -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} - ${EXTRA_GTEST_OPTS} - # Disable install step - INSTALL_COMMAND "" - BUILD_BYPRODUCTS ${_gtest_byproducts} - # Wrap download, configure and build steps in a script to log output - LOG_DOWNLOAD ON - LOG_CONFIGURE ON - LOG_BUILD ON) - - # Specify include dirs for gtest and gmock - ExternalProject_Get_Property(googletest source_dir) - set(GTEST_INCLUDE_DIR ${source_dir}/googletest/include) - set(GMOCK_INCLUDE_DIR ${source_dir}/googlemock/include) - # Create the directories. Prevents bug https://gitlab.kitware.com/cmake/cmake/issues/15052 - file(MAKE_DIRECTORY ${GTEST_INCLUDE_DIR} ${GMOCK_INCLUDE_DIR}) - - # Libraries - ExternalProject_Get_Property(googletest binary_dir) - set(_G_LIBRARY_PATH ${binary_dir}/lib/) - - # Use gmock_main instead of gtest_main because it initializes gtest as well. - # Note: The libraries are listed in reverse order of their dependancies. - foreach(lib gtest gtest_main gmock gmock_main) + foreach(lib gmock gmock_main) add_library(${lib} IMPORTED STATIC GLOBAL) - set_target_properties(${lib} PROPERTIES - IMPORTED_LOCATION "${_G_LIBRARY_PATH}${CMAKE_STATIC_LIBRARY_PREFIX}${lib}${CMAKE_STATIC_LIBRARY_SUFFIX}" - INTERFACE_INCLUDE_DIRECTORIES "${GTEST_INCLUDE_DIRS}" - ) - add_dependencies(${lib} googletest) - if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND - ${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER_EQUAL 9) - target_compile_options(${lib} INTERFACE -Wno-deprecated-copy) - endif() endforeach() - # Once we require at least cmake 3.11, target_include_directories will work for imported targets - # Because of https://gitlab.kitware.com/cmake/cmake/-/merge_requests/1264 - # We need this workaround: - SET_PROPERTY(TARGET gtest APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${GTEST_INCLUDE_DIR}) - SET_PROPERTY(TARGET gmock APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${GMOCK_INCLUDE_DIR}) - #target_include_directories(gtest INTERFACE ${GTEST_INCLUDE_DIR}) - #target_include_directories(gmock INTERFACE ${GMOCK_INCLUDE_DIR}) - - set_property(TARGET gtest PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX}) - set_property(TARGET gtest_main PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX}) set_property(TARGET gmock PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gmock${CMAKE_STATIC_LIBRARY_SUFFIX}) set_property(TARGET gmock_main PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gmock_main${CMAKE_STATIC_LIBRARY_SUFFIX}) + endif() endif() #------------------------------------------------------------------------------------