mirror of
https://github.com/cemu-project/vcpkg.git
synced 2025-02-22 10:37:10 +01:00
[gtest]Re-fix port_main/port_maind libraries path and add gmock cmake files.
This commit is contained in:
parent
2467136b31
commit
2865da8f4a
@ -1,4 +1,4 @@
|
||||
Source: gtest
|
||||
Version: 2019-01-04-2
|
||||
Version: 2019-01-04-3
|
||||
Homepage: https://github.com/google/googletest
|
||||
Description: GoogleTest and GoogleMock testing frameworks.
|
||||
|
30
ports/gtest/fix-gmock-cmake.patch
Normal file
30
ports/gtest/fix-gmock-cmake.patch
Normal file
@ -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"
|
68
ports/gtest/fix-main-lib-path.patch
Normal file
68
ports/gtest/fix-main-lib-path.patch
Normal file
@ -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()
|
@ -11,7 +11,9 @@ vcpkg_from_github(
|
||||
SHA512 1642a9cf1923d00c52c346399941517787431dad3e6d3a5da07bc02243a231a95e30e0a9568ffd29bb9b9757f15c1c47d2d811c2bedb301f2d27cf912be0a534
|
||||
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,31 +52,11 @@ file(
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
|
||||
file(INSTALL ${SOURCE_PATH}/googletest/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/gtest RENAME copyright)
|
||||
|
||||
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)
|
||||
file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gmock_maind.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/gmock_maind.lib)
|
||||
|
||||
file(READ ${CURRENT_PACKAGES_DIR}/share/gtest/GTestTargets-debug.cmake DEBUG_CONFIG)
|
||||
string(REPLACE "\${_IMPORT_PREFIX}/debug/lib/gtest_maind.lib"
|
||||
"\${_IMPORT_PREFIX}/debug/lib/manual-link/gtest_maind.lib" DEBUG_CONFIG "${DEBUG_CONFIG}")
|
||||
string(REPLACE "\${_IMPORT_PREFIX}/debug/lib/gmock_maind.lib"
|
||||
"\${_IMPORT_PREFIX}/debug/lib/manual-link/gmock_maind.lib" DEBUG_CONFIG "${DEBUG_CONFIG}")
|
||||
file(WRITE ${CURRENT_PACKAGES_DIR}/share/gtest/GTestTargets-debug.cmake "${DEBUG_CONFIG}")
|
||||
endif()
|
||||
|
||||
if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/gtest_main.lib)
|
||||
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link)
|
||||
file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gtest_main.lib ${CURRENT_PACKAGES_DIR}/lib/manual-link/gtest_main.lib)
|
||||
file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gmock_main.lib ${CURRENT_PACKAGES_DIR}/lib/manual-link/gmock_main.lib)
|
||||
|
||||
file(READ ${CURRENT_PACKAGES_DIR}/share/gtest/GTestTargets-release.cmake RELEASE_CONFIG)
|
||||
string(REPLACE "\${_IMPORT_PREFIX}/lib/gtest_main.lib"
|
||||
"\${_IMPORT_PREFIX}/lib/manual-link/gtest_main.lib" RELEASE_CONFIG "${RELEASE_CONFIG}")
|
||||
string(REPLACE "\${_IMPORT_PREFIX}/lib/gmock_main.lib"
|
||||
"\${_IMPORT_PREFIX}/lib/manual-link/gmock_main.lib" RELEASE_CONFIG "${RELEASE_CONFIG}")
|
||||
file(WRITE ${CURRENT_PACKAGES_DIR}/share/gtest/GTestTargets-release.cmake "${RELEASE_CONFIG}")
|
||||
endif()
|
||||
# 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})
|
||||
|
||||
vcpkg_copy_pdbs()
|
||||
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user