diff --git a/.cmake-format.py b/.cmake-format.py index 06de7f8f..d0101f7e 100644 --- a/.cmake-format.py +++ b/.cmake-format.py @@ -49,7 +49,7 @@ with section("format"): # If a positional argument group contains more than this many arguments, then # force it to a vertical layout. - max_pargs_hwrap = 6 + max_pargs_hwrap = 4 # If a cmdline positional group consumes more than this many lines without # nesting, then invalidate the layout (and nest) @@ -94,7 +94,8 @@ with section("format"): keyword_case = 'upper' # A list of command names which should always be wrapped - always_wrap = [] + always_wrap = ["add_executable", "add_library", + "target_link_libraries", "target_include_directories", "install"] # If true, the argument lists which are known to be sortable will be sorted # lexicographicall @@ -102,7 +103,7 @@ with section("format"): # If true, the parsers may infer whether or not an argument list is sortable # (without annotation). - autosort = False + autosort = True # By default, if cmake-format cannot successfully fit everything into the # desired linewidth it will apply the last, most agressive attempt that it diff --git a/CMakeLists.txt b/CMakeLists.txt index 43ee4af4..9319eaf5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -133,7 +133,14 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) CACHE STRING "Choose the type of build." FORCE ) # Set the possible values of build type for cmake-gui - set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo") + set_property( + CACHE CMAKE_BUILD_TYPE + PROPERTY STRINGS + "Debug" + "Release" + "MinSizeRel" + "RelWithDebInfo" + ) endif() if(${PROJECT_NAME}_XLib) diff --git a/docs/api/CMakeLists.txt b/docs/api/CMakeLists.txt index 5dfd9b0f..28cd5d21 100644 --- a/docs/api/CMakeLists.txt +++ b/docs/api/CMakeLists.txt @@ -79,5 +79,11 @@ set(QCH_INSTALL_DIR ${INSTALL_DOC_DIR} CACHE STRING "Install location of Qt Assistant help files." ) -install(FILES ${DOXYGEN_OUTPUT_DIR}/qch/kddockwidgets-api.qch DESTINATION ${QCH_INSTALL_DIR}) -install(FILES ${DOXYGEN_OUTPUT_DIR}/kddockwidgets.tags DESTINATION ${INSTALL_DOC_DIR}) +install( + FILES ${DOXYGEN_OUTPUT_DIR}/qch/kddockwidgets-api.qch + DESTINATION ${QCH_INSTALL_DIR} +) +install( + FILES ${DOXYGEN_OUTPUT_DIR}/kddockwidgets.tags + DESTINATION ${INSTALL_DOC_DIR} +) diff --git a/examples/dockwidgets/CMakeLists.txt b/examples/dockwidgets/CMakeLists.txt index f43cf557..65e9b4da 100644 --- a/examples/dockwidgets/CMakeLists.txt +++ b/examples/dockwidgets/CMakeLists.txt @@ -25,7 +25,15 @@ endif() set(RESOURCES_EXAMPLE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/resources_example.qrc) add_executable( - kddockwidgets_example main.cpp MyFrameworkWidgetFactory.cpp MyMainWindow.cpp MyWidget.cpp ${RESOURCES_EXAMPLE_SRC} + kddockwidgets_example + ${RESOURCES_EXAMPLE_SRC} + main.cpp + MyFrameworkWidgetFactory.cpp + MyMainWindow.cpp + MyWidget.cpp ) -target_link_libraries(kddockwidgets_example PRIVATE KDAB::kddockwidgets) +target_link_libraries( + kddockwidgets_example + PRIVATE KDAB::kddockwidgets +) diff --git a/examples/mdi_with_docking/CMakeLists.txt b/examples/mdi_with_docking/CMakeLists.txt index 2bb87037..861e8b73 100644 --- a/examples/mdi_with_docking/CMakeLists.txt +++ b/examples/mdi_with_docking/CMakeLists.txt @@ -27,6 +27,12 @@ set(RESOURCES_EXAMPLE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/../dockwidgets/resources_e # Just to reuse MyWidget.h include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../dockwidgets/) -add_executable(kddockwidgets_mdi_with_docking_example main.cpp ../dockwidgets/MyWidget.cpp ${RESOURCES_EXAMPLE_SRC}) +add_executable( + kddockwidgets_mdi_with_docking_example + ${RESOURCES_EXAMPLE_SRC} ../dockwidgets/MyWidget.cpp main.cpp +) -target_link_libraries(kddockwidgets_mdi_with_docking_example PRIVATE KDAB::kddockwidgets) +target_link_libraries( + kddockwidgets_mdi_with_docking_example + PRIVATE KDAB::kddockwidgets +) diff --git a/examples/minimal-mdi/CMakeLists.txt b/examples/minimal-mdi/CMakeLists.txt index 955f6698..497ca1c9 100644 --- a/examples/minimal-mdi/CMakeLists.txt +++ b/examples/minimal-mdi/CMakeLists.txt @@ -27,6 +27,12 @@ set(RESOURCES_EXAMPLE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/../dockwidgets/resources_e # Just to reuse MyWidget.h include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../dockwidgets/) -add_executable(kddockwidgets_minimal_mdi_example main.cpp ../dockwidgets/MyWidget.cpp ${RESOURCES_EXAMPLE_SRC}) +add_executable( + kddockwidgets_minimal_mdi_example + ${RESOURCES_EXAMPLE_SRC} ../dockwidgets/MyWidget.cpp main.cpp +) -target_link_libraries(kddockwidgets_minimal_mdi_example PRIVATE KDAB::kddockwidgets) +target_link_libraries( + kddockwidgets_minimal_mdi_example + PRIVATE KDAB::kddockwidgets +) diff --git a/examples/minimal/CMakeLists.txt b/examples/minimal/CMakeLists.txt index 28eaffba..c1c35526 100644 --- a/examples/minimal/CMakeLists.txt +++ b/examples/minimal/CMakeLists.txt @@ -24,6 +24,12 @@ endif() set(RESOURCES_EXAMPLE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/../dockwidgets/resources_example.qrc) -add_executable(kddockwidgets_minimal_example main.cpp ../dockwidgets/MyWidget.cpp ${RESOURCES_EXAMPLE_SRC}) +add_executable( + kddockwidgets_minimal_example + ${RESOURCES_EXAMPLE_SRC} ../dockwidgets/MyWidget.cpp main.cpp +) -target_link_libraries(kddockwidgets_minimal_example PRIVATE KDAB::kddockwidgets) +target_link_libraries( + kddockwidgets_minimal_example + PRIVATE KDAB::kddockwidgets +) diff --git a/examples/qtquick/customtitlebar/CMakeLists.txt b/examples/qtquick/customtitlebar/CMakeLists.txt index 96053041..42fb9735 100644 --- a/examples/qtquick/customtitlebar/CMakeLists.txt +++ b/examples/qtquick/customtitlebar/CMakeLists.txt @@ -26,6 +26,12 @@ set(RESOURCES_EXAMPLE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/resources_qtquick_example. ${CMAKE_CURRENT_SOURCE_DIR}/../../dockwidgets/resources_example.qrc ) -add_executable(kddockwidgets_customtitlebar_quick main.cpp ${RESOURCES_EXAMPLE_SRC}) +add_executable( + kddockwidgets_customtitlebar_quick + ${RESOURCES_EXAMPLE_SRC} main.cpp +) -target_link_libraries(kddockwidgets_customtitlebar_quick PRIVATE KDAB::kddockwidgets) +target_link_libraries( + kddockwidgets_customtitlebar_quick + PRIVATE KDAB::kddockwidgets +) diff --git a/examples/qtquick/dockwidgets/CMakeLists.txt b/examples/qtquick/dockwidgets/CMakeLists.txt index fcefc9f3..bd07c53f 100644 --- a/examples/qtquick/dockwidgets/CMakeLists.txt +++ b/examples/qtquick/dockwidgets/CMakeLists.txt @@ -26,6 +26,12 @@ set(RESOURCES_EXAMPLE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/resources_qtquick_example. ${CMAKE_CURRENT_SOURCE_DIR}/../../dockwidgets/resources_example.qrc ) -add_executable(kddockwidgets_example_quick main.cpp ${RESOURCES_EXAMPLE_SRC}) +add_executable( + kddockwidgets_example_quick + ${RESOURCES_EXAMPLE_SRC} main.cpp +) -target_link_libraries(kddockwidgets_example_quick PRIVATE KDAB::kddockwidgets) +target_link_libraries( + kddockwidgets_example_quick + PRIVATE KDAB::kddockwidgets +) diff --git a/examples/qtquick/mdi/CMakeLists.txt b/examples/qtquick/mdi/CMakeLists.txt index b27ff9de..e0911629 100644 --- a/examples/qtquick/mdi/CMakeLists.txt +++ b/examples/qtquick/mdi/CMakeLists.txt @@ -26,6 +26,12 @@ set(RESOURCES_EXAMPLE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/resources_qtquick_mdi_exam ${CMAKE_CURRENT_SOURCE_DIR}/../../dockwidgets/resources_example.qrc ) -add_executable(kddockwidgets_example_mdi_quick main.cpp ${RESOURCES_EXAMPLE_SRC}) +add_executable( + kddockwidgets_example_mdi_quick + ${RESOURCES_EXAMPLE_SRC} main.cpp +) -target_link_libraries(kddockwidgets_example_mdi_quick PRIVATE KDAB::kddockwidgets) +target_link_libraries( + kddockwidgets_example_mdi_quick + PRIVATE KDAB::kddockwidgets +) diff --git a/python/PyKDDockWidgets/CMakeLists.txt b/python/PyKDDockWidgets/CMakeLists.txt index 48e5995b..f787f028 100644 --- a/python/PyKDDockWidgets/CMakeLists.txt +++ b/python/PyKDDockWidgets/CMakeLists.txt @@ -43,14 +43,21 @@ set(PyKDDockWidgets_typesystem_paths # PySide path, this variable was exposed by set(PyKDDockWidgets_target_include_directories ${CMAKE_SOURCE_DIR}/src) # Libraries that will be necessary to link the target, this will used in the command 'target_link_libraries' -set(PyKDDockWidgets_target_link_libraries KDAB::kddockwidgets Qt${Qt_VERSION_MAJOR}::Core Qt${Qt_VERSION_MAJOR}::Gui - Qt${Qt_VERSION_MAJOR}::Widgets ${Python3_LIBRARIES} +set(PyKDDockWidgets_target_link_libraries + KDAB::kddockwidgets + Qt${Qt_VERSION_MAJOR}::Core + Qt${Qt_VERSION_MAJOR}::Gui + Qt${Qt_VERSION_MAJOR}::Widgets + ${Python3_LIBRARIES} ) # changes on these files should trigger a new generation set(PyKDDockWidgets_DEPENDS - ${CMAKE_CURRENT_SOURCE_DIR}/kddockwidgets_global.h ${CMAKE_SOURCE_DIR}/src/DockWidgetBase.h - ${CMAKE_SOURCE_DIR}/src/DockWidget.h ${CMAKE_SOURCE_DIR}/src/MainWindowBase.h ${CMAKE_SOURCE_DIR}/src/MainWindow.h + ${CMAKE_CURRENT_SOURCE_DIR}/kddockwidgets_global.h + ${CMAKE_SOURCE_DIR}/src/DockWidgetBase.h + ${CMAKE_SOURCE_DIR}/src/DockWidget.h + ${CMAKE_SOURCE_DIR}/src/MainWindowBase.h + ${CMAKE_SOURCE_DIR}/src/MainWindow.h ${CMAKE_SOURCE_DIR}/src/LayoutSaver.h ) @@ -71,8 +78,9 @@ create_python_bindings( configure_file(${CMAKE_CURRENT_SOURCE_DIR}/__init__.py.cmake ${CMAKE_CURRENT_BINARY_DIR}/__init__.py @ONLY) # install -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/__init__.py $ - DESTINATION ${${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX} +install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/__init__.py $ + DESTINATION ${${PROJECT_NAME}_PYTHON_BINDINGS_INSTALL_PREFIX} ) if(NOT WIN32) install(FILES $ $ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c26f8ff7..55aec8f5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -14,8 +14,12 @@ if(POLICY CMP0043) endif() add_definitions( - -DQT_NO_SIGNALS_SLOTS_KEYWORDS -DQT_USE_QSTRINGBUILDER -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT - -DQT_STRICT_ITERATORS -DQT_NO_KEYWORDS -DQT_NO_FOREACH + -DQT_NO_SIGNALS_SLOTS_KEYWORDS + -DQT_USE_QSTRINGBUILDER + -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT + -DQT_STRICT_ITERATORS + -DQT_NO_KEYWORDS + -DQT_NO_FOREACH ) set(DOCKSLIBS_SRCS @@ -239,8 +243,13 @@ ecm_generate_headers( set(RESOURCES ${CMAKE_CURRENT_SOURCE_DIR}/kddockwidgets_resources.qrc) -add_library(kddockwidgets ${KDDockWidgets_LIBRARY_MODE} ${DOCKSLIBS_SRCS} ${DOCKS_INSTALLABLE_INCLUDES} ${RESOURCES}) -add_library(KDAB::kddockwidgets ALIAS kddockwidgets) +add_library( + kddockwidgets + ${KDDockWidgets_LIBRARY_MODE} ${DOCKSLIBS_SRCS} ${DOCKS_INSTALLABLE_INCLUDES} ${RESOURCES} +) +add_library( + KDAB::kddockwidgets ALIAS kddockwidgets +) set_target_properties(kddockwidgets PROPERTIES OUTPUT_NAME "kddockwidgets${KDDockWidgets_LIBRARY_QTID}") set_compiler_flags(kddockwidgets) @@ -353,23 +362,37 @@ if(MSVC AND NOT ${PROJECT_NAME}_STATIC) ) endif() -install(FILES ${camelcase_HEADERS} DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets) -install(FILES ${DOCKS_INSTALLABLE_INCLUDES} DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets) -install(FILES ${DOCKS_INSTALLABLE_PRIVATE_INCLUDES} DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets/private) -install(FILES private/multisplitter/Item_p.h - DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets/private/multisplitter +install( + FILES ${camelcase_HEADERS} + DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets ) -install(FILES private/multisplitter/Widget.h - DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets/private/multisplitter +install( + FILES ${DOCKS_INSTALLABLE_INCLUDES} + DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets ) -install(FILES private/multisplitter/Separator_p.h - DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets/private/multisplitter +install( + FILES ${DOCKS_INSTALLABLE_PRIVATE_INCLUDES} + DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets/private ) -install(FILES private/indicators/ClassicIndicators_p.h - DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets/private/indicators +install( + FILES private/multisplitter/Item_p.h + DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets/private/multisplitter ) -install(FILES private/indicators/SegmentedIndicators_p.h - DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets/private/indicators +install( + FILES private/multisplitter/Widget.h + DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets/private/multisplitter +) +install( + FILES private/multisplitter/Separator_p.h + DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets/private/multisplitter +) +install( + FILES private/indicators/ClassicIndicators_p.h + DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets/private/indicators +) +install( + FILES private/indicators/SegmentedIndicators_p.h + DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets/private/indicators ) if(KDDockWidgets_QTQUICK) @@ -409,8 +432,9 @@ ecm_setup_version( COMPATIBILITY AnyNewerVersion ) -install(FILES "${CMAKE_CURRENT_BINARY_DIR}/kddockwidgets_version.h" - DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets +install( + FILES "${CMAKE_CURRENT_BINARY_DIR}/kddockwidgets_version.h" + DESTINATION ${DOCKS_INCLUDES_INSTALL_PATH}/kddockwidgets ) install( EXPORT kddockwidgetsTargets @@ -419,9 +443,10 @@ install( DESTINATION ${INSTALL_LIBRARY_DIR}/cmake/KDDockWidgets${KDDockWidgets_LIBRARY_QTID} ) configure_file(KDDockWidgetsConfig.cmake.in KDDockWidgets${KDDockWidgets_LIBRARY_QTID}Config.cmake @ONLY) -install(FILES "${CMAKE_CURRENT_BINARY_DIR}/KDDockWidgets${KDDockWidgets_LIBRARY_QTID}Config.cmake" - "${CMAKE_CURRENT_BINARY_DIR}/KDDockWidgets${KDDockWidgets_LIBRARY_QTID}ConfigVersion.cmake" - DESTINATION ${INSTALL_LIBRARY_DIR}/cmake/KDDockWidgets${KDDockWidgets_LIBRARY_QTID} +install( + FILES "${CMAKE_CURRENT_BINARY_DIR}/KDDockWidgets${KDDockWidgets_LIBRARY_QTID}Config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/KDDockWidgets${KDDockWidgets_LIBRARY_QTID}ConfigVersion.cmake" + DESTINATION ${INSTALL_LIBRARY_DIR}/cmake/KDDockWidgets${KDDockWidgets_LIBRARY_QTID} ) if(${PROJECT_NAME}_DEVELOPER_MODE) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index df890e9a..367ee5d7 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -33,8 +33,13 @@ option(KDDockWidgets_FUZZER "Builds the fuzzer" ON) # tst_docks set(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 Qt${Qt_VERSION_MAJOR}::Test) +add_executable( + tst_docks + ${TESTING_RESOURCES} ${TESTING_SRCS} tst_docks.cpp +) +target_link_libraries( + tst_docks kddockwidgets Qt${Qt_VERSION_MAJOR}::Test +) set_compiler_flags(tst_docks) if(NOT ${PROJECT_NAME}_QTQUICK) @@ -47,5 +52,10 @@ if(NOT ${PROJECT_NAME}_QTQUICK) endif() # tests_launcher -add_executable(tests_launcher tests_launcher.cpp) -target_link_libraries(tests_launcher Qt${Qt_VERSION_MAJOR}::Core) +add_executable( + tests_launcher + tests_launcher.cpp +) +target_link_libraries( + tests_launcher Qt${Qt_VERSION_MAJOR}::Core +) diff --git a/tests/fuzzer/CMakeLists.txt b/tests/fuzzer/CMakeLists.txt index f10827d9..ba0413e2 100644 --- a/tests/fuzzer/CMakeLists.txt +++ b/tests/fuzzer/CMakeLists.txt @@ -9,8 +9,13 @@ # Contact KDAB at for commercial licensing options. # -add_executable(fuzzer main.cpp Fuzzer.cpp Operations.cpp ../Testing.cpp) +add_executable( + fuzzer + ../Testing.cpp Fuzzer.cpp main.cpp Operations.cpp +) set_property(TARGET fuzzer PROPERTY CXX_STANDARD 17) -target_link_libraries(fuzzer kddockwidgets Qt${Qt_VERSION_MAJOR}::Widgets Qt${Qt_VERSION_MAJOR}::Test) +target_link_libraries( + fuzzer kddockwidgets Qt${Qt_VERSION_MAJOR}::Widgets Qt${Qt_VERSION_MAJOR}::Test +) set_compiler_flags(fuzzer)