Merge release-4-6 into master
[alexxy/gromacs.git] / cmake / gmxTestCXX11.cmake
index ceea9ca0a76acbf0cacd21cce318252c30e8a83a..f7cb20d2ea89bbbe20eb8ae3c93683cca399bc84 100644 (file)
@@ -1,18 +1,16 @@
 include(CheckCXXSourceCompiles)
 MACRO(GMX_TEST_CXX11 VARIABLE FLAG)
-    IF(NOT DEFINED HAVE_${VARIABLE})
-        MESSAGE(STATUS "Checking for C++11 support")
-        if(NOT WIN32)
-            set(CXX11_FLAG "-std=c++0x")
-        else()
-            set(CXX11_FLAG "/Qstd=c++0x")
-        endif()
-        CHECK_CXX_COMPILER_FLAG("${CXX11_FLAG}" CXXFLAG_STD_CXX0X)
-        if(NOT CXXFLAG_STD_CXX0X)
-            set(CXX11_FLAG "")
-        endif()
-        set(CMAKE_REQUIRED_DEFINITIONS "${CXX11_FLAG}")
-        check_cxx_source_compiles(
+    if(NOT WIN32)
+        set(CXX11_FLAG "-std=c++0x")
+    else()
+        set(CXX11_FLAG "/Qstd=c++0x")
+    endif()
+    CHECK_CXX_COMPILER_FLAG("${CXX11_FLAG}" CXXFLAG_STD_CXX0X)
+    if(NOT CXXFLAG_STD_CXX0X)
+        set(CXX11_FLAG "")
+    endif()
+    set(CMAKE_REQUIRED_DEFINITIONS "${CXX11_FLAG}")
+    check_cxx_source_compiles(
 "#include <vector>
 #include <memory>
 #include <utility>
@@ -28,16 +26,9 @@ int main() {
   std::vector<A> v2;
   v2.push_back(A());  //requires default move constructor
   v2.push_back(A(new int(5))); //detects bug in ICC
-}" HAVE_${VARIABLE})
-        set(CMAKE_REQUIRED_DEFINITIONS "")
-        if(HAVE_${VARIABLE})
-            set(${VARIABLE} 1 CACHE INTERNAL "Result of C++11 support test" FORCE)
-            set(${FLAG} ${CXX11_FLAG} CACHE INTERNAL "Compiler flag for C++11 support" FORCE)
-            MESSAGE(STATUS "Checking for C++11 support - yes")
-        else()
-            set(${VARIABLE} 0 CACHE INTERNAL "Result of C++11 support test" FORCE)
-            set(${FLAG} "" CACHE INTERNAL "Compiler flag for C++11 support" FORCE)
-            MESSAGE(STATUS "Checking for C++11 support - no")
-        endif()
-    ENDIF(NOT DEFINED HAVE_${VARIABLE})
+}" ${VARIABLE})
+    set(CMAKE_REQUIRED_DEFINITIONS "")
+    if(${VARIABLE})
+        set(${FLAG} ${CXX11_FLAG})
+    endif()
 ENDMACRO()