diff --git a/examples/dockwidgets/CMakeLists.txt b/examples/dockwidgets/CMakeLists.txt index 53d3a613..8582bc52 100644 --- a/examples/dockwidgets/CMakeLists.txt +++ b/examples/dockwidgets/CMakeLists.txt @@ -5,8 +5,7 @@ project(kddockwidgets_example) set(CMAKE_AUTOMOC ON) set(CMAKE_INCLUDE_CURRENT_DIRS ON) - -if (NOT TARGET kddockwidgets) +if(NOT TARGET kddockwidgets) # This will look for Qt, do find_package yourself manually before # if you want to look for a specific Qt version for instance. find_package(KDDockWidgets REQUIRED) @@ -23,7 +22,7 @@ add_executable(kddockwidgets_example ) target_link_libraries(kddockwidgets_example - PRIVATE - KDAB::kddockwidgets + PRIVATE + KDAB::kddockwidgets ) diff --git a/python/PyKDDockWidgets/CMakeLists.txt b/python/PyKDDockWidgets/CMakeLists.txt index 65914028..58fea8cc 100644 --- a/python/PyKDDockWidgets/CMakeLists.txt +++ b/python/PyKDDockWidgets/CMakeLists.txt @@ -51,17 +51,17 @@ set(PyKDDockWidgets_DEPENDS ${CMAKE_SOURCE_DIR}/src/MainWindow.h ) -CREATE_PYTHON_BINDINGS( - "KDDockWidgets" - "${PyKDDockWidgets_typesystem_paths}" - "${PyKDDockWidgets_include_paths}" - "${PyKDDockWidgets_SRC}" - "${PyKDDockWidgets_target_include_directories}" - "${PyKDDockWidgets_target_link_libraries}" - ${CMAKE_CURRENT_SOURCE_DIR}/kddockwidgets_global.h - ${CMAKE_CURRENT_SOURCE_DIR}/typesystem_kddockwidgets.xml - "${PyKDDockWidgets_DEPENDS}" - ${CMAKE_CURRENT_BINARY_DIR} +create_python_bindings( + "KDDockWidgets" + "${PyKDDockWidgets_typesystem_paths}" + "${PyKDDockWidgets_include_paths}" + "${PyKDDockWidgets_SRC}" + "${PyKDDockWidgets_target_include_directories}" + "${PyKDDockWidgets_target_link_libraries}" + ${CMAKE_CURRENT_SOURCE_DIR}/kddockwidgets_global.h + ${CMAKE_CURRENT_SOURCE_DIR}/typesystem_kddockwidgets.xml + "${PyKDDockWidgets_DEPENDS}" + ${CMAKE_CURRENT_BINARY_DIR} ) # Make moduled import from build dir works diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index abe7355a..e8b3cfce 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,5 +1,6 @@ - -cmake_policy(SET CMP0043 NEW) +if(POLICY CMP0043) + cmake_policy(SET CMP0043 NEW) +endif() add_definitions(-DQT_NO_SIGNALS_SLOTS_KEYWORDS -DQT_USE_QSTRINGBUILDER @@ -7,7 +8,7 @@ add_definitions(-DQT_NO_SIGNALS_SLOTS_KEYWORDS -DQT_STRICT_ITERATORS -DQT_NO_KEYWORDS -DQT_NO_FOREACH - ) +) set(DOCKSLIBS_SRCS Config.cpp @@ -34,7 +35,7 @@ set(DOCKSLIBS_SRCS private/Frame.cpp private/DropAreaWithCentralFrame.cpp private/WidgetResizeHandler.cpp - ) +) set(DOCKS_INSTALLABLE_INCLUDES docks_export.h @@ -45,8 +46,7 @@ set(DOCKS_INSTALLABLE_INCLUDES QWidgetAdapter.h LayoutSaver.h LayoutSaver_p.h - ) - +) set(DOCKS_INSTALLABLE_PRIVATE_INCLUDES private/Draggable_p.h @@ -55,7 +55,7 @@ set(DOCKS_INSTALLABLE_PRIVATE_INCLUDES private/Frame_p.h private/TabWidget_p.h private/TitleBar_p.h - ) +) set(DOCKS_INSTALLABLE_PRIVATE_WIDGET_INCLUDES private/widgets/QWidgetAdapter_widgets_p.h @@ -66,47 +66,46 @@ set(DOCKS_INSTALLABLE_PRIVATE_WIDGET_INCLUDES private/widgets/TabWidgetWidget_p.h ) -if (OPTION_QTQUICK) - set(DOCKSLIBS_SRCS ${DOCKSLIBS_SRCS} - private/quick/DockWidgetQuick.cpp - private/quick/QWidgetAdapter_quick.cpp - private/quick/FloatingWindowQuick.cpp - private/quick/TitleBarQuick.cpp - private/quick/QmlTypes.cpp - private/quick/TabWidgetQuick.cpp - private/quick/FrameQuick.cpp - private/quick/MainWindowQuick.cpp - private/quick/TabBarQuick.cpp - private/quick/LayoutSaverQuick.cpp) +if(OPTION_QTQUICK) + set(DOCKSLIBS_SRCS ${DOCKSLIBS_SRCS} + private/quick/DockWidgetQuick.cpp + private/quick/QWidgetAdapter_quick.cpp + private/quick/FloatingWindowQuick.cpp + private/quick/TitleBarQuick.cpp + private/quick/QmlTypes.cpp + private/quick/TabWidgetQuick.cpp + private/quick/FrameQuick.cpp + private/quick/MainWindowQuick.cpp + private/quick/TabBarQuick.cpp + private/quick/LayoutSaverQuick.cpp) qt5_add_resources(RESOURCES_QUICK ${CMAKE_CURRENT_SOURCE_DIR}/qtquick.qrc) - else() - set(DOCKSLIBS_SRCS ${DOCKSLIBS_SRCS} - private/widgets/TabBarWidget.cpp - private/widgets/FloatingWindowWidget.cpp - private/widgets/FrameWidget.cpp - private/widgets/TabWidgetWidget.cpp - private/widgets/TitleBarWidget.cpp - private/widgets/DockWidget.cpp - private/widgets/QWidgetAdapter_widgets.cpp - private/widgets/MultiSplitter.cpp - ) + set(DOCKSLIBS_SRCS ${DOCKSLIBS_SRCS} + private/widgets/TabBarWidget.cpp + private/widgets/FloatingWindowWidget.cpp + private/widgets/FrameWidget.cpp + private/widgets/TabWidgetWidget.cpp + private/widgets/TitleBarWidget.cpp + private/widgets/DockWidget.cpp + private/widgets/QWidgetAdapter_widgets.cpp + private/widgets/MultiSplitter.cpp + ) - set(DOCKS_INSTALLABLE_INCLUDES - ${DOCKS_INSTALLABLE_INCLUDES} - MainWindow.h - MainWindowBase.h - DockWidget.h) + set(DOCKS_INSTALLABLE_INCLUDES + ${DOCKS_INSTALLABLE_INCLUDES} + MainWindow.h + MainWindowBase.h + DockWidget.h + ) endif() -if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") - set(IS_CLANG_BUILD TRUE) +if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + set(IS_CLANG_BUILD TRUE) else() - set(IS_CLANG_BUILD FALSE) + set(IS_CLANG_BUILD FALSE) endif() - add_subdirectory(private/multisplitter) qt5_add_resources(RESOURCES ${CMAKE_CURRENT_SOURCE_DIR}/resources.qrc) @@ -116,79 +115,79 @@ add_library(KDAB::kddockwidgets ALIAS kddockwidgets) set_compiler_flags(kddockwidgets) target_include_directories(kddockwidgets - PUBLIC - $ - $ - $ - $ - PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/private + PUBLIC + $ + $ + $ + $ + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/private ) -target_compile_definitions(kddockwidgets PRIVATE BUILDING_DOCKS_LIBRARY - QT_NO_CAST_TO_ASCII - QT_NO_CAST_FROM_ASCII - QT_NO_URL_CAST_FROM_STRING - QT_NO_CAST_FROM_BYTEARRAY +target_compile_definitions(kddockwidgets + PRIVATE BUILDING_DOCKS_LIBRARY + QT_NO_CAST_TO_ASCII + QT_NO_CAST_FROM_ASCII + QT_NO_URL_CAST_FROM_STRING + QT_NO_CAST_FROM_BYTEARRAY ) -if (CMAKE_COMPILER_IS_GNUCXX OR IS_CLANG_BUILD) - target_compile_options(kddockwidgets PRIVATE -Wshadow -Wconversion -fvisibility=hidden) +if(CMAKE_COMPILER_IS_GNUCXX OR IS_CLANG_BUILD) + target_compile_options(kddockwidgets PRIVATE -Wshadow -Wconversion -fvisibility=hidden) - if (IS_CLANG_BUILD) - target_compile_options(kddockwidgets PRIVATE -Wweak-vtables) - endif() + if(IS_CLANG_BUILD) + target_compile_options(kddockwidgets PRIVATE -Wweak-vtables) + endif() endif() -if (OPTION_QTQUICK) - target_link_libraries(kddockwidgets Qt5::Widgets Qt5::Quick) +if(OPTION_QTQUICK) + target_link_libraries(kddockwidgets Qt5::Widgets Qt5::Quick) else() - target_link_libraries(kddockwidgets PUBLIC Qt5::Widgets kddockwidgets_multisplitter) + target_link_libraries(kddockwidgets PUBLIC Qt5::Widgets kddockwidgets_multisplitter) endif() - -if (NOT WIN32 AND NOT APPLE) - find_package(Qt5X11Extras) - target_link_libraries(kddockwidgets PUBLIC Qt5::X11Extras) +if(NOT WIN32 AND NOT APPLE) + find_package(Qt5X11Extras) + target_link_libraries(kddockwidgets PUBLIC Qt5::X11Extras) endif() #version libraries on Windows if(WIN32) - set(postfix ${${PROJECT_NAME}_VERSION_MAJOR}) - set(CMAKE_RELEASE_POSTFIX ${postfix}) - set_target_properties(kddockwidgets PROPERTIES RELEASE_POSTFIX ${CMAKE_RELEASE_POSTFIX}) - #append 'd' to debug libraries - string(CONCAT postfix ${postfix} "d") - set(CMAKE_DEBUG_POSTFIX ${postfix}) - set_target_properties(kddockwidgets PROPERTIES DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX}) + set(postfix ${${PROJECT_NAME}_VERSION_MAJOR}) + set(CMAKE_RELEASE_POSTFIX ${postfix}) + set_target_properties(kddockwidgets PROPERTIES RELEASE_POSTFIX ${CMAKE_RELEASE_POSTFIX}) + #append 'd' to debug libraries + string(CONCAT postfix ${postfix} "d") + set(CMAKE_DEBUG_POSTFIX ${postfix}) + set_target_properties(kddockwidgets PROPERTIES DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX}) endif() -install (TARGETS kddockwidgets - EXPORT kddockwidgetsTargets - RUNTIME DESTINATION ${INSTALL_RUNTIME_DIR} - LIBRARY DESTINATION ${INSTALL_LIBRARY_DIR} - ARCHIVE DESTINATION ${INSTALL_ARCHIVE_DIR} - ) +install(TARGETS kddockwidgets + EXPORT kddockwidgetsTargets + RUNTIME DESTINATION ${INSTALL_RUNTIME_DIR} + LIBRARY DESTINATION ${INSTALL_LIBRARY_DIR} + ARCHIVE DESTINATION ${INSTALL_ARCHIVE_DIR} +) if(MSVC) - install(FILES "$/$" DESTINATION ${INSTALL_LIBRARY_DIR} CONFIGURATIONS Debug RelWithDebInfo) + install(FILES "$/$" DESTINATION ${INSTALL_LIBRARY_DIR} CONFIGURATIONS Debug RelWithDebInfo) endif() -install (FILES ${DOCKS_INSTALLABLE_INCLUDES} DESTINATION include/kddockwidgets) -install (FILES ${DOCKS_INSTALLABLE_PRIVATE_INCLUDES} DESTINATION include/kddockwidgets/private) -install (FILES private/multisplitter/Item_p.h DESTINATION include/kddockwidgets/multisplitter) -install (FILES private/multisplitter/Widget.h DESTINATION include/kddockwidgets/multisplitter) -install (FILES private/multisplitter/Widget_qwidget.h DESTINATION include/kddockwidgets/multisplitter) -install (FILES private/multisplitter/Separator_p.h DESTINATION include/kddockwidgets/multisplitter) -install (FILES private/multisplitter/Separator_qwidget.h DESTINATION include/kddockwidgets/multisplitter) -install (FILES private/multisplitter/multisplitter_export.h DESTINATION include/kddockwidgets/multisplitter) -install (FILES ${DOCKS_INSTALLABLE_PRIVATE_WIDGET_INCLUDES} DESTINATION include/kddockwidgets/private/widgets) +install(FILES ${DOCKS_INSTALLABLE_INCLUDES} DESTINATION include/kddockwidgets) +install(FILES ${DOCKS_INSTALLABLE_PRIVATE_INCLUDES} DESTINATION include/kddockwidgets/private) +install(FILES private/multisplitter/Item_p.h DESTINATION include/kddockwidgets/multisplitter) +install(FILES private/multisplitter/Widget.h DESTINATION include/kddockwidgets/multisplitter) +install(FILES private/multisplitter/Widget_qwidget.h DESTINATION include/kddockwidgets/multisplitter) +install(FILES private/multisplitter/Separator_p.h DESTINATION include/kddockwidgets/multisplitter) +install(FILES private/multisplitter/Separator_qwidget.h DESTINATION include/kddockwidgets/multisplitter) +install(FILES private/multisplitter/multisplitter_export.h DESTINATION include/kddockwidgets/multisplitter) +install(FILES ${DOCKS_INSTALLABLE_PRIVATE_WIDGET_INCLUDES} DESTINATION include/kddockwidgets/private/widgets) include(CMakePackageConfigHelpers) write_basic_package_version_file( - KDDockWidgetsConfigVersion.cmake - VERSION ${PACKAGE_VERSION} - COMPATIBILITY AnyNewerVersion - ) + KDDockWidgetsConfigVersion.cmake + VERSION ${PACKAGE_VERSION} + COMPATIBILITY AnyNewerVersion +) install(EXPORT kddockwidgetsTargets FILE KDDockWidgetsTargets.cmake @@ -201,10 +200,10 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/KDDockWidgetsConfig.cmake" DESTINATION ${INSTALL_LIBRARY_DIR}/cmake/KDDockWidgets ) -if (OPTION_DEVELOPER_MODE) - # Under developer mode since kddw might be a sub-folder of a project setting a different value for QT_DISABLE_DEPRECATED_BEFORE - target_compile_definitions(kddockwidgets PRIVATE QT_DISABLE_DEPRECATED_BEFORE=0x060000) +if(OPTION_DEVELOPER_MODE) + # Under developer mode since kddw might be a sub-folder of a project setting a different value for QT_DISABLE_DEPRECATED_BEFORE + target_compile_definitions(kddockwidgets PRIVATE QT_DISABLE_DEPRECATED_BEFORE=0x060000) - add_executable(kddockwidgets_linter layoutlinter_main.cpp) - target_link_libraries(kddockwidgets_linter kddockwidgets kddockwidgets_multisplitter Qt5::Widgets) + add_executable(kddockwidgets_linter layoutlinter_main.cpp) + target_link_libraries(kddockwidgets_linter kddockwidgets kddockwidgets_multisplitter Qt5::Widgets) endif() diff --git a/src/private/multisplitter/CMakeLists.txt b/src/private/multisplitter/CMakeLists.txt index e0d2f7e9..bbde0b20 100644 --- a/src/private/multisplitter/CMakeLists.txt +++ b/src/private/multisplitter/CMakeLists.txt @@ -29,15 +29,14 @@ set(MULTISPLITTER_SRCS_QTQUICK option(BUILD_MULTISPLITTER_QTWIDGETS_FRONTEND "Build support for QtWidgets" ON) option(BUILD_MULTISPLITTER_QTQUICK_FRONTEND "Build support for QtQuick" OFF) - -if (BUILD_MULTISPLITTER_QTWIDGETS_FRONTEND) - set(MULTISPLITTER_SRCS ${MULTISPLITTER_SRCS} ${MULTISPLITTER_SRCS_QTWIDGETS}) - add_definitions(-DKDMULTISPLITTER_QTWIDGETS) +if(BUILD_MULTISPLITTER_QTWIDGETS_FRONTEND) + set(MULTISPLITTER_SRCS ${MULTISPLITTER_SRCS} ${MULTISPLITTER_SRCS_QTWIDGETS}) + add_definitions(-DKDMULTISPLITTER_QTWIDGETS) endif() -if (BUILD_MULTISPLITTER_QTQUICK_FRONTEND) - set(MULTISPLITTER_SRCS ${MULTISPLITTER_SRCS} ${MULTISPLITTER_SRCS_QTQUICK}) - add_definitions(-DKDMULTISPLITTER_QTQUICK) +if(BUILD_MULTISPLITTER_QTQUICK_FRONTEND) + set(MULTISPLITTER_SRCS ${MULTISPLITTER_SRCS} ${MULTISPLITTER_SRCS_QTQUICK}) + add_definitions(-DKDMULTISPLITTER_QTQUICK) endif() qt5_add_resources(MULTISPLITTER_RESOURCES ${CMAKE_CURRENT_SOURCE_DIR}/multisplitter.qrc) @@ -47,52 +46,52 @@ 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) - target_link_libraries(kddockwidgets_multisplitter Qt5::Core Qt5::Widgets) +if(BUILD_MULTISPLITTER_QTWIDGETS_FRONTEND) + find_package(Qt5Widgets) + target_link_libraries(kddockwidgets_multisplitter Qt5::Core Qt5::Widgets) endif() -if (BUILD_MULTISPLITTER_QTQUICK_FRONTEND) - find_package(Qt5Quick) - target_link_libraries(kddockwidgets_multisplitter Qt5::Core Qt5::Quick) +if(BUILD_MULTISPLITTER_QTQUICK_FRONTEND) + find_package(Qt5Quick) + target_link_libraries(kddockwidgets_multisplitter Qt5::Core Qt5::Quick) endif() target_compile_definitions(kddockwidgets_multisplitter PRIVATE BUILDING_MULTISPLITTER_LIBRARY) -if (OPTION_DEVELOPER_MODE) - # Under developer mode since kddw might be a sub-folder of a project setting a different value for QT_DISABLE_DEPRECATED_BEFORE - target_compile_definitions(kddockwidgets_multisplitter PRIVATE QT_DISABLE_DEPRECATED_BEFORE=0x060000) +if(OPTION_DEVELOPER_MODE) + # Under developer mode since kddw might be a sub-folder of a project setting a different value for QT_DISABLE_DEPRECATED_BEFORE + target_compile_definitions(kddockwidgets_multisplitter PRIVATE QT_DISABLE_DEPRECATED_BEFORE=0x060000) - add_subdirectory(tests) - if(${PROJECT_NAME}_EXAMPLES) - add_subdirectory(examples) - endif() + add_subdirectory(tests) + if(${PROJECT_NAME}_EXAMPLES) + add_subdirectory(examples) + endif() endif() target_include_directories(kddockwidgets_multisplitter - PUBLIC - $ - PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR} + PUBLIC + $ + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} ) #version libraries on Windows if(WIN32) - set(postfix ${${PROJECT_NAME}_VERSION_MAJOR}) - set(CMAKE_RELEASE_POSTFIX ${postfix}) - set_target_properties(kddockwidgets_multisplitter PROPERTIES RELEASE_POSTFIX ${CMAKE_RELEASE_POSTFIX}) - #append 'd' to debug libraries - string(CONCAT postfix ${postfix} "d") - set(CMAKE_DEBUG_POSTFIX ${postfix}) - set_target_properties(kddockwidgets_multisplitter PROPERTIES DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX}) + set(postfix ${${PROJECT_NAME}_VERSION_MAJOR}) + set(CMAKE_RELEASE_POSTFIX ${postfix}) + set_target_properties(kddockwidgets_multisplitter PROPERTIES RELEASE_POSTFIX ${CMAKE_RELEASE_POSTFIX}) + #append 'd' to debug libraries + string(CONCAT postfix ${postfix} "d") + set(CMAKE_DEBUG_POSTFIX ${postfix}) + set_target_properties(kddockwidgets_multisplitter PROPERTIES DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX}) endif() -install (TARGETS kddockwidgets_multisplitter - EXPORT kddockwidgetsTargets - RUNTIME DESTINATION ${INSTALL_RUNTIME_DIR} - LIBRARY DESTINATION ${INSTALL_LIBRARY_DIR} - ARCHIVE DESTINATION ${INSTALL_ARCHIVE_DIR} - ) +install(TARGETS kddockwidgets_multisplitter + EXPORT kddockwidgetsTargets + RUNTIME DESTINATION ${INSTALL_RUNTIME_DIR} + LIBRARY DESTINATION ${INSTALL_LIBRARY_DIR} + ARCHIVE DESTINATION ${INSTALL_ARCHIVE_DIR} +) if(MSVC) - install(FILES "$/$" DESTINATION ${INSTALL_LIBRARY_DIR} CONFIGURATIONS Debug RelWithDebInfo) + install(FILES "$/$" DESTINATION ${INSTALL_LIBRARY_DIR} CONFIGURATIONS Debug RelWithDebInfo) endif() diff --git a/src/private/multisplitter/examples/CMakeLists.txt b/src/private/multisplitter/examples/CMakeLists.txt index 7891e333..479be95d 100644 --- a/src/private/multisplitter/examples/CMakeLists.txt +++ b/src/private/multisplitter/examples/CMakeLists.txt @@ -1,3 +1,3 @@ -if (BUILD_MULTISPLITTER_QTQUICK_FRONTEND) +if(BUILD_MULTISPLITTER_QTQUICK_FRONTEND) add_subdirectory(quick) endif() diff --git a/src/private/multisplitter/tests/CMakeLists.txt b/src/private/multisplitter/tests/CMakeLists.txt index 1aed6cd2..9b74671c 100644 --- a/src/private/multisplitter/tests/CMakeLists.txt +++ b/src/private/multisplitter/tests/CMakeLists.txt @@ -1,6 +1,5 @@ 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 ad854b4b..e2186abd 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,4 +1,6 @@ -cmake_policy(SET CMP0043 NEW) +if(POLICY CMP0043) + cmake_policy(SET CMP0043 NEW) +endif() include_directories(${CMAKE_SOURCE_DIR}/src) include_directories(${CMAKE_CURRENT_BINARY_DIR}) diff --git a/tests/fuzzer/CMakeLists.txt b/tests/fuzzer/CMakeLists.txt index ca0da9c8..de537d1e 100644 --- a/tests/fuzzer/CMakeLists.txt +++ b/tests/fuzzer/CMakeLists.txt @@ -1,9 +1,5 @@ -add_executable(fuzzer - main.cpp - Fuzzer.cpp - Operations.cpp - ../Testing.cpp) +add_executable(fuzzer main.cpp Fuzzer.cpp Operations.cpp ../Testing.cpp) set_property(TARGET fuzzer PROPERTY CXX_STANDARD 17) target_link_libraries(fuzzer kddockwidgets Qt5::Widgets Qt5::Test)