diff --git a/CMakeLists.txt b/CMakeLists.txt index 503daffe..acab9587 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,13 +27,15 @@ set(PYTHON_MODULE_DIR "${CMAKE_CURRENT_LIST_DIR}/cmake/Python") set(CMAKE_MODULE_PATH ${ECM_MODULE_DIR} ${PYTHON_MODULE_DIR}) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) -if (OPTION_DEVELOPER_MODE) - include(ECMEnableSanitizers) - add_definitions(-DDOCKS_DEVELOPER_MODE -DQT_FORCE_ASSERTS) - if (NOT MSVC) - add_compile_options(-Wall -Wextra -Werror -Wno-error=deprecated-declarations) + +macro(set_compiler_flags targetName) + if (OPTION_DEVELOPER_MODE) + target_compile_definitions(${targetName} PRIVATE DOCKS_DEVELOPER_MODE QT_FORCE_ASSERTS) + if (NOT MSVC) + target_compile_options(${targetName} PRIVATE -Wall -Wextra -Werror -Wno-error=deprecated-declarations) + endif() endif() -endif() +endmacro() if (OPTION_QTQUICK) find_package(Qt5Quick) @@ -49,6 +51,7 @@ if (OPTION_BUILD_PYTHON_BINDINGS) endif() if (OPTION_DEVELOPER_MODE) + include(ECMEnableSanitizers) if (NOT OPTION_QTQUICK) enable_testing() add_subdirectory(tests) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c1e0709c..4b8c3683 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -113,6 +113,7 @@ qt5_add_resources(RESOURCES ${CMAKE_CURRENT_SOURCE_DIR}/resources.qrc) add_library(kddockwidgets SHARED ${DOCKSLIBS_SRCS} ${DOCKS_INSTALLABLE_INCLUDES} ${RESOURCES} ${RESOURCES_QUICK}) add_library(KDAB::kddockwidgets ALIAS kddockwidgets) +set_compiler_flags(kddockwidgets) target_include_directories(kddockwidgets PUBLIC diff --git a/src/private/multisplitter/CMakeLists.txt b/src/private/multisplitter/CMakeLists.txt index d21ac10f..35742dbf 100644 --- a/src/private/multisplitter/CMakeLists.txt +++ b/src/private/multisplitter/CMakeLists.txt @@ -45,6 +45,7 @@ qt5_add_resources(MULTISPLITTER_RESOURCES ${CMAKE_CURRENT_SOURCE_DIR}/multisplit add_library(kddockwidgets_multisplitter SHARED ${MULTISPLITTER_SRCS} ${MULTISPLITTER_RESOURCES}) add_library(KDAB::kddockwidgets_multisplitter ALIAS kddockwidgets_multisplitter) target_link_libraries(kddockwidgets_multisplitter Qt5::Core Qt5::Widgets) +set_compiler_flags(kddockwidgets_multisplitter) if (BUILD_MULTISPLITTER_QTWIDGETS_FRONTEND) find_package(Qt5Widgets) diff --git a/src/private/multisplitter/tests/CMakeLists.txt b/src/private/multisplitter/tests/CMakeLists.txt index 565907e1..1aed6cd2 100644 --- a/src/private/multisplitter/tests/CMakeLists.txt +++ b/src/private/multisplitter/tests/CMakeLists.txt @@ -3,3 +3,4 @@ find_package(Qt5Test) add_executable(tst_multisplitter tst_multisplitter.cpp) target_link_libraries(tst_multisplitter kddockwidgets_multisplitter Qt5::Test) +set_compiler_flags(tst_multisplitter) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index a1aeb557..8fab0558 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -12,6 +12,7 @@ include_directories(../src/private) qt5_add_resources(TESTING_RESOURCES ${CMAKE_CURRENT_SOURCE_DIR}/test_resources.qrc) add_executable(tst_docks tst_docks.cpp ${TESTING_SRCS} ${TESTING_RESOURCES}) target_link_libraries(tst_docks kddockwidgets kddockwidgets_multisplitter Qt5::Widgets Qt5::Test) +set_compiler_flags(tst_docks) add_subdirectory(fuzzer) diff --git a/tests/fuzzer/CMakeLists.txt b/tests/fuzzer/CMakeLists.txt index f2ece262..ca0da9c8 100644 --- a/tests/fuzzer/CMakeLists.txt +++ b/tests/fuzzer/CMakeLists.txt @@ -7,3 +7,4 @@ add_executable(fuzzer set_property(TARGET fuzzer PROPERTY CXX_STANDARD 17) target_link_libraries(fuzzer kddockwidgets Qt5::Widgets Qt5::Test) +set_compiler_flags(fuzzer)