Sfoglia il codice sorgente

CMake: Set warning levels

Sam Edwards 7 anni fa
parent
commit
4af8a04944
1 ha cambiato i file con 25 aggiunte e 0 eliminazioni
  1. 25 0
      CMakeLists.txt

+ 25 - 0
CMakeLists.txt

@@ -40,6 +40,31 @@ if(WIN32)
   set(CMAKE_DEBUG_POSTFIX "_d")
 endif()
 
+# Set warning levels
+if(MSVC)
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W3")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3")
+else()
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
+endif()
+if(NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
+  set(disable_flags "-Wno-unused-function -Wno-unused-parameter")
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${disable_flags}")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${disable_flags} -Wno-reorder")
+  set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wno-unused-variable")
+  set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -Wno-unused-variable")
+  set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -Wno-unused-variable")
+
+  if(MSVC)
+    # Clang behaving as MSVC
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-microsoft-template")
+  endif()
+endif()
+if(WIN32)
+  add_definitions(-D_CRT_SECURE_NO_WARNINGS)
+endif()
+
 # Include global modules needed for configure scripts
 include(PackageConfig)      # Defines package_option AND target_use_packages