From 1558249238f957f2bef21835cecd4bf96a095c91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damian=20Kr=C3=B3lik?= <66667989+Damian-Nordic@users.noreply.github.com> Date: Thu, 15 Jun 2023 15:01:58 +0200 Subject: [PATCH] Optimize compilation time (#27228) * Optimize compilation time 1. Do not to include cluster-objects.h if not needed as parsing such a large header significantly impacts the build time and in most cases it is enough to include ClusterEnums.h. 2. Do not build the controller library for embedded targets, by default. If needed, this can be overriden using the chip_build_controller argument from lib.gni. * Fix build --- .../all-clusters-minimal-app/asr/src/DeviceCallbacks.cpp | 1 + examples/bridge-app/asr/subdevice/SubDeviceManager.cpp | 1 + examples/bridge-app/asr/subdevice/subdevice_test.cpp | 1 + .../nxp/k32w/k32w0/main/ZclCallbacks.cpp | 1 + examples/platform/silabs/efr32/BUILD.gn | 1 + .../App/app/src/main/jni/cpp/MatterCallbackHandler-JNI.h | 2 ++ .../tv-casting-common/include/ApplicationBasic.h | 2 ++ .../tv-casting-common/include/ApplicationLauncher.h | 2 ++ .../tv-casting-app/tv-casting-common/include/Channel.h | 2 ++ .../tv-casting-common/include/ContentLauncher.h | 2 ++ .../tv-casting-app/tv-casting-common/include/KeypadInput.h | 2 ++ .../tv-casting-common/include/LevelControl.h | 2 ++ .../tv-casting-common/include/MediaPlayback.h | 2 ++ examples/tv-casting-app/tv-casting-common/include/OnOff.h | 2 ++ .../tv-casting-common/include/TargetNavigator.h | 2 ++ .../tv-casting-common/include/TargetVideoPlayerInfo.h | 2 ++ src/app/chip_data_model.cmake | 6 ++++-- src/app/server/CommissioningWindowManager.h | 2 +- src/app/util/generic-callbacks.h | 1 - src/controller/CommissioningDelegate.h | 1 + src/credentials/GroupDataProvider.h | 2 +- src/include/platform/AttributeList.h | 2 +- src/include/platform/ConfigurationManager.h | 2 +- src/include/platform/ConnectivityManager.h | 1 - src/include/platform/ThreadStackManager.h | 1 - src/lib/BUILD.gn | 7 ++++++- src/lib/lib.gni | 6 ++++++ src/platform/Linux/ThreadStackManagerImpl.cpp | 2 ++ src/platform/webos/ThreadStackManagerImpl.cpp | 2 ++ src/protocols/secure_channel/CASEDestinationId.cpp | 1 + 30 files changed, 53 insertions(+), 10 deletions(-) diff --git a/examples/all-clusters-minimal-app/asr/src/DeviceCallbacks.cpp b/examples/all-clusters-minimal-app/asr/src/DeviceCallbacks.cpp index 104b3f52a46364..269d1a8c7623a2 100644 --- a/examples/all-clusters-minimal-app/asr/src/DeviceCallbacks.cpp +++ b/examples/all-clusters-minimal-app/asr/src/DeviceCallbacks.cpp @@ -25,6 +25,7 @@ #include "DeviceCallbacks.h" #include "CHIPDeviceManager.h" +#include #include #include #include diff --git a/examples/bridge-app/asr/subdevice/SubDeviceManager.cpp b/examples/bridge-app/asr/subdevice/SubDeviceManager.cpp index 6e15406c9ff4fa..ca044c2a822aff 100644 --- a/examples/bridge-app/asr/subdevice/SubDeviceManager.cpp +++ b/examples/bridge-app/asr/subdevice/SubDeviceManager.cpp @@ -18,6 +18,7 @@ #include "SubDeviceManager.h" #include "SubDevice.h" +#include #include #include #include diff --git a/examples/bridge-app/asr/subdevice/subdevice_test.cpp b/examples/bridge-app/asr/subdevice/subdevice_test.cpp index f4998294043925..652f361db682a9 100644 --- a/examples/bridge-app/asr/subdevice/subdevice_test.cpp +++ b/examples/bridge-app/asr/subdevice/subdevice_test.cpp @@ -20,6 +20,7 @@ #include "SubDeviceManager.h" #include #include +#include #include #include #include diff --git a/examples/contact-sensor-app/nxp/k32w/k32w0/main/ZclCallbacks.cpp b/examples/contact-sensor-app/nxp/k32w/k32w0/main/ZclCallbacks.cpp index 4664a02404fabb..fafcb37290aab8 100644 --- a/examples/contact-sensor-app/nxp/k32w/k32w0/main/ZclCallbacks.cpp +++ b/examples/contact-sensor-app/nxp/k32w/k32w0/main/ZclCallbacks.cpp @@ -21,6 +21,7 @@ #include "AppTask.h" #include "ContactSensorManager.h" +#include #include #include #include diff --git a/examples/platform/silabs/efr32/BUILD.gn b/examples/platform/silabs/efr32/BUILD.gn index 5a7e50056e8a86..860800e7fb8d68 100644 --- a/examples/platform/silabs/efr32/BUILD.gn +++ b/examples/platform/silabs/efr32/BUILD.gn @@ -357,6 +357,7 @@ source_set("efr32-common") { public_deps += [ "${chip_root}/examples/providers:device_info_provider", + "${chip_root}/src/app/server", "${chip_root}/src/lib", "${chip_root}/src/setup_payload", ] diff --git a/examples/tv-casting-app/android/App/app/src/main/jni/cpp/MatterCallbackHandler-JNI.h b/examples/tv-casting-app/android/App/app/src/main/jni/cpp/MatterCallbackHandler-JNI.h index 346043c837dcde..749f5e873ee074 100644 --- a/examples/tv-casting-app/android/App/app/src/main/jni/cpp/MatterCallbackHandler-JNI.h +++ b/examples/tv-casting-app/android/App/app/src/main/jni/cpp/MatterCallbackHandler-JNI.h @@ -28,6 +28,8 @@ #include #include +#include + class CallbackBaseJNI { public: diff --git a/examples/tv-casting-app/tv-casting-common/include/ApplicationBasic.h b/examples/tv-casting-app/tv-casting-common/include/ApplicationBasic.h index 4bfa028a129e4b..56cbd6831bdb71 100644 --- a/examples/tv-casting-app/tv-casting-common/include/ApplicationBasic.h +++ b/examples/tv-casting-app/tv-casting-common/include/ApplicationBasic.h @@ -21,6 +21,8 @@ #include +#include + // SUBSCRIBER CLASSES class VendorNameSubscriber : public MediaSubscriptionBase { diff --git a/examples/tv-casting-app/tv-casting-common/include/ApplicationLauncher.h b/examples/tv-casting-app/tv-casting-common/include/ApplicationLauncher.h index 9e8c08b284cd42..3e7f3143a0c0a4 100644 --- a/examples/tv-casting-app/tv-casting-common/include/ApplicationLauncher.h +++ b/examples/tv-casting-app/tv-casting-common/include/ApplicationLauncher.h @@ -22,6 +22,8 @@ #include #include +#include + // COMMAND CLASSES class LaunchAppCommand : public MediaCommandBase #include +#include + // COMMAND CLASSES class ChangeChannelCommand : public MediaCommandBase diff --git a/examples/tv-casting-app/tv-casting-common/include/ContentLauncher.h b/examples/tv-casting-app/tv-casting-common/include/ContentLauncher.h index e859188b4bf726..a5cdcf93a80bcc 100644 --- a/examples/tv-casting-app/tv-casting-common/include/ContentLauncher.h +++ b/examples/tv-casting-app/tv-casting-common/include/ContentLauncher.h @@ -22,6 +22,8 @@ #include #include +#include + // COMMAND CLASSES class LaunchURLCommand : public MediaCommandBase diff --git a/examples/tv-casting-app/tv-casting-common/include/KeypadInput.h b/examples/tv-casting-app/tv-casting-common/include/KeypadInput.h index 5a377e1dff5f46..a4e7a43338e9d6 100644 --- a/examples/tv-casting-app/tv-casting-common/include/KeypadInput.h +++ b/examples/tv-casting-app/tv-casting-common/include/KeypadInput.h @@ -21,6 +21,8 @@ #include #include +#include + class SendKeyCommand : public MediaCommandBase { diff --git a/examples/tv-casting-app/tv-casting-common/include/LevelControl.h b/examples/tv-casting-app/tv-casting-common/include/LevelControl.h index 23c3eb5fbe1238..1f2271f5af1b22 100644 --- a/examples/tv-casting-app/tv-casting-common/include/LevelControl.h +++ b/examples/tv-casting-app/tv-casting-common/include/LevelControl.h @@ -22,6 +22,8 @@ #include #include +#include + // COMMAND CLASSES class StepCommand : public MediaCommandBase diff --git a/examples/tv-casting-app/tv-casting-common/include/MediaPlayback.h b/examples/tv-casting-app/tv-casting-common/include/MediaPlayback.h index 60eb33cb4179d9..ddd510dd0e6801 100644 --- a/examples/tv-casting-app/tv-casting-common/include/MediaPlayback.h +++ b/examples/tv-casting-app/tv-casting-common/include/MediaPlayback.h @@ -22,6 +22,8 @@ #include #include +#include + // COMMAND CLASSES class PlayCommand : public MediaCommandBase diff --git a/examples/tv-casting-app/tv-casting-common/include/OnOff.h b/examples/tv-casting-app/tv-casting-common/include/OnOff.h index 7c4f4d3b2d3273..3c7e003c79970f 100644 --- a/examples/tv-casting-app/tv-casting-common/include/OnOff.h +++ b/examples/tv-casting-app/tv-casting-common/include/OnOff.h @@ -22,6 +22,8 @@ #include #include +#include + // COMMAND CLASSES class OnCommand : public MediaCommandBase { diff --git a/examples/tv-casting-app/tv-casting-common/include/TargetNavigator.h b/examples/tv-casting-app/tv-casting-common/include/TargetNavigator.h index 419375cdc51fec..061de12ba4dad8 100644 --- a/examples/tv-casting-app/tv-casting-common/include/TargetNavigator.h +++ b/examples/tv-casting-app/tv-casting-common/include/TargetNavigator.h @@ -22,6 +22,8 @@ #include #include +#include + // COMMAND CLASSES class NavigateTargetCommand : public MediaCommandBase #include +#include + constexpr size_t kMaxNumberOfEndpoints = 5; class TargetVideoPlayerInfo; diff --git a/src/app/chip_data_model.cmake b/src/app/chip_data_model.cmake index 2b61dded83b576..73e49b01f61830 100644 --- a/src/app/chip_data_model.cmake +++ b/src/app/chip_data_model.cmake @@ -75,11 +75,13 @@ function(chip_configure_data_model APP_TARGET) if (ARG_INCLUDE_SERVER) target_sources(${APP_TARGET} ${SCOPE} - ${CHIP_APP_BASE_DIR}/server/EchoHandler.cpp + ${CHIP_APP_BASE_DIR}/server/AclStorage.cpp + ${CHIP_APP_BASE_DIR}/server/DefaultAclStorage.cpp + ${CHIP_APP_BASE_DIR}/server/CommissioningWindowManager.cpp ${CHIP_APP_BASE_DIR}/server/Dnssd.cpp + ${CHIP_APP_BASE_DIR}/server/EchoHandler.cpp ${CHIP_APP_BASE_DIR}/server/OnboardingCodesUtil.cpp ${CHIP_APP_BASE_DIR}/server/Server.cpp - ${CHIP_APP_BASE_DIR}/server/CommissioningWindowManager.cpp ) target_compile_options(${APP_TARGET} ${SCOPE} diff --git a/src/app/server/CommissioningWindowManager.h b/src/app/server/CommissioningWindowManager.h index 070a86a66816a1..1fabd26bd6827d 100644 --- a/src/app/server/CommissioningWindowManager.h +++ b/src/app/server/CommissioningWindowManager.h @@ -17,11 +17,11 @@ #pragma once -#include #include #include #include #include +#include #include #include #include diff --git a/src/app/util/generic-callbacks.h b/src/app/util/generic-callbacks.h index 036241acfa2c41..4b46c64511a24a 100644 --- a/src/app/util/generic-callbacks.h +++ b/src/app/util/generic-callbacks.h @@ -17,7 +17,6 @@ #pragma once -#include #include #include #include diff --git a/src/controller/CommissioningDelegate.h b/src/controller/CommissioningDelegate.h index 72a34e0b5138c9..e1c3f7266dbb5d 100644 --- a/src/controller/CommissioningDelegate.h +++ b/src/controller/CommissioningDelegate.h @@ -17,6 +17,7 @@ */ #pragma once +#include #include #include #include diff --git a/src/credentials/GroupDataProvider.h b/src/credentials/GroupDataProvider.h index ca599296f6a659..7d0665ce2fd6ce 100644 --- a/src/credentials/GroupDataProvider.h +++ b/src/credentials/GroupDataProvider.h @@ -20,10 +20,10 @@ #include #include -#include #include #include #include +#include #include #include diff --git a/src/include/platform/AttributeList.h b/src/include/platform/AttributeList.h index 07f9550c8aedca..f974887d2b8a9c 100644 --- a/src/include/platform/AttributeList.h +++ b/src/include/platform/AttributeList.h @@ -22,8 +22,8 @@ #pragma once -#include #include +#include namespace chip { namespace DeviceLayer { diff --git a/src/include/platform/ConfigurationManager.h b/src/include/platform/ConfigurationManager.h index a7decf94224786..c9174d97f854c1 100644 --- a/src/include/platform/ConfigurationManager.h +++ b/src/include/platform/ConfigurationManager.h @@ -31,7 +31,7 @@ #include #endif -#include +#include #include #include #include diff --git a/src/include/platform/ConnectivityManager.h b/src/include/platform/ConnectivityManager.h index a59217a69a3b8d..fa104a68e0f6b3 100755 --- a/src/include/platform/ConnectivityManager.h +++ b/src/include/platform/ConnectivityManager.h @@ -31,7 +31,6 @@ #include #include -#include #include #if INET_CONFIG_ENABLE_TCP_ENDPOINT diff --git a/src/include/platform/ThreadStackManager.h b/src/include/platform/ThreadStackManager.h index 137ac5d0d59814..b3fc19dc5454e3 100755 --- a/src/include/platform/ThreadStackManager.h +++ b/src/include/platform/ThreadStackManager.h @@ -23,7 +23,6 @@ #pragma once -#include #include #include #include diff --git a/src/lib/BUILD.gn b/src/lib/BUILD.gn index e7fdd0a0717165..1e04c837749840 100644 --- a/src/lib/BUILD.gn +++ b/src/lib/BUILD.gn @@ -19,7 +19,6 @@ static_library("lib") { public_deps = [ "${chip_root}/src/app", "${chip_root}/src/ble", - "${chip_root}/src/controller", "${chip_root}/src/crypto", "${chip_root}/src/inet", "${chip_root}/src/lib/asn1", @@ -28,11 +27,17 @@ static_library("lib") { "${chip_root}/src/lib/support", "${chip_root}/src/messaging", "${chip_root}/src/platform", + "${chip_root}/src/protocols", "${chip_root}/src/setup_payload", "${chip_root}/src/system", "${chip_root}/src/transport", ] + # See src/lib/lib.gni for declaration of this build arg. + if (chip_build_controller) { + public_deps += [ "${chip_root}/src/controller" ] + } + # Only include the shell if it is being used. The shell is # a debug feature mostly useful for embedded examples. # See src/lib/lib.gni for declaration of this build arg. diff --git a/src/lib/lib.gni b/src/lib/lib.gni index 213592c274939f..bad9c3724512a7 100644 --- a/src/lib/lib.gni +++ b/src/lib/lib.gni @@ -12,7 +12,13 @@ # See the License for the specific language governing permissions and # limitations under the License. +import("//build_overrides/chip.gni") +import("${chip_root}/src/lib/core/core.gni") + declare_args() { + # Build controller library. + chip_build_controller = chip_target_style != "embedded" + # Enable libshell support. chip_build_libshell = false diff --git a/src/platform/Linux/ThreadStackManagerImpl.cpp b/src/platform/Linux/ThreadStackManagerImpl.cpp index fd89be709e1a20..b59e0602edb63b 100755 --- a/src/platform/Linux/ThreadStackManagerImpl.cpp +++ b/src/platform/Linux/ThreadStackManagerImpl.cpp @@ -25,6 +25,8 @@ #include #include +#include + #include #include #include diff --git a/src/platform/webos/ThreadStackManagerImpl.cpp b/src/platform/webos/ThreadStackManagerImpl.cpp index 3b0bea0eeec628..b6e4bd9e9a853e 100644 --- a/src/platform/webos/ThreadStackManagerImpl.cpp +++ b/src/platform/webos/ThreadStackManagerImpl.cpp @@ -25,6 +25,8 @@ #include #include +#include + #include #include #include diff --git a/src/protocols/secure_channel/CASEDestinationId.cpp b/src/protocols/secure_channel/CASEDestinationId.cpp index 17eac22b1409a5..538bda9cb05453 100644 --- a/src/protocols/secure_channel/CASEDestinationId.cpp +++ b/src/protocols/secure_channel/CASEDestinationId.cpp @@ -20,6 +20,7 @@ #include #include #include +#include #include #include "CASEDestinationId.h"