diff options
Diffstat (limited to 'ports/gtest')
| -rw-r--r-- | ports/gtest/0001-Enable-C-11-features-for-VS2015-fix-appveyor-fail.patch | 37 | ||||
| -rw-r--r-- | ports/gtest/0002-Fix-z7-override.patch | 13 | ||||
| -rw-r--r-- | ports/gtest/CONTROL | 4 | ||||
| -rw-r--r-- | ports/gtest/portfile.cmake | 68 | ||||
| -rw-r--r-- | ports/gtest/usage | 6 |
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)
|
