mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-27 18:31:15 +08:00
[gtest] Update to version 1.8.1 (#4220)
* [gtest] Update to version 1.8.1 * [gtest] Fix typo in cmake adjustment code. Revert usage to follow CMake official guidelines.
This commit is contained in:
parent
192493218a
commit
1ffc1b569d
@ -1,180 +0,0 @@
|
||||
diff --git a/.gitignore b/.gitignore
|
||||
index ce310bc..08a67cd 100644
|
||||
--- a/.gitignore
|
||||
+++ b/.gitignore
|
||||
@@ -1,2 +1,15 @@
|
||||
# Ignore CI build directory
|
||||
build/
|
||||
+_build/
|
||||
+
|
||||
+# Visual Studio files
|
||||
+*.sdf
|
||||
+*.opensdf
|
||||
+*.VC.opendb
|
||||
+*.suo
|
||||
+*.user
|
||||
+_ReSharper.Caches/
|
||||
+Win32-Debug/
|
||||
+Win32-Release/
|
||||
+x64-Debug/
|
||||
+x64-Release/
|
||||
diff --git a/googlemock/test/gmock-matchers_test.cc b/googlemock/test/gmock-matchers_test.cc
|
||||
index 9f62c3d..eaba362 100644
|
||||
--- a/googlemock/test/gmock-matchers_test.cc
|
||||
+++ b/googlemock/test/gmock-matchers_test.cc
|
||||
@@ -58,6 +58,11 @@
|
||||
# include <forward_list> // NOLINT
|
||||
#endif
|
||||
|
||||
+// Disable MSVC warning: "decorated name length exceeded, name was truncated".
|
||||
+#ifdef _MSC_VER
|
||||
+# pragma warning(disable:4503)
|
||||
+#endif
|
||||
+
|
||||
namespace testing {
|
||||
|
||||
namespace internal {
|
||||
diff --git a/googletest/include/gtest/internal/gtest-port.h b/googletest/include/gtest/internal/gtest-port.h
|
||||
index 0094ed5..09779fa 100644
|
||||
--- a/googletest/include/gtest/internal/gtest-port.h
|
||||
+++ b/googletest/include/gtest/internal/gtest-port.h
|
||||
@@ -323,7 +323,7 @@
|
||||
// -std={c,gnu}++{0x,11} is passed. The C++11 standard specifies a
|
||||
// value for __cplusplus, and recent versions of clang, gcc, and
|
||||
// probably other compilers set that too in C++11 mode.
|
||||
-# if __GXX_EXPERIMENTAL_CXX0X__ || __cplusplus >= 201103L
|
||||
+# if __GXX_EXPERIMENTAL_CXX0X__ || __cplusplus >= 201103L || _MSC_VER >= 1900
|
||||
// Compiling in at least C++11 mode.
|
||||
# define GTEST_LANG_CXX11 1
|
||||
# else
|
||||
@@ -355,12 +355,16 @@
|
||||
#if GTEST_STDLIB_CXX11
|
||||
# define GTEST_HAS_STD_BEGIN_AND_END_ 1
|
||||
# define GTEST_HAS_STD_FORWARD_LIST_ 1
|
||||
-# define GTEST_HAS_STD_FUNCTION_ 1
|
||||
+# if !defined(_MSC_VER) || (_MSC_FULL_VER >= 190023824) // works only with VS2015U2 and better
|
||||
+# define GTEST_HAS_STD_FUNCTION_ 1
|
||||
+# endif
|
||||
# define GTEST_HAS_STD_INITIALIZER_LIST_ 1
|
||||
# define GTEST_HAS_STD_MOVE_ 1
|
||||
# define GTEST_HAS_STD_SHARED_PTR_ 1
|
||||
# define GTEST_HAS_STD_TYPE_TRAITS_ 1
|
||||
# define GTEST_HAS_STD_UNIQUE_PTR_ 1
|
||||
+# define GTEST_HAS_UNORDERED_MAP_ 1
|
||||
+# define GTEST_HAS_UNORDERED_SET_ 1
|
||||
#endif
|
||||
|
||||
// C++11 specifies that <tuple> provides std::tuple.
|
||||
@@ -616,7 +620,7 @@ struct _RTL_CRITICAL_SECTION;
|
||||
// Determines if hash_map/hash_set are available.
|
||||
// Only used for testing against those containers.
|
||||
#if !defined(GTEST_HAS_HASH_MAP_)
|
||||
-# if _MSC_VER
|
||||
+# if defined(_MSC_VER) && (_MSC_VER < 1900)
|
||||
# define GTEST_HAS_HASH_MAP_ 1 // Indicates that hash_map is available.
|
||||
# define GTEST_HAS_HASH_SET_ 1 // Indicates that hash_set is available.
|
||||
# endif // _MSC_VER
|
||||
@@ -629,6 +633,9 @@ struct _RTL_CRITICAL_SECTION;
|
||||
# if GTEST_OS_LINUX_ANDROID && defined(_STLPORT_MAJOR)
|
||||
// STLport, provided with the Android NDK, has neither <tr1/tuple> or <tuple>.
|
||||
# define GTEST_HAS_TR1_TUPLE 0
|
||||
+# elif defined(_MSC_VER) && (_MSC_VER >= 1910)
|
||||
+// Prevent `warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVED.`
|
||||
+# define GTEST_HAS_TR1_TUPLE 0
|
||||
# else
|
||||
// The user didn't tell us not to do it, so we assume it's OK.
|
||||
# define GTEST_HAS_TR1_TUPLE 1
|
||||
@@ -813,7 +820,7 @@ using ::std::tuple_size;
|
||||
// value-parameterized tests are enabled. The implementation doesn't
|
||||
// work on Sun Studio since it doesn't understand templated conversion
|
||||
// operators.
|
||||
-#if GTEST_HAS_PARAM_TEST && GTEST_HAS_TR1_TUPLE && !defined(__SUNPRO_CC)
|
||||
+#if GTEST_HAS_PARAM_TEST && (GTEST_HAS_TR1_TUPLE || GTEST_HAS_STD_TUPLE_) && !defined(__SUNPRO_CC)
|
||||
# define GTEST_HAS_COMBINE 1
|
||||
#endif
|
||||
|
||||
diff --git a/googletest/test/gtest-printers_test.cc b/googletest/test/gtest-printers_test.cc
|
||||
index 3e97cc2..6320563 100644
|
||||
--- a/googletest/test/gtest-printers_test.cc
|
||||
+++ b/googletest/test/gtest-printers_test.cc
|
||||
@@ -51,10 +51,15 @@
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
// hash_map and hash_set are available under Visual C++, or on Linux.
|
||||
-#if GTEST_HAS_HASH_MAP_
|
||||
+#if GTEST_HAS_UNORDERED_MAP_
|
||||
+# include <unordered_map> // NOLINT
|
||||
+#elif GTEST_HAS_HASH_MAP_
|
||||
# include <hash_map> // NOLINT
|
||||
#endif // GTEST_HAS_HASH_MAP_
|
||||
-#if GTEST_HAS_HASH_SET_
|
||||
+
|
||||
+#if GTEST_HAS_UNORDERED_SET_
|
||||
+# include <unordered_set> // NOLINT
|
||||
+#elif GTEST_HAS_HASH_SET_
|
||||
# include <hash_set> // NOLINT
|
||||
#endif // GTEST_HAS_HASH_SET_
|
||||
|
||||
@@ -217,18 +222,46 @@ using ::testing::internal::string;
|
||||
// The hash_* classes are not part of the C++ standard. STLport
|
||||
// defines them in namespace std. MSVC defines them in ::stdext. GCC
|
||||
// defines them in ::.
|
||||
+#if GTEST_HAS_UNORDERED_MAP_
|
||||
+
|
||||
+#define GTEST_HAS_HASH_MAP_ 1
|
||||
+template<class Key, class T>
|
||||
+using hash_map = ::std::unordered_map<Key, T>;
|
||||
+template<class Key, class T>
|
||||
+using hash_multimap = ::std::unordered_multimap<Key, T>;
|
||||
+
|
||||
+#elif GTEST_HAS_HASH_MAP_
|
||||
+
|
||||
#ifdef _STLP_HASH_MAP // We got <hash_map> from STLport.
|
||||
using ::std::hash_map;
|
||||
-using ::std::hash_set;
|
||||
using ::std::hash_multimap;
|
||||
-using ::std::hash_multiset;
|
||||
#elif _MSC_VER
|
||||
using ::stdext::hash_map;
|
||||
-using ::stdext::hash_set;
|
||||
using ::stdext::hash_multimap;
|
||||
+#endif
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
+#if GTEST_HAS_UNORDERED_SET_
|
||||
+
|
||||
+#define GTEST_HAS_HASH_SET_ 1
|
||||
+template<class Key>
|
||||
+using hash_set = ::std::unordered_set<Key>;
|
||||
+template<class Key>
|
||||
+using hash_multiset = ::std::unordered_multiset<Key>;
|
||||
+
|
||||
+#elif GTEST_HAS_HASH_SET_
|
||||
+
|
||||
+#ifdef _STLP_HASH_MAP // We got <hash_map> from STLport.
|
||||
+using ::std::hash_set;
|
||||
+using ::std::hash_multiset;
|
||||
+#elif _MSC_VER
|
||||
+using ::stdext::hash_set;
|
||||
using ::stdext::hash_multiset;
|
||||
#endif
|
||||
|
||||
+#endif
|
||||
+
|
||||
// Prints a value to a string using the universal value printer. This
|
||||
// is a helper for testing UniversalPrinter<T>::Print() for various types.
|
||||
template <typename T>
|
||||
diff --git a/googletest/test/gtest_catch_exceptions_test_.cc b/googletest/test/gtest_catch_exceptions_test_.cc
|
||||
index d0fc82c..c6d953c 100644
|
||||
--- a/googletest/test/gtest_catch_exceptions_test_.cc
|
||||
+++ b/googletest/test/gtest_catch_exceptions_test_.cc
|
||||
@@ -138,7 +138,7 @@ TEST_F(CxxExceptionInConstructorTest, ThrowsExceptionInConstructor) {
|
||||
}
|
||||
|
||||
// Exceptions in destructors are not supported in C++11.
|
||||
-#if !defined(__GXX_EXPERIMENTAL_CXX0X__) && __cplusplus < 201103L
|
||||
+#if !GTEST_LANG_CXX11
|
||||
class CxxExceptionInDestructorTest : public Test {
|
||||
public:
|
||||
static void TearDownTestCase() {
|
@ -1,3 +1,3 @@
|
||||
Source: gtest
|
||||
Version: 1.8.0-9
|
||||
Version: 1.8.1-1
|
||||
Description: GoogleTest and GoogleMock testing frameworks.
|
||||
|
@ -7,12 +7,11 @@ endif()
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO google/googletest
|
||||
REF ba96d0b1161f540656efdaed035b3c062b60e006
|
||||
SHA512 ce78098f973b45f4a177db387c42a56d5ea34407a2af278760b850c326e8450760a58991d62a5408f5df79f89fefd10fee71745b7e8669b2a6f74fa63a259600
|
||||
REF release-1.8.1
|
||||
SHA512 e6283c667558e1fd6e49fa96e52af0e415a3c8037afe1d28b7ff1ec4c2ef8f49beb70a9327b7fc77eb4052a58c4ccad8b5260ec90e4bceeac7a46ff59c4369d7
|
||||
HEAD_REF master
|
||||
PATCHES
|
||||
${CMAKE_CURRENT_LIST_DIR}/0001-Enable-C-11-features-for-VS2015-fix-appveyor-fail.patch
|
||||
${CMAKE_CURRENT_LIST_DIR}/0002-Fix-z7-override.patch
|
||||
PATCHES
|
||||
${CMAKE_CURRENT_LIST_DIR}/0002-Fix-z7-override.patch
|
||||
)
|
||||
|
||||
string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" GTEST_FORCE_SHARED_CRT)
|
||||
@ -20,16 +19,15 @@ string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" GTEST_FORCE_SHARED_CRT)
|
||||
vcpkg_configure_cmake(
|
||||
SOURCE_PATH ${SOURCE_PATH}
|
||||
PREFER_NINJA
|
||||
OPTIONS
|
||||
OPTIONS
|
||||
-DBUILD_GMOCK=ON
|
||||
-DBUILD_GTEST=ON
|
||||
-DCMAKE_DEBUG_POSTFIX=d
|
||||
-Dgtest_force_shared_crt=${GTEST_FORCE_SHARED_CRT}
|
||||
)
|
||||
|
||||
set(ENV{_CL_} "/D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING")
|
||||
|
||||
vcpkg_install_cmake()
|
||||
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/GTest)
|
||||
|
||||
file(
|
||||
INSTALL
|
||||
@ -50,35 +48,30 @@ file(
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
|
||||
file(INSTALL ${SOURCE_PATH}/googletest/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/gtest RENAME copyright)
|
||||
|
||||
# This block will be unnecessary in googletest 1.9.0 (or later).
|
||||
# These dll files are installed in ../bin directory by default settings.
|
||||
if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/gtest.dll)
|
||||
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin/)
|
||||
file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gtest.dll ${CURRENT_PACKAGES_DIR}/bin/gtest.dll)
|
||||
file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gtest_main.dll ${CURRENT_PACKAGES_DIR}/bin/gtest_main.dll)
|
||||
file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gmock.dll ${CURRENT_PACKAGES_DIR}/bin/gmock.dll)
|
||||
file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gmock_main.dll ${CURRENT_PACKAGES_DIR}/bin/gmock_main.dll)
|
||||
endif()
|
||||
if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/gtestd.dll)
|
||||
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin/)
|
||||
file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gtestd.dll ${CURRENT_PACKAGES_DIR}/debug/bin/gtestd.dll)
|
||||
file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gtest_maind.dll ${CURRENT_PACKAGES_DIR}/debug/bin/gtest_maind.dll)
|
||||
file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gmockd.dll ${CURRENT_PACKAGES_DIR}/debug/bin/gmockd.dll)
|
||||
file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gmock_maind.dll ${CURRENT_PACKAGES_DIR}/debug/bin/gmock_maind.dll)
|
||||
endif()
|
||||
if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/gtest.lib)
|
||||
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link)
|
||||
file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gtest.lib ${CURRENT_PACKAGES_DIR}/lib/manual-link/gtest.lib)
|
||||
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.lib ${CURRENT_PACKAGES_DIR}/lib/manual-link/gmock.lib)
|
||||
file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gmock_main.lib ${CURRENT_PACKAGES_DIR}/lib/manual-link/gmock_main.lib)
|
||||
endif()
|
||||
if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/gtestd.lib)
|
||||
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/gtestd.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/gtestd.lib)
|
||||
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/gmockd.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/gmockd.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()
|
||||
|
||||
vcpkg_copy_pdbs()
|
||||
|
@ -1,6 +1,6 @@
|
||||
The package gtest is compatible with built-in CMake targets:
|
||||
|
||||
enable_testing()
|
||||
find_package(GTest REQUIRED)
|
||||
find_package(GTest MODULE REQUIRED)
|
||||
target_link_libraries(main PRIVATE GTest::GTest GTest::Main)
|
||||
add_test(AllTestsInMain main)
|
||||
|
Loading…
x
Reference in New Issue
Block a user