aboutsummaryrefslogtreecommitdiff
path: root/ports/gtest
diff options
context:
space:
mode:
Diffstat (limited to 'ports/gtest')
-rw-r--r--ports/gtest/0001-Enable-C-11-features-for-VS2015-fix-appveyor-fail.patch37
-rw-r--r--ports/gtest/0002-Fix-z7-override.patch13
-rw-r--r--ports/gtest/CONTROL4
-rw-r--r--ports/gtest/portfile.cmake68
-rw-r--r--ports/gtest/usage6
5 files changed, 93 insertions, 35 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
index 274942482..b5082a1b2 100644
--- 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
@@ -1,16 +1,3 @@
-From 1695708beda0306f3b4dffd66f4be142425894a0 Mon Sep 17 00:00:00 2001
-From: Arkady Shapkin <arkady.shapkin@gmail.com>
-Date: Wed, 2 Mar 2016 02:53:10 +0300
-Subject: [PATCH] Enable C++11 features for VS2015 (fix appveyor fail)
-
----
- .gitignore | 13 ++++++++
- googlemock/test/gmock-matchers_test.cc | 5 +++
- googletest/include/gtest/internal/gtest-port.h | 10 ++++--
- googletest/test/gtest-printers_test.cc | 43 ++++++++++++++++++++++---
- googletest/test/gtest_catch_exceptions_test_.cc | 2 +-
- 5 files changed, 64 insertions(+), 9 deletions(-)
-
diff --git a/.gitignore b/.gitignore
index ce310bc..08a67cd 100644
--- a/.gitignore
@@ -48,7 +35,7 @@ index 9f62c3d..eaba362 100644
namespace internal {
diff --git a/googletest/include/gtest/internal/gtest-port.h b/googletest/include/gtest/internal/gtest-port.h
-index 0094ed5..c07c455 100644
+index 0094ed5..09779fa 100644
--- a/googletest/include/gtest/internal/gtest-port.h
+++ b/googletest/include/gtest/internal/gtest-port.h
@@ -323,7 +323,7 @@
@@ -87,6 +74,25 @@ index 0094ed5..c07c455 100644
# 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
@@ -172,6 +178,3 @@ index d0fc82c..c6d953c 100644
class CxxExceptionInDestructorTest : public Test {
public:
static void TearDownTestCase() {
---
-2.10.0.windows.1
-
diff --git a/ports/gtest/0002-Fix-z7-override.patch b/ports/gtest/0002-Fix-z7-override.patch
new file mode 100644
index 000000000..c8de56d09
--- /dev/null
+++ b/ports/gtest/0002-Fix-z7-override.patch
@@ -0,0 +1,13 @@
+diff --git a/googletest/cmake/internal_utils.cmake b/googletest/cmake/internal_utils.cmake
+index 777b91e..75a13c9 100644
+--- a/googletest/cmake/internal_utils.cmake
++++ b/googletest/cmake/internal_utils.cmake
+@@ -55,7 +55,7 @@ macro(config_compiler_and_linker)
+ if (MSVC)
+ # Newlines inside flags variables break CMake's NMake generator.
+ # TODO(vladl@google.com): Add -RTCs and -RTCu to debug builds.
+- set(cxx_base_flags "-GS -W4 -WX -wd4251 -wd4275 -nologo -J -Zi")
++ set(cxx_base_flags "-GS -W4 -WX -wd4251 -wd4275 -nologo -J")
+ if (MSVC_VERSION LESS 1400) # 1400 is Visual Studio 2005
+ # Suppress spurious warnings MSVC 7.1 sometimes issues.
+ # Forcing value to bool.
diff --git a/ports/gtest/CONTROL b/ports/gtest/CONTROL
index 07336b978..2fa32ae3c 100644
--- a/ports/gtest/CONTROL
+++ b/ports/gtest/CONTROL
@@ -1,3 +1,3 @@
Source: gtest
-Version: 1.8
-Description: GoogleTest and GoogleMock testing frameworks. \ No newline at end of file
+Version: 1.8.0-8
+Description: GoogleTest and GoogleMock testing frameworks.
diff --git a/ports/gtest/portfile.cmake b/ports/gtest/portfile.cmake
index ea5186e47..72fe5813e 100644
--- a/ports/gtest/portfile.cmake
+++ b/ports/gtest/portfile.cmake
@@ -15,39 +15,75 @@ vcpkg_from_github(
vcpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
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
)
+string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" GTEST_FORCE_SHARED_CRT)
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ 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()
+file(
+ INSTALL
+ "${SOURCE_PATH}/googletest/src/gtest.cc"
+ "${SOURCE_PATH}/googletest/src/gtest_main.cc"
+ "${SOURCE_PATH}/googletest/src/gtest-all.cc"
+ "${SOURCE_PATH}/googletest/src/gtest-death-test.cc"
+ "${SOURCE_PATH}/googletest/src/gtest-filepath.cc"
+ "${SOURCE_PATH}/googletest/src/gtest-internal-inl.h"
+ "${SOURCE_PATH}/googletest/src/gtest-port.cc"
+ "${SOURCE_PATH}/googletest/src/gtest-printers.cc"
+ "${SOURCE_PATH}/googletest/src/gtest-test-part.cc"
+ "${SOURCE_PATH}/googletest/src/gtest-typed-test.cc"
+ DESTINATION
+ ${CURRENT_PACKAGES_DIR}/src
+)
+
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(INSTALL ${SOURCE_PATH}/googletest/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/gtest RENAME copyright)
-if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+# 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/gtest.dll ${CURRENT_PACKAGES_DIR}/debug/bin/gtest.dll)
- file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gtest_main.dll ${CURRENT_PACKAGES_DIR}/debug/bin/gtest_main.dll)
- file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gmock.dll ${CURRENT_PACKAGES_DIR}/debug/bin/gmock.dll)
- file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gmock_main.dll ${CURRENT_PACKAGES_DIR}/debug/bin/gmock_main.dll)
+ 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)
+ 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)
endif()
-
-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)
-file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)
-file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gtest.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/gtest.lib)
-file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gtest_main.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/gtest_main.lib)
-file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gmock.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/gmock.lib)
-file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gmock_main.lib ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/gmock_main.lib)
vcpkg_copy_pdbs()
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
diff --git a/ports/gtest/usage b/ports/gtest/usage
new file mode 100644
index 000000000..fa226ceed
--- /dev/null
+++ b/ports/gtest/usage
@@ -0,0 +1,6 @@
+The package gtest is compatible with built-in CMake targets:
+
+ enable_testing()
+ find_package(GTest REQUIRED)
+ target_link_libraries(main PRIVATE GTest::GTest GTest::Main)
+ add_test(AllTestsInMain main)