summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt22
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
3option(BUILD_MAILDIR "BUILD_MAILDIR" ON) 3option(BUILD_MAILDIR "BUILD_MAILDIR" ON)
4option(AVOID_BINDING_REBUILD "AVOID_BINDING_REBUILD" OFF) 4option(AVOID_BINDING_REBUILD "AVOID_BINDING_REBUILD" OFF)
5option(CATCH_ERRORS "CATCH_ERRORS" OFF)
5 6
6# ECM setup 7# ECM setup
7find_package(ECM 0.0.10 REQUIRED NO_MODULE) 8find_package(ECM 0.0.10 REQUIRED NO_MODULE)
@@ -41,8 +42,27 @@ function(generate_flatbuffers _target)
41 endforeach(fbs) 42 endforeach(fbs)
42endfunction(generate_flatbuffers) 43endfunction(generate_flatbuffers)
43 44
45add_custom_target(analyze)
46function(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)
59endfunction()
60
44set(CMAKE_AUTOMOC ON) 61set(CMAKE_AUTOMOC ON)
45add_definitions("-Wall -std=c++0x -g") 62if (${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")
64endif()
65add_definitions("-std=c++0x -g")
46include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${FLATBUFFERS_INCLUDE_DIR} ${CMAKE_BINARY_DIR}/common) 66include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${FLATBUFFERS_INCLUDE_DIR} ${CMAKE_BINARY_DIR}/common)
47include_directories(SYSTEM ${CMAKE_SOURCE_DIR}/common ${CMAKE_SOURCE_DIR}/common/domain) 67include_directories(SYSTEM ${CMAKE_SOURCE_DIR}/common ${CMAKE_SOURCE_DIR}/common/domain)
48 68