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:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user