Use target_compile_options instead of the hammer

Doing per target ensures that the python stuff won't get -Werror.
We can now build the python bindings and still use the developer build
This commit is contained in:
Sergio Martins
2020-06-17 14:37:42 +01:00
parent 3121b4cf28
commit 84989745b4
6 changed files with 14 additions and 6 deletions

View File

@@ -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_MODULE_PATH ${ECM_MODULE_DIR} ${PYTHON_MODULE_DIR})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
if (OPTION_DEVELOPER_MODE)
include(ECMEnableSanitizers) macro(set_compiler_flags targetName)
add_definitions(-DDOCKS_DEVELOPER_MODE -DQT_FORCE_ASSERTS) if (OPTION_DEVELOPER_MODE)
if (NOT MSVC) target_compile_definitions(${targetName} PRIVATE DOCKS_DEVELOPER_MODE QT_FORCE_ASSERTS)
add_compile_options(-Wall -Wextra -Werror -Wno-error=deprecated-declarations) if (NOT MSVC)
target_compile_options(${targetName} PRIVATE -Wall -Wextra -Werror -Wno-error=deprecated-declarations)
endif()
endif() endif()
endif() endmacro()
if (OPTION_QTQUICK) if (OPTION_QTQUICK)
find_package(Qt5Quick) find_package(Qt5Quick)
@@ -49,6 +51,7 @@ if (OPTION_BUILD_PYTHON_BINDINGS)
endif() endif()
if (OPTION_DEVELOPER_MODE) if (OPTION_DEVELOPER_MODE)
include(ECMEnableSanitizers)
if (NOT OPTION_QTQUICK) if (NOT OPTION_QTQUICK)
enable_testing() enable_testing()
add_subdirectory(tests) add_subdirectory(tests)

View File

@@ -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(kddockwidgets SHARED ${DOCKSLIBS_SRCS} ${DOCKS_INSTALLABLE_INCLUDES} ${RESOURCES} ${RESOURCES_QUICK})
add_library(KDAB::kddockwidgets ALIAS kddockwidgets) add_library(KDAB::kddockwidgets ALIAS kddockwidgets)
set_compiler_flags(kddockwidgets)
target_include_directories(kddockwidgets target_include_directories(kddockwidgets
PUBLIC PUBLIC

View File

@@ -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(kddockwidgets_multisplitter SHARED ${MULTISPLITTER_SRCS} ${MULTISPLITTER_RESOURCES})
add_library(KDAB::kddockwidgets_multisplitter ALIAS kddockwidgets_multisplitter) add_library(KDAB::kddockwidgets_multisplitter ALIAS kddockwidgets_multisplitter)
target_link_libraries(kddockwidgets_multisplitter Qt5::Core Qt5::Widgets) target_link_libraries(kddockwidgets_multisplitter Qt5::Core Qt5::Widgets)
set_compiler_flags(kddockwidgets_multisplitter)
if (BUILD_MULTISPLITTER_QTWIDGETS_FRONTEND) if (BUILD_MULTISPLITTER_QTWIDGETS_FRONTEND)
find_package(Qt5Widgets) find_package(Qt5Widgets)

View File

@@ -3,3 +3,4 @@ find_package(Qt5Test)
add_executable(tst_multisplitter tst_multisplitter.cpp) add_executable(tst_multisplitter tst_multisplitter.cpp)
target_link_libraries(tst_multisplitter kddockwidgets_multisplitter Qt5::Test) target_link_libraries(tst_multisplitter kddockwidgets_multisplitter Qt5::Test)
set_compiler_flags(tst_multisplitter)

View File

@@ -12,6 +12,7 @@ include_directories(../src/private)
qt5_add_resources(TESTING_RESOURCES ${CMAKE_CURRENT_SOURCE_DIR}/test_resources.qrc) qt5_add_resources(TESTING_RESOURCES ${CMAKE_CURRENT_SOURCE_DIR}/test_resources.qrc)
add_executable(tst_docks tst_docks.cpp ${TESTING_SRCS} ${TESTING_RESOURCES}) add_executable(tst_docks tst_docks.cpp ${TESTING_SRCS} ${TESTING_RESOURCES})
target_link_libraries(tst_docks kddockwidgets kddockwidgets_multisplitter Qt5::Widgets Qt5::Test) target_link_libraries(tst_docks kddockwidgets kddockwidgets_multisplitter Qt5::Widgets Qt5::Test)
set_compiler_flags(tst_docks)
add_subdirectory(fuzzer) add_subdirectory(fuzzer)

View File

@@ -7,3 +7,4 @@ add_executable(fuzzer
set_property(TARGET fuzzer PROPERTY CXX_STANDARD 17) set_property(TARGET fuzzer PROPERTY CXX_STANDARD 17)
target_link_libraries(fuzzer kddockwidgets Qt5::Widgets Qt5::Test) target_link_libraries(fuzzer kddockwidgets Qt5::Widgets Qt5::Test)
set_compiler_flags(fuzzer)