diff --git a/CMakeLists.txt b/CMakeLists.txt index 09b9ffb6..7ab24455 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -82,6 +82,12 @@ include(FeatureSummary) option(${PROJECT_NAME}_QT6 "Build against Qt 6" OFF) option(${PROJECT_NAME}_DEVELOPER_MODE "Developer Mode" OFF) option(${PROJECT_NAME}_PYTHON_BINDINGS "Build python bindings" OFF) + +if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16.0") + option(${PROJECT_NAME}_UNITY_BUILD "Build with CMake's UNITY_BUILD" ON) +endif() + + if(${PROJECT_NAME}_PYTHON_BINDINGS AND (CMAKE_BUILD_TYPE MATCHES "^[Dd]eb" OR ${PROJECT_NAME}_STATIC)) message(FATAL_ERROR "** Python Bindings are disabled in debug or static builds.") endif() @@ -225,3 +231,8 @@ endif() if(${PROJECT_NAME}_DOCS) add_subdirectory(docs) # needs to go last, in case there are build source files endif() + +if (${PROJECT_NAME}_UNITY_BUILD) + set_target_properties(kddockwidgets PROPERTIES UNITY_BUILD ON) + set_target_properties(kddockwidgets_multisplitter PROPERTIES UNITY_BUILD ON) +endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4300fb4f..7c01c5ce 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -242,7 +242,6 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/KDDockWidgetsConfig.cmake" if(${PROJECT_NAME}_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) - set_target_properties(kddockwidgets PROPERTIES UNITY_BUILD ON) if (NOT ${PROJECT_NAME}_QTQUICK) # TODO: We can support it add_executable(kddockwidgets_linter layoutlinter_main.cpp) diff --git a/src/private/multisplitter/CMakeLists.txt b/src/private/multisplitter/CMakeLists.txt index defafadc..b47ab6f3 100644 --- a/src/private/multisplitter/CMakeLists.txt +++ b/src/private/multisplitter/CMakeLists.txt @@ -73,8 +73,6 @@ if(${PROJECT_NAME}_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) - set_target_properties(kddockwidgets_multisplitter PROPERTIES UNITY_BUILD ON) - if(${PROJECT_NAME}_TESTS AND NOT ${PROJECT_NAME}_QTQUICK) add_subdirectory(tests) endif()