From 114f66f2972b06ae4f2c7080b63836c1874a30b1 Mon Sep 17 00:00:00 2001 From: Krzesimir Nowak Date: Wed, 7 Aug 2013 12:36:45 +0200 Subject: [PATCH] Add -Wall -Wextra -Wpedantic (or -pedantic) warnings by default. This also introduces a MIRALL_FATAL_WARNINGS to enable a -Werror for GNU compilers and clang. MSVC compilers are yet to be handled. --- CMakeLists.txt | 2 ++ cmake/modules/Warnings.cmake | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 cmake/modules/Warnings.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 54c89b58e..0aa0c2beb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,8 @@ project(mirall) set(PACKAGE "mirall") set( CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules ) +include(Warnings) + set(OEM_THEME_DIR "" CACHE STRING "Define directory containing a custom theme") if ( EXISTS ${OEM_THEME_DIR}/OEM.cmake ) include ( ${OEM_THEME_DIR}/OEM.cmake ) diff --git a/cmake/modules/Warnings.cmake b/cmake/modules/Warnings.cmake new file mode 100644 index 000000000..6ba251349 --- /dev/null +++ b/cmake/modules/Warnings.cmake @@ -0,0 +1,20 @@ +if(CMAKE_COMPILER_IS_GNUCXX) + execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion + OUTPUT_VARIABLE GCC_VERSION) + if(GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8) + set(CMAKE_CXX_FLAGS "-Wall -Wextra -Wpedantic") + else(GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8) + set(CMAKE_CXX_FLAGS "-Wall -Wextra -pedantic") + endif(GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8) +endif(CMAKE_COMPILER_IS_GNUCXX) +if(CMAKE_CXX_COMPILER MATCHES "clang") + set(CMAKE_CXX_FLAGS "-Wall -Wextra -pedantic") +endif(CMAKE_CXX_COMPILER MATCHES "clang") +# TODO: handle msvc compilers warnings? + +if(DEFINED MIRALL_FATAL_WARNINGS) + if (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER MATCHES "clang") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror") + endif (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER MATCHES "clang") + # TODO: handle msvc compilers warnings? +endif(DEFINED MIRALL_FATAL_WARNINGS)