Using libc++ with clang from now on
This also applies a patch to gtest that resolves an issue with building gtest with libc++. The patch was taken from here: https://groups.google.com/d/topic/googletestframework/F1B9LArL9_U/discussion
This commit is contained in:
parent
f76ee24316
commit
e56080ea56
@ -28,6 +28,7 @@ set( CMAKE_OSX_ARCHITECTURES "i386;x86_64" )
|
||||
|
||||
if ( CMAKE_CXX_COMPILER_ID STREQUAL "Clang" )
|
||||
set( COMPILER_IS_CLANG true )
|
||||
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++" )
|
||||
endif()
|
||||
|
||||
# Force release build by default, speed is of the essence
|
||||
|
@ -250,6 +250,11 @@
|
||||
# define GTEST_OS_QNX 1
|
||||
#endif // __CYGWIN__
|
||||
|
||||
#if __GXX_EXPERIMENTAL_CXX0X__ || __cplusplus >= 201103L
|
||||
// Compiling in at least C++11 mode.
|
||||
# define GTEST_LANG_CXX11 1
|
||||
#endif
|
||||
|
||||
// Brings in definitions for functions used in the testing::internal::posix
|
||||
// namespace (read, write, close, chdir, isatty, stat). We do not currently
|
||||
// use them on Windows Mobile.
|
||||
@ -458,7 +463,8 @@
|
||||
// Feature Pack download, which we cannot assume the user has.
|
||||
// QNX's QCC compiler is a modified GCC but it doesn't support TR1 tuple.
|
||||
# if (defined(__GNUC__) && !defined(__CUDACC__) && (GTEST_GCC_VER_ >= 40000) \
|
||||
&& !GTEST_OS_QNX) || _MSC_VER >= 1600
|
||||
&& !GTEST_OS_QNX && (GTEST_LANG_CXX11 || !defined(_LIBCPP_VERSION))) \
|
||||
|| _MSC_VER >= 1600
|
||||
# define GTEST_USE_OWN_TR1_TUPLE 0
|
||||
# else
|
||||
# define GTEST_USE_OWN_TR1_TUPLE 1
|
||||
@ -473,6 +479,20 @@
|
||||
|
||||
# if GTEST_USE_OWN_TR1_TUPLE
|
||||
# include "gtest/internal/gtest-tuple.h"
|
||||
# elif GTEST_LANG_CXX11
|
||||
# include <tuple>
|
||||
// C++11 puts its tuple into the ::std namespace rather than
|
||||
// ::std::tr1. gtest expects tuple to live in ::std::tr1, so put it there.
|
||||
namespace std {
|
||||
namespace tr1 {
|
||||
using ::std::get;
|
||||
using ::std::make_tuple;
|
||||
using ::std::tuple;
|
||||
using ::std::tuple_element;
|
||||
using ::std::tuple_size;
|
||||
}
|
||||
}
|
||||
|
||||
# elif GTEST_OS_SYMBIAN
|
||||
|
||||
// On Symbian, BOOST_HAS_TR1_TUPLE causes Boost's TR1 tuple library to
|
||||
|
Loading…
Reference in New Issue
Block a user