diff options
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 6fa2c09..0bbd9f3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt | |||
@@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 2.8.12) | |||
2 | 2 | ||
3 | option(BUILD_MAILDIR "BUILD_MAILDIR" ON) | 3 | option(BUILD_MAILDIR "BUILD_MAILDIR" ON) |
4 | option(AVOID_BINDING_REBUILD "AVOID_BINDING_REBUILD" OFF) | 4 | option(AVOID_BINDING_REBUILD "AVOID_BINDING_REBUILD" OFF) |
5 | option(CATCH_ERRORS "CATCH_ERRORS" OFF) | ||
5 | 6 | ||
6 | # ECM setup | 7 | # ECM setup |
7 | find_package(ECM 0.0.10 REQUIRED NO_MODULE) | 8 | find_package(ECM 0.0.10 REQUIRED NO_MODULE) |
@@ -41,8 +42,27 @@ function(generate_flatbuffers _target) | |||
41 | endforeach(fbs) | 42 | endforeach(fbs) |
42 | endfunction(generate_flatbuffers) | 43 | endfunction(generate_flatbuffers) |
43 | 44 | ||
45 | add_custom_target(analyze) | ||
46 | function(add_clang_static_analysis target) | ||
47 | get_target_property(SRCs ${target} SOURCES) | ||
48 | get_target_property(INCLUDEs ${target} INCLUDE_DIRECTORIES) | ||
49 | add_library(${target}_analyze OBJECT EXCLUDE_FROM_ALL ${SRCs}) | ||
50 | set_target_properties(${target}_analyze PROPERTIES | ||
51 | COMPILE_OPTIONS "--analyze" | ||
52 | EXCLUDE_FROM_DEFAULT_BUILD true | ||
53 | INCLUDE_DIRECTORIES "${INCLUDEs};${KDE_INSTALL_FULL_INCLUDEDIR}/KF5/" # Had to hardcode include directory to find KAsync includes | ||
54 | #COMPILE_FLAGS is deprecated, but the only way that -Xanalyzer isn't erronously deduplicated | ||
55 | COMPILE_FLAGS "-Xanalyzer -analyzer-eagerly-assume -Xanalyzer -analyzer-opt-analyze-nested-blocks" | ||
56 | ) | ||
57 | target_compile_options(${target}_analyze PRIVATE ${Qt5Core_EXECUTABLE_COMPILE_FLAGS})# Necessary to get options such as fPIC | ||
58 | add_dependencies(analyze ${target}_analyze) | ||
59 | endfunction() | ||
60 | |||
44 | set(CMAKE_AUTOMOC ON) | 61 | set(CMAKE_AUTOMOC ON) |
45 | add_definitions("-Wall -std=c++0x -g") | 62 | if (${CATCH_ERRORS}) |
63 | add_definitions("-Werror -Wall -Weverything -Wno-unused-function -Wno-cast-align -Wno-used-but-marked-unused -Wno-shadow -Wno-weak-vtables -Wno-global-constructors -Wno-deprecated -Wno-weak-template-vtables -Wno-exit-time-destructors -Wno-covered-switch-default -Wno-shorten-64-to-32 -Wno-documentation -Wno-old-style-cast -Wno-extra-semi -Wno-unused-parameter -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-padded -Wno-missing-noreturn -Wno-missing-prototypes -Wno-documentation-unknown-command -Wno-sign-conversion") | ||
64 | endif() | ||
65 | add_definitions("-std=c++0x -g") | ||
46 | include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${FLATBUFFERS_INCLUDE_DIR} ${CMAKE_BINARY_DIR}/common) | 66 | include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${FLATBUFFERS_INCLUDE_DIR} ${CMAKE_BINARY_DIR}/common) |
47 | include_directories(SYSTEM ${CMAKE_SOURCE_DIR}/common ${CMAKE_SOURCE_DIR}/common/domain) | 67 | include_directories(SYSTEM ${CMAKE_SOURCE_DIR}/common ${CMAKE_SOURCE_DIR}/common/domain) |
48 | 68 | ||