diff options
| author | Phil Christensen <philc@microsoft.com> | 2019-08-23 10:41:01 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-08-23 10:41:01 -0700 |
| commit | cf447c050c734fc71e5254ea9e05e1bc4a9d208d (patch) | |
| tree | 1c008b6cfae6a72ac53bb5c0aa738cf74e70a234 | |
| parent | bc5a1bf1a00d875da0440bd5dc5f80e19919688e (diff) | |
| parent | f9b5fe08866130156c534c5055f2b47e9e7313cf (diff) | |
| download | vcpkg-cf447c050c734fc71e5254ea9e05e1bc4a9d208d.tar.gz vcpkg-cf447c050c734fc71e5254ea9e05e1bc4a9d208d.zip | |
Merge pull request #7316 from JackBoosY/dev/jack/4167
[gtest]Re-fix port_main/port_maind libraries path and add gmock cmake files.
| -rw-r--r-- | ports/gtest/CONTROL | 2 | ||||
| -rw-r--r-- | ports/gtest/fix-gmock-cmake.patch | 30 | ||||
| -rw-r--r-- | ports/gtest/fix-main-lib-path.patch | 68 | ||||
| -rw-r--r-- | ports/gtest/portfile.cmake | 11 | ||||
| -rw-r--r-- | ports/gtest/usage | 5 |
5 files changed, 114 insertions, 2 deletions
diff --git a/ports/gtest/CONTROL b/ports/gtest/CONTROL index 97b5ad3a8..203c90aca 100644 --- a/ports/gtest/CONTROL +++ b/ports/gtest/CONTROL @@ -1,4 +1,4 @@ Source: gtest -Version: 2019-08-14 +Version: 2019-08-14-1 Homepage: https://github.com/google/googletest Description: GoogleTest and GoogleMock testing frameworks. diff --git a/ports/gtest/fix-gmock-cmake.patch b/ports/gtest/fix-gmock-cmake.patch new file mode 100644 index 000000000..6bb963a2b --- /dev/null +++ b/ports/gtest/fix-gmock-cmake.patch @@ -0,0 +1,30 @@ +diff --git a/googlemock/CMakeLists.txt b/googlemock/CMakeLists.txt +index 9d135ff..0be8a22 100644 +--- a/googlemock/CMakeLists.txt ++++ b/googlemock/CMakeLists.txt +@@ -66,6 +66,25 @@ endif() + # call it again here. + config_compiler_and_linker() # from ${gtest_dir}/cmake/internal_utils.cmake + ++# Create the CMake package file descriptors. ++if (INSTALL_GTEST) ++ include(CMakePackageConfigHelpers) ++ set(cmake_package_name GMock) ++ set(targets_export_name ${cmake_package_name}Targets CACHE INTERNAL "") ++ set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated" CACHE INTERNAL "") ++ set(cmake_files_install_dir "share/${cmake_package_name}") ++ set(version_file "${generated_dir}/${cmake_package_name}ConfigVersion.cmake") ++ write_basic_package_version_file(${version_file} COMPATIBILITY AnyNewerVersion) ++ install(EXPORT ${targets_export_name} ++ NAMESPACE ${cmake_package_name}:: ++ DESTINATION ${cmake_files_install_dir}) ++ set(config_file "${generated_dir}/${cmake_package_name}Config.cmake") ++ configure_package_config_file("${gtest_SOURCE_DIR}/cmake/Config.cmake.in" ++ "${config_file}" INSTALL_DESTINATION ${cmake_files_install_dir}) ++ install(FILES ${version_file} ${config_file} ++ DESTINATION ${cmake_files_install_dir}) ++endif() ++ + # Adds Google Mock's and Google Test's header directories to the search path. + set(gmock_build_include_dirs + "${gmock_SOURCE_DIR}/include" diff --git a/ports/gtest/fix-main-lib-path.patch b/ports/gtest/fix-main-lib-path.patch new file mode 100644 index 000000000..e07806eec --- /dev/null +++ b/ports/gtest/fix-main-lib-path.patch @@ -0,0 +1,68 @@ +diff --git a/googlemock/CMakeLists.txt b/googlemock/CMakeLists.txt +index 3e72d75..9d135ff 100644 +--- a/googlemock/CMakeLists.txt ++++ b/googlemock/CMakeLists.txt +@@ -115,7 +115,8 @@ endif() + ######################################################################## + # + # Install rules +-install_project(gmock gmock_main) ++install_project(gmock) ++install_project(gmock_main) + + ######################################################################## + # +diff --git a/googletest/CMakeLists.txt b/googletest/CMakeLists.txt +index e33718b..a049c2c 100644 +--- a/googletest/CMakeLists.txt ++++ b/googletest/CMakeLists.txt +@@ -136,7 +136,8 @@ target_link_libraries(gtest_main PUBLIC gtest) + ######################################################################## + # + # Install rules +-install_project(gtest gtest_main) ++install_project(gtest) ++install_project(gtest_main) + + ######################################################################## + # +diff --git a/googletest/cmake/internal_utils.cmake b/googletest/cmake/internal_utils.cmake +index 69defc8..cf7295a 100644 +--- a/googletest/cmake/internal_utils.cmake ++++ b/googletest/cmake/internal_utils.cmake +@@ -317,11 +317,15 @@ function(install_project) + install(DIRECTORY "${PROJECT_SOURCE_DIR}/include/" + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") + # Install the project targets. ++ set (LIB_INSTALL_DST ${CMAKE_INSTALL_LIBDIR}) ++ if (${ARGN} MATCHES "_main") ++ set (LIB_INSTALL_DST ${CMAKE_INSTALL_LIBDIR}/manual-link) ++ endif() + install(TARGETS ${ARGN} + EXPORT ${targets_export_name} + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" +- ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" +- LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") ++ ARCHIVE DESTINATION "${LIB_INSTALL_DST}" ++ LIBRARY DESTINATION "${LIB_INSTALL_DST}") + if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + # Install PDBs + foreach(t ${ARGN}) +@@ -330,7 +334,7 @@ function(install_project) + get_target_property(t_pdb_output_directory ${t} PDB_OUTPUT_DIRECTORY) + install(FILES + "${t_pdb_output_directory}/\${CMAKE_INSTALL_CONFIG_NAME}/$<$<CONFIG:Debug>:${t_pdb_name_debug}>$<$<NOT:$<CONFIG:Debug>>:${t_pdb_name}>.pdb" +- DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ DESTINATION ${LIB_INSTALL_DST} + OPTIONAL) + endforeach() + endif() +@@ -340,7 +344,7 @@ function(install_project) + configure_file("${PROJECT_SOURCE_DIR}/cmake/${t}.pc.in" + "${configured_pc}" @ONLY) + install(FILES "${configured_pc}" +- DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") ++ DESTINATION "${LIB_INSTALL_DST}/pkgconfig") + endforeach() + endif() + endfunction() diff --git a/ports/gtest/portfile.cmake b/ports/gtest/portfile.cmake index c6fd0162c..2c36341ef 100644 --- a/ports/gtest/portfile.cmake +++ b/ports/gtest/portfile.cmake @@ -11,7 +11,9 @@ vcpkg_from_github( SHA512 fc874a7977f11be58dc63993b520b4ae6ca43654fb5250c8b56df62a21f4dca8fcbdc81dfa106374b2bb7c59bc88952fbfc0e3ae4c7d63fdb502afbaeb39c822 HEAD_REF master PATCHES - ${CMAKE_CURRENT_LIST_DIR}/0002-Fix-z7-override.patch + 0002-Fix-z7-override.patch + fix-main-lib-path.patch + fix-gmock-cmake.patch ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" GTEST_FORCE_SHARED_CRT) @@ -28,6 +30,7 @@ vcpkg_configure_cmake( vcpkg_install_cmake() vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/GTest) +vcpkg_fixup_cmake_targets(CONFIG_PATH share/GMock) file( INSTALL @@ -49,6 +52,12 @@ file( file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(INSTALL ${SOURCE_PATH}/googletest/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/gtest RENAME copyright) +# Install gmock cmake files. +file(GLOB GMOCK_CMAKE_FILES ${CURRENT_PACKAGES_DIR}/share/gtest/GMock*.cmake) +file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/gmock) +file(COPY ${GMOCK_CMAKE_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/share/gmock) +file(REMOVE ${GMOCK_CMAKE_FILES}) + if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/gtest_maind.lib) file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gtest_maind.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/gtest_maind.lib) diff --git a/ports/gtest/usage b/ports/gtest/usage index d40782e0e..9ba65996e 100644 --- a/ports/gtest/usage +++ b/ports/gtest/usage @@ -1,6 +1,11 @@ The package gtest is compatible with built-in CMake targets:
enable_testing()
+
find_package(GTest MODULE REQUIRED)
target_link_libraries(main PRIVATE GTest::GTest GTest::Main)
+
+ find_package(GMock CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE GMock::gmock GMock::gmock_main)
+
add_test(AllTestsInMain main)
|
