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)