Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Enable C++11
[simgrid.git] / buildtools / Cmake / Flags.cmake
index 0dddf61..27aa988 100644 (file)
@@ -1,9 +1,23 @@
 set(warnCFLAGS "")
 set(optCFLAGS "")
 
+include(CheckCXXCompilerFlag)
+
+if(NOT __VISUALC__ AND NOT __BORLANDC__)
+  CHECK_CXX_COMPILER_FLAG("-std=c++11" HAVE_CXX11)
+  CHECK_CXX_COMPILER_FLAG("-std=c++0x" HAVE_CXX0X)
+  if(HAVE_CXX11)
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+  elseif(HAVE_CXX0X)
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
+  else()
+    message(STATUS "Missing support for C++11.")
+  endif()
+endif()
+
 if(NOT __VISUALC__ AND NOT __BORLANDC__)
-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-std=gnu99 -g3")
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}-g3")
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -g3")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3")
   set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -g")
 else()
   set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}/Zi")