# This script turns on all compiler warnings if(NOT CMAKE_CXX_COMPILER_ID) # CMAKE_CXX_COMPILER_ID doesn't get set until after the # 'project' function has been called. message(AUTHOR_WARNING "You must not include the 'EnableAllWarnings' module until " "*AFTER* the 'project' function has been invoked." ) endif() if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") if( NOT CMAKE_CXX_FLAGS MATCHES "-Wall" ) set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall" ) endif() if( NOT CMAKE_C_FLAGS MATCHES "-Wall" ) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") endif() if( NOT CMAKE_CXX_FLAGS MATCHES "-Wextra" ) set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wextra" ) endif() if( NOT CMAKE_C_FLAGS MATCHES "-Wextra" ) set( CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} -Wextra" ) endif() elseif(CMAKE_CXX_COMPILER_ID MATCHES "(MSVC|Intel)") # Use the highest warning level for visual studio. if( CMAKE_CXX_FLAGS MATCHES "/W[0-4]" ) string( REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" ) else() set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4" ) endif() if( CMAKE_C_FLAGS MATCHES "/W[0-4]" ) string( REGEX REPLACE "/W[0-4]" "/W4" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" ) else() set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4" ) endif() # Disable deprecation warnings for standard C functions in VS2005 and later if( CMAKE_COMPILER_2005 ) add_definitions( -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE ) endif() endif()