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 <BINARY_DIR> --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()
#------------------------------------------------------------------------------------