X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/dc6d1481d76d6d338ab5de36cf81707a686abbcf..53b9ff1b6972dffeabd543a09c89170663c30ad1:/tools/cmake/GCCFlags.cmake diff --git a/tools/cmake/GCCFlags.cmake b/tools/cmake/GCCFlags.cmake index 6b41adf478..31c50d7cf4 100644 --- a/tools/cmake/GCCFlags.cmake +++ b/tools/cmake/GCCFlags.cmake @@ -17,12 +17,12 @@ set(optCFLAGS "") if(enable_compile_warnings) set(warnCFLAGS "-fno-common -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wcomment -Wformat -Wwrite-strings -Wno-unused-function -Wno-unused-parameter -Wno-strict-aliasing -Wno-format-nonliteral -Werror ") if(CMAKE_COMPILER_IS_GNUCC) - set(warnCFLAGS "${warnCFLAGS}-Wclobbered -Wno-error=clobbered ") + set(warnCFLAGS "${warnCFLAGS}-Wclobbered -Wno-error=clobbered -Wno-unused-local-typedefs") endif() - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wunused -Wpointer-arith -Wchar-subscripts -Wcomment -Wformat -Wwrite-strings -Wno-unused-function -Wno-unused-parameter -Wno-strict-aliasing -Wno-format-nonliteral -Werror") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wunused -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wcomment -Wformat -Wwrite-strings -Wno-unused-function -Wno-unused-parameter -Wno-strict-aliasing -Wno-format-nonliteral -Werror") if(CMAKE_COMPILER_IS_GNUCXX) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wclobbered -Wno-error=clobbered") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wclobbered -Wno-error=clobbered -Wno-unused-local-typedefs") 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") @@ -54,7 +54,7 @@ if(enable_lto) # User wants LTO. Try if we can do that AND CMAKE_COMPILER_IS_GNUCC AND (NOT enable_model-checking)) if(WIN32) - if (COMPILER_C_VERSION_MAJOR_MINOR STRGREATER "4.8") + if (CMAKE_C_COMPILER_VERSION VERSION_GREATER "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 # # We are experiencing assertion failures even with 4.8 on MinGW. @@ -89,7 +89,7 @@ if(enable_lto) # User wants LTO, and it seems usable. Go for it # these objects you have to use the gcc wrappers: # gcc-ar, gcc-nm and gcc-ranlib." if(${CMAKE_C_COMPILER_ID} STREQUAL "GNU" - AND COMPILER_C_VERSION_MAJOR_MINOR STRGREATER "4.8") + AND CMAKE_C_COMPILER_VERSION VERSION_GREATER "4.8") set (CMAKE_AR gcc-ar) set (CMAKE_RANLIB gcc-ranlib) endif() @@ -104,7 +104,7 @@ if(enable_model-checking AND enable_compile_optimizations) src/xbt/log.c src/xbt/xbt_log_appender_file.c src/xbt/xbt_log_layout_format.c src/xbt/xbt_log_layout_simple.c src/xbt/dict.c src/xbt/dict_elm.c src/xbt/dict_multi.c src/xbt/dict_cursor.c - src/xbt/set.c src/xbt/setset.c + src/xbt/set.c src/xbt/dynar.c src/xbt/fifo.c src/xbt/heap.c src/xbt/swag.c src/xbt/str.c src/xbt/strbuff.c src/xbt/snprintf.c src/xbt/queue.c @@ -126,10 +126,6 @@ if(NOT enable_debug) set(CMAKE_CXX_FLAGS "-DNDEBUG ${CMAKE_CXX_FLAGS}") endif() -if(enable_msg_deprecated) - set(CMAKE_C_FLAGS "-DMSG_USE_DEPRECATED ${CMAKE_C_FLAGS}") -endif() - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${optCFLAGS} ${warnCFLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${optCFLAGS}") @@ -168,12 +164,26 @@ if(NOT $ENV{LDFLAGS} STREQUAL "") set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} $ENV{LDFLAGS}") endif() -# We don't want to ship libgcc_s_seh-1.dll nor libstdc++-6.dll -#  This will probably be troublesome if someone wants to use the lib in -# its own project, but we only want to have java working on Windows. if(MINGW) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static-libgcc") + # http://stackoverflow.com/questions/10452262/create-64-bit-jni-under-windows + # We don't want to ship libgcc_s_seh-1.dll nor libstdc++-6.dll + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static-libgcc") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libgcc -static-libstdc++") - set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "${CMAKE_SHARED_LIBRARY_LINK_C_FLAGS} -static-libgcc -s") - set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "${CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS} -static-libgcc -static-libstdc++ -s") + set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "${CMAKE_SHARED_LIBRARY_LINK_C_FLAGS} -static-libgcc") + set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "${CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS} -static-libgcc -static-libstdc++") + + # JNI searches for stdcalls + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,--add-stdcall-alias") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,--add-stdcall-alias") + set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "${CMAKE_SHARED_LIBRARY_LINK_C_FLAGS} -Wl,--add-stdcall-alias") + set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "${CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS} -Wl,--add-stdcall-alias") + + # Specify the data model that we are using (yeah it may help Java) + if(ARCH_32_BITS) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32") + else() + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m64") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64") + endif() endif()