fix for VS2017 deprecation of ::tr1::tuple
change static_cast to ImplicitCast_ for consitency fixes for building with path names containing spaces
This commit is contained in:
		@@ -74,6 +74,8 @@ include_directories("${gmock_SOURCE_DIR}/include"
 | 
				
			|||||||
# <= VS 2010  <= 10        <= 1600         Use Google Tests's own tuple.
 | 
					# <= VS 2010  <= 10        <= 1600         Use Google Tests's own tuple.
 | 
				
			||||||
# VS 2012     11           1700            std::tr1::tuple + _VARIADIC_MAX=10
 | 
					# VS 2012     11           1700            std::tr1::tuple + _VARIADIC_MAX=10
 | 
				
			||||||
# VS 2013     12           1800            std::tr1::tuple
 | 
					# VS 2013     12           1800            std::tr1::tuple
 | 
				
			||||||
 | 
					# VS 2015     14           1900            std::tuple
 | 
				
			||||||
 | 
					# VS 2017     15           1910            std::tuple
 | 
				
			||||||
if (MSVC AND MSVC_VERSION EQUAL 1700)
 | 
					if (MSVC AND MSVC_VERSION EQUAL 1700)
 | 
				
			||||||
  add_definitions(/D _VARIADIC_MAX=10)
 | 
					  add_definitions(/D _VARIADIC_MAX=10)
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
@@ -110,11 +112,11 @@ endif()
 | 
				
			|||||||
# Install rules
 | 
					# Install rules
 | 
				
			||||||
if(INSTALL_GMOCK)
 | 
					if(INSTALL_GMOCK)
 | 
				
			||||||
  install(TARGETS gmock gmock_main
 | 
					  install(TARGETS gmock gmock_main
 | 
				
			||||||
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
 | 
					    RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
 | 
				
			||||||
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
 | 
					    LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
 | 
				
			||||||
    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
 | 
					    ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
 | 
				
			||||||
  install(DIRECTORY ${gmock_SOURCE_DIR}/include/gmock
 | 
					  install(DIRECTORY "${gmock_SOURCE_DIR}/include/gmock"
 | 
				
			||||||
    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
 | 
					    DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # configure and install pkgconfig files
 | 
					  # configure and install pkgconfig files
 | 
				
			||||||
  configure_file(
 | 
					  configure_file(
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -64,6 +64,7 @@ using testing::ElementsAreArray;
 | 
				
			|||||||
using testing::Eq;
 | 
					using testing::Eq;
 | 
				
			||||||
using testing::Ge;
 | 
					using testing::Ge;
 | 
				
			||||||
using testing::Gt;
 | 
					using testing::Gt;
 | 
				
			||||||
 | 
					using testing::internal::ImplicitCast_;
 | 
				
			||||||
using testing::Le;
 | 
					using testing::Le;
 | 
				
			||||||
using testing::Lt;
 | 
					using testing::Lt;
 | 
				
			||||||
using testing::MakeMatcher;
 | 
					using testing::MakeMatcher;
 | 
				
			||||||
@@ -120,7 +121,7 @@ TEST(ArgsTest, AcceptsOneTemplateArg) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TEST(ArgsTest, AcceptsTwoTemplateArgs) {
 | 
					TEST(ArgsTest, AcceptsTwoTemplateArgs) {
 | 
				
			||||||
  const tuple<short, int, long> t(static_cast<short>(4), 5, 6L);  // NOLINT
 | 
					  const tuple<short, int, long> t(ImplicitCast_<short>(4), 5, 6L);  // NOLINT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  EXPECT_THAT(t, (Args<0, 1>(Lt())));
 | 
					  EXPECT_THAT(t, (Args<0, 1>(Lt())));
 | 
				
			||||||
  EXPECT_THAT(t, (Args<1, 2>(Lt())));
 | 
					  EXPECT_THAT(t, (Args<1, 2>(Lt())));
 | 
				
			||||||
@@ -128,13 +129,13 @@ TEST(ArgsTest, AcceptsTwoTemplateArgs) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TEST(ArgsTest, AcceptsRepeatedTemplateArgs) {
 | 
					TEST(ArgsTest, AcceptsRepeatedTemplateArgs) {
 | 
				
			||||||
  const tuple<short, int, long> t(static_cast<short>(4), 5, 6L);  // NOLINT
 | 
					  const tuple<short, int, long> t(ImplicitCast_<short>(4), 5, 6L);  // NOLINT
 | 
				
			||||||
  EXPECT_THAT(t, (Args<0, 0>(Eq())));
 | 
					  EXPECT_THAT(t, (Args<0, 0>(Eq())));
 | 
				
			||||||
  EXPECT_THAT(t, Not(Args<1, 1>(Ne())));
 | 
					  EXPECT_THAT(t, Not(Args<1, 1>(Ne())));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TEST(ArgsTest, AcceptsDecreasingTemplateArgs) {
 | 
					TEST(ArgsTest, AcceptsDecreasingTemplateArgs) {
 | 
				
			||||||
  const tuple<short, int, long> t(static_cast<short>(4), 5, 6L);  // NOLINT
 | 
					  const tuple<short, int, long> t(ImplicitCast_<short>(4), 5, 6L);  // NOLINT
 | 
				
			||||||
  EXPECT_THAT(t, (Args<2, 0>(Gt())));
 | 
					  EXPECT_THAT(t, (Args<2, 0>(Gt())));
 | 
				
			||||||
  EXPECT_THAT(t, Not(Args<2, 1>(Lt())));
 | 
					  EXPECT_THAT(t, Not(Args<2, 1>(Lt())));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -159,7 +160,7 @@ TEST(ArgsTest, AcceptsMoreTemplateArgsThanArityOfOriginalTuple) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TEST(ArgsTest, CanBeNested) {
 | 
					TEST(ArgsTest, CanBeNested) {
 | 
				
			||||||
  const tuple<short, int, long, int> t(static_cast<short>(4), 5, 6L, 6);  // NOLINT
 | 
					  const tuple<short, int, long, int> t(ImplicitCast_<short>(4), 5, 6L, 6);  // NOLINT
 | 
				
			||||||
  EXPECT_THAT(t, (Args<1, 2, 3>(Args<1, 2>(Eq()))));
 | 
					  EXPECT_THAT(t, (Args<1, 2, 3>(Args<1, 2>(Eq()))));
 | 
				
			||||||
  EXPECT_THAT(t, (Args<0, 1, 3>(Args<0, 2>(Lt()))));
 | 
					  EXPECT_THAT(t, (Args<0, 1, 3>(Args<0, 2>(Lt()))));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -74,8 +74,8 @@ config_compiler_and_linker()  # Defined in internal_utils.cmake.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# Where Google Test's .h files can be found.
 | 
					# Where Google Test's .h files can be found.
 | 
				
			||||||
include_directories(
 | 
					include_directories(
 | 
				
			||||||
  ${gtest_SOURCE_DIR}/include
 | 
					  "${gtest_SOURCE_DIR}/include"
 | 
				
			||||||
  ${gtest_SOURCE_DIR})
 | 
					  "${gtest_SOURCE_DIR}")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Summary of tuple support for Microsoft Visual Studio:
 | 
					# Summary of tuple support for Microsoft Visual Studio:
 | 
				
			||||||
# Compiler    version(MS)  version(cmake)  Support
 | 
					# Compiler    version(MS)  version(cmake)  Support
 | 
				
			||||||
@@ -83,6 +83,8 @@ include_directories(
 | 
				
			|||||||
# <= VS 2010  <= 10        <= 1600         Use Google Tests's own tuple.
 | 
					# <= VS 2010  <= 10        <= 1600         Use Google Tests's own tuple.
 | 
				
			||||||
# VS 2012     11           1700            std::tr1::tuple + _VARIADIC_MAX=10
 | 
					# VS 2012     11           1700            std::tr1::tuple + _VARIADIC_MAX=10
 | 
				
			||||||
# VS 2013     12           1800            std::tr1::tuple
 | 
					# VS 2013     12           1800            std::tr1::tuple
 | 
				
			||||||
 | 
					# VS 2015     14           1900            std::tuple
 | 
				
			||||||
 | 
					# VS 2017     15           1910            std::tuple
 | 
				
			||||||
if (MSVC AND MSVC_VERSION EQUAL 1700)
 | 
					if (MSVC AND MSVC_VERSION EQUAL 1700)
 | 
				
			||||||
  add_definitions(/D _VARIADIC_MAX=10)
 | 
					  add_definitions(/D _VARIADIC_MAX=10)
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
@@ -112,11 +114,11 @@ endif()
 | 
				
			|||||||
# Install rules
 | 
					# Install rules
 | 
				
			||||||
if(INSTALL_GTEST)
 | 
					if(INSTALL_GTEST)
 | 
				
			||||||
  install(TARGETS gtest gtest_main
 | 
					  install(TARGETS gtest gtest_main
 | 
				
			||||||
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
 | 
					    RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
 | 
				
			||||||
    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
 | 
					    ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
 | 
				
			||||||
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
 | 
					    LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
 | 
				
			||||||
  install(DIRECTORY ${gtest_SOURCE_DIR}/include/gtest
 | 
					  install(DIRECTORY "${gtest_SOURCE_DIR}/include/gtest"
 | 
				
			||||||
    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
 | 
					    DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # configure and install pkgconfig files
 | 
					  # configure and install pkgconfig files
 | 
				
			||||||
  configure_file(
 | 
					  configure_file(
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -62,7 +62,8 @@ macro(config_compiler_and_linker)
 | 
				
			|||||||
  if (MSVC)
 | 
					  if (MSVC)
 | 
				
			||||||
    # Newlines inside flags variables break CMake's NMake generator.
 | 
					    # Newlines inside flags variables break CMake's NMake generator.
 | 
				
			||||||
    # TODO(vladl@google.com): Add -RTCs and -RTCu to debug builds.
 | 
					    # TODO(vladl@google.com): Add -RTCs and -RTCu to debug builds.
 | 
				
			||||||
    set(cxx_base_flags "-GS -W4 -WX -wd4251 -wd4275 -nologo -J -Zi")
 | 
					    # -J does not set path correctly for pdb with spaces
 | 
				
			||||||
 | 
					    set(cxx_base_flags "-GS -W4 -WX -wd4251 -wd4275 -nologo -Zi")
 | 
				
			||||||
    if (MSVC_VERSION LESS 1400)  # 1400 is Visual Studio 2005
 | 
					    if (MSVC_VERSION LESS 1400)  # 1400 is Visual Studio 2005
 | 
				
			||||||
      # Suppress spurious warnings MSVC 7.1 sometimes issues.
 | 
					      # Suppress spurious warnings MSVC 7.1 sometimes issues.
 | 
				
			||||||
      # Forcing value to bool.
 | 
					      # Forcing value to bool.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -642,8 +642,11 @@ typedef struct _RTL_CRITICAL_SECTION GTEST_CRITICAL_SECTION;
 | 
				
			|||||||
# if GTEST_OS_LINUX_ANDROID && defined(_STLPORT_MAJOR)
 | 
					# if GTEST_OS_LINUX_ANDROID && defined(_STLPORT_MAJOR)
 | 
				
			||||||
// STLport, provided with the Android NDK, has neither <tr1/tuple> or <tuple>.
 | 
					// STLport, provided with the Android NDK, has neither <tr1/tuple> or <tuple>.
 | 
				
			||||||
#  define GTEST_HAS_TR1_TUPLE 0
 | 
					#  define GTEST_HAS_TR1_TUPLE 0
 | 
				
			||||||
 | 
					# elif _MSC_VER >= 1910
 | 
				
			||||||
 | 
					   // VS2017 deprecated ::tr1::tuple
 | 
				
			||||||
 | 
					#  define GTEST_HAS_TR1_TUPLE 0
 | 
				
			||||||
# else
 | 
					# else
 | 
				
			||||||
// The user didn't tell us not to do it, so we assume it's OK.
 | 
					   // The user didn't tell us not to do it, so we assume it's OK.
 | 
				
			||||||
#  define GTEST_HAS_TR1_TUPLE 1
 | 
					#  define GTEST_HAS_TR1_TUPLE 1
 | 
				
			||||||
# endif
 | 
					# endif
 | 
				
			||||||
#endif  // GTEST_HAS_TR1_TUPLE
 | 
					#endif  // GTEST_HAS_TR1_TUPLE
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1092,8 +1092,8 @@ TEST(PrintTr1TupleTest, VariousSizes) {
 | 
				
			|||||||
  ::std::tr1::tuple<bool, char, short, testing::internal::Int32,  // NOLINT
 | 
					  ::std::tr1::tuple<bool, char, short, testing::internal::Int32,  // NOLINT
 | 
				
			||||||
                    testing::internal::Int64, float, double, const char*, void*,
 | 
					                    testing::internal::Int64, float, double, const char*, void*,
 | 
				
			||||||
                    std::string>
 | 
					                    std::string>
 | 
				
			||||||
      t10(false, 'a', static_cast<short>(3), 4, 5, 1.5F, -2.5, str, 
 | 
					      t10(false, 'a', 3, 4, 5, 1.5F, -2.5, str, ImplicitCast_<void*>(NULL),
 | 
				
			||||||
          ImplicitCast_<void*>(NULL), "10");
 | 
					          "10");
 | 
				
			||||||
  EXPECT_EQ("(false, 'a' (97, 0x61), 3, 4, 5, 1.5, -2.5, " + PrintPointer(str) +
 | 
					  EXPECT_EQ("(false, 'a' (97, 0x61), 3, 4, 5, 1.5, -2.5, " + PrintPointer(str) +
 | 
				
			||||||
            " pointing to \"8\", NULL, \"10\")",
 | 
					            " pointing to \"8\", NULL, \"10\")",
 | 
				
			||||||
            Print(t10));
 | 
					            Print(t10));
 | 
				
			||||||
@@ -1152,7 +1152,7 @@ TEST(PrintStdTupleTest, VariousSizes) {
 | 
				
			|||||||
  ::std::tuple<bool, char, short, testing::internal::Int32,  // NOLINT
 | 
					  ::std::tuple<bool, char, short, testing::internal::Int32,  // NOLINT
 | 
				
			||||||
               testing::internal::Int64, float, double, const char*, void*,
 | 
					               testing::internal::Int64, float, double, const char*, void*,
 | 
				
			||||||
               std::string>
 | 
					               std::string>
 | 
				
			||||||
      t10(false, 'a', static_cast<short>(3), 4, 5, 1.5F, -2.5, str,
 | 
					      t10(false, 'a', ImplicitCast_<short>(3), 4, 5, 1.5F, -2.5, str,
 | 
				
			||||||
          ImplicitCast_<void*>(NULL), "10");
 | 
					          ImplicitCast_<void*>(NULL), "10");
 | 
				
			||||||
  EXPECT_EQ("(false, 'a' (97, 0x61), 3, 4, 5, 1.5, -2.5, " + PrintPointer(str) +
 | 
					  EXPECT_EQ("(false, 'a' (97, 0x61), 3, 4, 5, 1.5, -2.5, " + PrintPointer(str) +
 | 
				
			||||||
            " pointing to \"8\", NULL, \"10\")",
 | 
					            " pointing to \"8\", NULL, \"10\")",
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user