aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArkady Shapkin <arkady.shapkin@gmail.com>2018-11-14 22:05:11 +0300
committerRobert Schumacher <roschuma@microsoft.com>2018-11-14 11:05:11 -0800
commit1ffc1b569dc27ef7b70c1861d5913516722947de (patch)
treef33fc31f20bfb8778163272c274028ad16bb5282
parent192493218a50905d6e63b032424bcdaf3726dcde (diff)
downloadvcpkg-1ffc1b569dc27ef7b70c1861d5913516722947de.tar.gz
vcpkg-1ffc1b569dc27ef7b70c1861d5913516722947de.zip
[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.
-rw-r--r--ports/gtest/0001-Enable-C-11-features-for-VS2015-fix-appveyor-fail.patch180
-rw-r--r--ports/gtest/CONTROL2
-rw-r--r--ports/gtest/portfile.cmake59
-rw-r--r--ports/gtest/usage2
4 files changed, 28 insertions, 215 deletions
diff --git a/ports/gtest/0001-Enable-C-11-features-for-VS2015-fix-appveyor-fail.patch b/ports/gtest/0001-Enable-C-11-features-for-VS2015-fix-appveyor-fail.patch
deleted file mode 100644
index b5082a1b2..000000000
--- a/ports/gtest/0001-Enable-C-11-features-for-VS2015-fix-appveyor-fail.patch
+++ /dev/null
@@ -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() {
diff --git a/ports/gtest/CONTROL b/ports/gtest/CONTROL
index fbb19eaf6..5b3a7c465 100644
--- a/ports/gtest/CONTROL
+++ b/ports/gtest/CONTROL
@@ -1,3 +1,3 @@
Source: gtest
-Version: 1.8.0-9
+Version: 1.8.1-1
Description: GoogleTest and GoogleMock testing frameworks.
diff --git a/ports/gtest/portfile.cmake b/ports/gtest/portfile.cmake
index 87b3ce907..4b0857de4 100644
--- a/ports/gtest/portfile.cmake
+++ b/ports/gtest/portfile.cmake
@@ -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)
+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.lib)
+
+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.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)
- 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-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()
diff --git a/ports/gtest/usage b/ports/gtest/usage
index fa226ceed..d40782e0e 100644
--- a/ports/gtest/usage
+++ b/ports/gtest/usage
@@ -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)