1 include(CheckCXXSourceCompiles)
2 MACRO(GMX_TEST_CXX11 VARIABLE FLAG)
3 MESSAGE(STATUS "Checking for C++11 support")
5 set(CXX11_FLAG "-std=c++0x")
7 set(CXX11_FLAG "/Qstd=c++0x")
9 CHECK_CXX_COMPILER_FLAG("${CXX11_FLAG}" CXXFLAG_STD_CXX0X)
10 if(NOT CXXFLAG_STD_CXX0X)
13 set(CMAKE_REQUIRED_DEFINITIONS "${CXX11_FLAG}")
14 check_cxx_source_compiles(
19 std::unique_ptr<int> p;
22 typedef std::unique_ptr<int> intPointer;
23 intPointer p(new int(10));
24 std::vector<intPointer> v;
25 v.push_back(std::move(p));
27 v2.push_back(A()); //requires default move constructor
29 set(CMAKE_REQUIRED_DEFINITIONS "")
31 set(${VARIABLE} ${CXX11_SUPPORT_OK})
32 set(${FLAG} ${CXX11_FLAG})
33 MESSAGE(STATUS "Checking for C++11 support - yes")
36 MESSAGE(STATUS "Checking for C++11 support - no")