From ff469fb37fde6ac319321e36e53e16f3b92452e9 Mon Sep 17 00:00:00 2001 From: Laurent Montel Date: Mon, 14 Dec 2020 13:58:38 +0100 Subject: [PATCH] Allow to use UNITY build see https://cmake.org/cmake/help/latest/prop_tgt/UNITY_BUILD.html (Reduce compile time. Need cmake 3.16.0) --- CMakeLists.txt | 10 ++++++++++ src/pimcommon/CMakeLists.txt | 3 +++ src/pimcommonakonadi/CMakeLists.txt | 4 ++++ 3 files changed, 17 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index eaff48e..8e04806 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -65,6 +65,16 @@ find_package(KF5GrantleeTheme ${GRANTLEETHEME_LIB_VERSION} CONFIG REQUIRED) find_package(KF5Purpose ${KF5_MIN_VERSION} CONFIG REQUIRED) +option(USE_UNIFY_CMAKE_SUPPORT "Use UNIFY cmake support (speedup compile time)" FALSE) + +set(COMPILE_WITH_CMAKE_SUPPORT false) +if (USE_UNIFY_CMAKE_SUPPORT) + if(${CMAKE_VERSION} VERSION_LESS "3.16.0") + message(STATUS "CMAKE version is less than 3.16.0 . We can't use cmake unify build support") + else() + set(COMPILE_WITH_CMAKE_SUPPORT true) + endif() +endif() option(BUILD_DESIGNERPLUGIN "Build plugin for Qt Designer" ON) add_feature_info(DESIGNERPLUGIN ${BUILD_DESIGNERPLUGIN} "Build plugin for Qt Designer") diff --git a/src/pimcommon/CMakeLists.txt b/src/pimcommon/CMakeLists.txt index f1d9bc1..f7620af 100644 --- a/src/pimcommon/CMakeLists.txt +++ b/src/pimcommon/CMakeLists.txt @@ -165,6 +165,9 @@ kconfig_add_kcfg_files(libpimcommon_SRCS ) add_library(KF5PimCommon ${libpimcommon_SRCS}) +if (COMPILE_WITH_CMAKE_SUPPORT) + set_target_properties(KF5PimCommon PROPERTIES UNITY_BUILD ON) +endif() generate_export_header(KF5PimCommon BASE_NAME pimcommon) add_library(KF5::PimCommon ALIAS KF5PimCommon) diff --git a/src/pimcommonakonadi/CMakeLists.txt b/src/pimcommonakonadi/CMakeLists.txt index b5078ca..dc31a40 100644 --- a/src/pimcommonakonadi/CMakeLists.txt +++ b/src/pimcommonakonadi/CMakeLists.txt @@ -140,6 +140,10 @@ ecm_qt_declare_logging_category(libpimcommonakonadi_SRCS HEADER pimcommonakonadi add_library(KF5PimCommonAkonadi ${libpimcommonakonadi_SRCS}) +if (COMPILE_WITH_CMAKE_SUPPORT) + set_target_properties(KF5PimCommonAkonadi PROPERTIES UNITY_BUILD ON) +endif() + generate_export_header(KF5PimCommonAkonadi BASE_NAME pimcommonakonadi) add_library(KF5::PimCommonAkonadi ALIAS KF5PimCommonAkonadi) -- GitLab