Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
disable lto for gcc 4.8 too
[simgrid.git] / buildtools / Cmake / Flags.cmake
index dcf37d8..a11db3d 100644 (file)
@@ -22,9 +22,11 @@ if(enable_compile_warnings)
   if(CMAKE_COMPILER_IS_GNUCXX)
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wclobbered -Wno-error=clobbered")
   endif()
+  if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") # don't care about class that become struct
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-mismatched-tags")
+  endif()
 
-  set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Wall") # FIXME: Q&D hack
-
+  set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Wall")
   set(CMAKE_JAVA_COMPILE_FLAGS "-Xlint")
 endif()
 
@@ -33,9 +35,12 @@ if(enable_compile_optimizations)
   if(CMAKE_COMPILER_IS_GNUCC AND (NOT enable_model-checking))
     set(optCFLAGS "${optCFLAGS} -finline-functions ")
     if(WIN32)
-      if (COMPILER_C_VERSION_MAJOR_MINOR STRGREATER "4.7")
+      if (COMPILER_C_VERSION_MAJOR_MINOR STRGREATER "4.8")
       # On windows, we need 4.8 or higher to enable lto because of http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50293
-        set(optCFLAGS "${optCFLAGS} -flto ")
+      #
+      # We are experiencing assertion failures even with 4.8 on MinGW.
+      # Push the support forward: will see if 4.9 works when we test it.
+      set(optCFLAGS "${optCFLAGS} -flto ")
       endif()
     else()    
       # On non-windows, 4.6 is enough for that
@@ -82,11 +87,6 @@ if(enable_model-checking AND enable_compile_optimizations)
   endforeach()
 endif()
 
-if(APPLE AND COMPILER_C_VERSION_MAJOR_MINOR MATCHES "4.6")
-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-deprecated-declarations")
-  set(optCFLAGS "-O0 ")
-endif()
-
 if(NOT enable_debug)
   set(CMAKE_C_FLAGS "-DNDEBUG ${CMAKE_C_FLAGS}")
   set(CMAKE_CXX_FLAGS "-DNDEBUG ${CMAKE_CXX_FLAGS}")
@@ -96,8 +96,7 @@ if(enable_msg_deprecated)
   set(CMAKE_C_FLAGS "-DMSG_USE_DEPRECATED ${CMAKE_C_FLAGS}")
 endif()
 
-set(CMAKE_C_FLAGS "${optCFLAGS} ${warnCFLAGS} ${CMAKE_C_FLAGS}")
-
+set(CMAKE_C_FLAGS   "${CMAKE_C_FLAGS}   ${optCFLAGS} ${warnCFLAGS}")
 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${optCFLAGS}")
 
 # Try to make Mac a bit more complient to open source standards