From 56cab5480c20bc2091172d4cc1e393cbab3b70b0 Mon Sep 17 00:00:00 2001 From: Shubham Patil Date: Tue, 11 Oct 2022 19:15:03 +0530 Subject: [PATCH 01/15] Removed few unused config options (#23086) * Removing the unused config options for ESP32 - MAX_SESSION_KEYS - DISABLE_PROVISIONING_AUTH - SERVICE_DIRECTORY_CACHE_SIZE - EVENT_LOGGING_PROD_BUFFER_SIZE * Remove unused config option CHIP_DEVICE_CONFIG_ENABLE_TRAIT_MANAGER --- config/esp32/components/chip/Kconfig | 47 ------------------- src/include/platform/CHIPDeviceConfig.h | 13 ----- src/platform/ESP32/CHIPDevicePlatformConfig.h | 1 - src/platform/ESP32/CHIPPlatformConfig.h | 1 - 4 files changed, 62 deletions(-) diff --git a/config/esp32/components/chip/Kconfig b/config/esp32/components/chip/Kconfig index 3ce6c9cf014bd6..1a637694d36b12 100644 --- a/config/esp32/components/chip/Kconfig +++ b/config/esp32/components/chip/Kconfig @@ -175,13 +175,6 @@ menu "CHIP Core" menu "Security Options" - config MAX_SESSION_KEYS - int "Max Session Keys" - range 0 65535 - default 8 - help - The maximum number of simultaneously active session keys. - menu "Debugging" config SECURITY_TEST_MODE @@ -193,17 +186,6 @@ menu "CHIP Core" WARNING: This option makes it possible to circumvent basic CHIP security functionality, including message encryption. Because of this it SHOULD NEVER BE ENABLED IN PRODUCTION BUILDS. - config DISABLE_PROVISIONING_AUTH - bool "Disable Provisioning Authentication Checks" - default n - help - Disable authentication checks for CHIP provisioning operations. This makes it possible to - perform device provisioning operations (e.g. adding a network or joining a fabric) without - establishing a secure session. - - WARNING: This option makes it possible to circumvent basic CHIP security functionality. - Because of this it SHOULD NEVER BE ENABLED IN PRODUCTION BUILDS. - endmenu # "Debugging" endmenu # "Security Options" @@ -245,14 +227,6 @@ menu "CHIP Device Layer" default 25 help The maximum number of events that can be held in the CHIP Platform event queue. - - config SERVICE_DIRECTORY_CACHE_SIZE - int "CHIP Service Directory Cache Size" - range 0 65535 - default 512 - help - The size (in bytes) of the service directory cache. This limits the maximum size of the directory - that can be returned in response to a service directory query. config ENABLE_EXTENDED_DISCOVERY bool "Enable Extended discovery Support" @@ -570,18 +544,6 @@ menu "CHIP Device Layer" endmenu - menu "CHIP Trait Manager" - - config ENABLE_TRAIT_MANAGER - bool "Enable Trait Manager" - default y - help - Enable support for the CHIP Trait Manager. - - The Trait Manager is an experimental feature of the CHIP Device Layer. - - endmenu - menu "Time Sync Options" config ENABLE_SERVICE_DIRECTORY_TIME_SYNC @@ -811,15 +773,6 @@ menu "CHIP Device Layer" This critical production event buffer must exist. - config EVENT_LOGGING_PROD_BUFFER_SIZE - int "Event Logging Production Buffer Size" - range 0 65535 - default 2048 - help - A size, in bytes, of the individual production event logging buffer. - - This critical production event buffer must exist. - config EVENT_LOGGING_INFO_BUFFER_SIZE int "Event Logging Info Buffer Size" range 0 65535 diff --git a/src/include/platform/CHIPDeviceConfig.h b/src/include/platform/CHIPDeviceConfig.h index 2457f573ba122d..f0e6f92fdce9fb 100644 --- a/src/include/platform/CHIPDeviceConfig.h +++ b/src/include/platform/CHIPDeviceConfig.h @@ -791,19 +791,6 @@ #define CHIP_DEVICE_CONFIG_ENABLE_THREAD_DNS_CLIENT 0 #endif -// -------------------- Trait Manager Configuration -------------------- - -/** - * CHIP_DEVICE_CONFIG_ENABLE_TRAIT_MANAGER - * - * Enable or disable the chip Trait Manager. - * - * NOTE: The Trait Manager is an experimental feature of the chip Device Layer. - */ -#ifndef CHIP_DEVICE_CONFIG_ENABLE_TRAIT_MANAGER -#define CHIP_DEVICE_CONFIG_ENABLE_TRAIT_MANAGER 0 -#endif - // -------------------- Network Telemetry Configuration -------------------- /** diff --git a/src/platform/ESP32/CHIPDevicePlatformConfig.h b/src/platform/ESP32/CHIPDevicePlatformConfig.h index f39255bf815920..e67623ad959e49 100644 --- a/src/platform/ESP32/CHIPDevicePlatformConfig.h +++ b/src/platform/ESP32/CHIPDevicePlatformConfig.h @@ -90,7 +90,6 @@ #define CHIP_DEVICE_CONFIG_SERVICE_PROVISIONING_REQUEST_TIMEOUT CONFIG_SERVICE_PROVISIONING_REQUEST_TIMEOUT #define CHIP_DEVICE_CONFIG_ENABLE_TEST_SETUP_PARAMS CONFIG_ENABLE_TEST_SETUP_PARAMS #define CHIP_DEVICE_CONFIG_TEST_SERIAL_NUMBER CONFIG_USE_TEST_SERIAL_NUMBER -#define CHIP_DEVICE_CONFIG_ENABLE_TRAIT_MANAGER CONFIG_ENABLE_TRAIT_MANAGER #define CHIP_DEVICE_CONFIG_ENABLE_THREAD_TELEMETRY CONFIG_ENABLE_THREAD_TELEMETRY #define CHIP_DEVICE_CONFIG_ENABLE_THREAD_TELEMETRY_FULL CONFIG_ENABLE_THREAD_TELEMETRY_FULL #define CHIP_DEVICE_CONFIG_EVENT_LOGGING_CRIT_BUFFER_SIZE CONFIG_EVENT_LOGGING_CRIT_BUFFER_SIZE diff --git a/src/platform/ESP32/CHIPPlatformConfig.h b/src/platform/ESP32/CHIPPlatformConfig.h index f401e6f1200f35..e413858beed6c8 100644 --- a/src/platform/ESP32/CHIPPlatformConfig.h +++ b/src/platform/ESP32/CHIPPlatformConfig.h @@ -53,7 +53,6 @@ #define CHIP_CONFIG_MAX_UNSOLICITED_MESSAGE_HANDLERS CONFIG_MAX_UNSOLICITED_MESSAGE_HANDLERS #define CHIP_CONFIG_MAX_EXCHANGE_CONTEXTS CONFIG_MAX_EXCHANGE_CONTEXTS -#define CHIP_CONFIG_MAX_SESSION_KEYS CONFIG_MAX_SESSION_KEYS #define CHIP_CONFIG_MAX_FABRICS CONFIG_MAX_FABRICS #define CHIP_CONFIG_SECURITY_TEST_MODE CONFIG_SECURITY_TEST_MODE From 206fe518dbc6cd3f10e049a1f9904a30ef9294a8 Mon Sep 17 00:00:00 2001 From: Rohan Sahay <103027015+rosahay-silabs@users.noreply.github.com> Date: Tue, 11 Oct 2022 19:51:03 +0530 Subject: [PATCH 02/15] [EFR32] Adds lwip ipv6 MLD support for neighborhood discovery protocol (#23105) * Adds LWIP_IPV6_MLD support for Neighborhood discovery * Adds temporary fix for NS loopback issue --- src/lwip/efr32/lwipopts-rs911x.h | 1 + src/lwip/efr32/lwipopts-wf200.h | 1 + src/platform/EFR32/wifi/ethernetif.cpp | 4 ++++ src/platform/EFR32/wifi/lwip_netif.cpp | 4 ++++ 4 files changed, 10 insertions(+) diff --git a/src/lwip/efr32/lwipopts-rs911x.h b/src/lwip/efr32/lwipopts-rs911x.h index 355ab90dd1e462..2a6de667ba75c2 100644 --- a/src/lwip/efr32/lwipopts-rs911x.h +++ b/src/lwip/efr32/lwipopts-rs911x.h @@ -99,6 +99,7 @@ #define LWIP_IPV6_REASS (0) #define LWIP_IPV6_DHCP6 0 #define LWIP_IPV6_AUTOCONFIG (1) +#define LWIP_IPV6_DUP_DETECT_ATTEMPTS 0 // TODO: Enable this after a fix for NS loopback #define LWIP_IPV6_ROUTER_SUPPORT 1 #define LWIP_ND6_LISTEN_RA 1 diff --git a/src/lwip/efr32/lwipopts-wf200.h b/src/lwip/efr32/lwipopts-wf200.h index 60844a749f3e99..5825a5af87b53f 100644 --- a/src/lwip/efr32/lwipopts-wf200.h +++ b/src/lwip/efr32/lwipopts-wf200.h @@ -99,6 +99,7 @@ #define LWIP_IPV6_REASS (0) #define LWIP_IPV6_DHCP6 0 #define LWIP_IPV6_AUTOCONFIG (1) +#define LWIP_IPV6_DUP_DETECT_ATTEMPTS 0 // TODO: Enable this after a fix for NS loopback #define LWIP_IPV6_ROUTER_SUPPORT 1 #define LWIP_ND6_LISTEN_RA 1 diff --git a/src/platform/EFR32/wifi/ethernetif.cpp b/src/platform/EFR32/wifi/ethernetif.cpp index 318f8a272ece1b..36221fbfd29de4 100644 --- a/src/platform/EFR32/wifi/ethernetif.cpp +++ b/src/platform/EFR32/wifi/ethernetif.cpp @@ -97,6 +97,10 @@ static void low_level_init(struct netif * netif) /* Accept broadcast address and ARP traffic */ netif->flags |= NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_IGMP; + +#if LWIP_IPV6_MLD + netif->flags |= NETIF_FLAG_MLD6; +#endif /* LWIP_IPV6_MLD */ } /******************************************************************************** diff --git a/src/platform/EFR32/wifi/lwip_netif.cpp b/src/platform/EFR32/wifi/lwip_netif.cpp index a13a9c35abcc25..cd3a34292cf85a 100644 --- a/src/platform/EFR32/wifi/lwip_netif.cpp +++ b/src/platform/EFR32/wifi/lwip_netif.cpp @@ -91,6 +91,10 @@ void wfx_lwip_set_sta_link_up(void) /* * Enable IPV6 */ + +#if LWIP_IPV6_AUTOCONFIG + sta_netif.ip6_autoconfig_enabled = 1; +#endif /* LWIP_IPV6_AUTOCONFIG */ netif_create_ip6_linklocal_address(&sta_netif, MAC_48_BIT_SET); } From c368ef1663343a519a76f469ea7ad020d08ff7e7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Oct 2022 14:21:37 +0000 Subject: [PATCH 03/15] Bump third_party/mbedtls/repo from `662b301` to `30e0623` (#23089) Bumps [third_party/mbedtls/repo](https://github.com/ARMmbed/mbedtls) from `662b301` to `30e0623`. - [Release notes](https://github.com/ARMmbed/mbedtls/releases) - [Commits](https://github.com/ARMmbed/mbedtls/compare/662b301c27a55bf53b74e2aa54e16b0721b3bf82...30e0623c7c9c8019f87e807f59e43259e45c1f11) --- updated-dependencies: - dependency-name: third_party/mbedtls/repo dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- third_party/mbedtls/repo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/mbedtls/repo b/third_party/mbedtls/repo index 662b301c27a55b..30e0623c7c9c80 160000 --- a/third_party/mbedtls/repo +++ b/third_party/mbedtls/repo @@ -1 +1 @@ -Subproject commit 662b301c27a55bf53b74e2aa54e16b0721b3bf82 +Subproject commit 30e0623c7c9c8019f87e807f59e43259e45c1f11 From a7475d3c2d90671c0a0dcd6529b452b00ad4864e Mon Sep 17 00:00:00 2001 From: Boris Zbarsky Date: Tue, 11 Oct 2022 10:22:56 -0400 Subject: [PATCH 04/15] Better fix for crashes around MTRBaseSubscriptionCallback. (#23076) https://github.com/project-chip/connectedhomeip/pull/22978 accidentally reintroduced the crash that https://github.com/project-chip/connectedhomeip/pull/22324 had fixed. To avoid more issues along these lines: 1) Add unit tests that reproduce the crashes described in https://github.com/project-chip/connectedhomeip/issues/22320 (with the changes from https://github.com/project-chip/connectedhomeip/pull/22978) and https://github.com/project-chip/connectedhomeip/issues/22935 (without those changes). 2) Change MTRBaseSubscriptionCallback to always invoke its callbacks synchronously, on the Matter queue, so that we can clean up the MTRClusterStateCacheContainer's pointer to the ClusterStateCache before it gets deleted on the Matter queue. 3) Move the queueing of callbacks to the client queue into the consumers of MTRBaseSubscriptionCallback, so they can do whatever sync work they need (like the above cleanup) before going async. 4) Update documentation. --- src/darwin/Framework/CHIP/MTRBaseDevice.mm | 194 +++++++++++------- .../CHIP/MTRBaseSubscriptionCallback.h | 30 ++- .../CHIP/MTRBaseSubscriptionCallback.mm | 44 ++-- src/darwin/Framework/CHIP/MTRDevice.mm | 41 ++-- .../Framework/CHIPTests/MTRDeviceTests.m | 132 ++++++++++++ 5 files changed, 309 insertions(+), 132 deletions(-) diff --git a/src/darwin/Framework/CHIP/MTRBaseDevice.mm b/src/darwin/Framework/CHIP/MTRBaseDevice.mm index a2d6a22a475126..18952f0efc690d 100644 --- a/src/darwin/Framework/CHIP/MTRBaseDevice.mm +++ b/src/darwin/Framework/CHIP/MTRBaseDevice.mm @@ -251,11 +251,11 @@ - (void)invalidateCASESession class SubscriptionCallback final : public MTRBaseSubscriptionCallback { public: - SubscriptionCallback(dispatch_queue_t queue, DataReportCallback attributeReportCallback, DataReportCallback eventReportCallback, + SubscriptionCallback(DataReportCallback attributeReportCallback, DataReportCallback eventReportCallback, ErrorCallback errorCallback, MTRDeviceResubscriptionScheduledHandler _Nullable resubscriptionScheduledHandler, MTRSubscriptionEstablishedHandler _Nullable subscriptionEstablishedHandler, OnDoneHandler _Nullable onDoneHandler) - : MTRBaseSubscriptionCallback(queue, attributeReportCallback, eventReportCallback, errorCallback, - resubscriptionScheduledHandler, subscriptionEstablishedHandler, onDoneHandler) + : MTRBaseSubscriptionCallback(attributeReportCallback, eventReportCallback, errorCallback, resubscriptionScheduledHandler, + subscriptionEstablishedHandler, onDoneHandler) { } @@ -286,80 +286,120 @@ - (void)subscribeWithQueue:(dispatch_queue_t)queue // Copy params before going async. params = [params copy]; - [self.deviceController - getSessionForNode:self.nodeID - completion:^(ExchangeManager * _Nullable exchangeManager, const Optional & session, - NSError * _Nullable error) { - if (error != nil) { - dispatch_async(queue, ^{ - errorHandler(error); - }); - return; - } - - // Wildcard endpoint, cluster, attribute, event. - auto attributePath = std::make_unique(); - auto eventPath = std::make_unique(); - ReadPrepareParams readParams(session.Value()); - readParams.mMinIntervalFloorSeconds = [params.minInterval unsignedShortValue]; - readParams.mMaxIntervalCeilingSeconds = [params.maxInterval unsignedShortValue]; - readParams.mpAttributePathParamsList = attributePath.get(); - readParams.mAttributePathParamsListSize = 1; - readParams.mpEventPathParamsList = eventPath.get(); - readParams.mEventPathParamsListSize = 1; - readParams.mIsFabricFiltered = params.fabricFiltered; - readParams.mKeepSubscriptions = params.keepPreviousSubscriptions; - - std::unique_ptr callback; - std::unique_ptr readClient; - std::unique_ptr clusterStateCache; - if (clusterStateCacheContainer) { - __weak MTRClusterStateCacheContainer * weakPtr = clusterStateCacheContainer; - callback = std::make_unique(queue, attributeReportHandler, eventReportHandler, - errorHandler, resubscriptionScheduled, subscriptionEstablished, ^{ - MTRClusterStateCacheContainer * container = weakPtr; - if (container) { - container.cppClusterStateCache = nullptr; - } - }); - clusterStateCache = std::make_unique(*callback.get()); - readClient = std::make_unique(InteractionModelEngine::GetInstance(), exchangeManager, - clusterStateCache->GetBufferedCallback(), ReadClient::InteractionType::Subscribe); - } else { - callback = std::make_unique(queue, attributeReportHandler, eventReportHandler, - errorHandler, resubscriptionScheduled, subscriptionEstablished, nil); - readClient = std::make_unique(InteractionModelEngine::GetInstance(), exchangeManager, - callback->GetBufferedCallback(), ReadClient::InteractionType::Subscribe); - } - - CHIP_ERROR err; - if (!params.autoResubscribe) { - err = readClient->SendRequest(readParams); - } else { - // SendAutoResubscribeRequest cleans up the params, even on failure. - attributePath.release(); - eventPath.release(); - err = readClient->SendAutoResubscribeRequest(std::move(readParams)); - } - - if (err != CHIP_NO_ERROR) { - dispatch_async(queue, ^{ - errorHandler([MTRError errorForCHIPErrorCode:err]); - }); - - return; - } - - if (clusterStateCacheContainer) { - clusterStateCacheContainer.cppClusterStateCache = clusterStateCache.get(); - // ClusterStateCache will be deleted when OnDone is called or an error is encountered as well. - callback->AdoptClusterStateCache(std::move(clusterStateCache)); - } - // Callback and ReadClient will be deleted when OnDone is called or an error is - // encountered. - callback->AdoptReadClient(std::move(readClient)); - callback.release(); - }]; + [self.deviceController getSessionForNode:self.nodeID + completion:^(ExchangeManager * _Nullable exchangeManager, const Optional & session, + NSError * _Nullable error) { + if (error != nil) { + dispatch_async(queue, ^{ + errorHandler(error); + }); + return; + } + + // Wildcard endpoint, cluster, attribute, event. + auto attributePath = std::make_unique(); + auto eventPath = std::make_unique(); + ReadPrepareParams readParams(session.Value()); + readParams.mMinIntervalFloorSeconds = [params.minInterval unsignedShortValue]; + readParams.mMaxIntervalCeilingSeconds = [params.maxInterval unsignedShortValue]; + readParams.mpAttributePathParamsList = attributePath.get(); + readParams.mAttributePathParamsListSize = 1; + readParams.mpEventPathParamsList = eventPath.get(); + readParams.mEventPathParamsListSize = 1; + readParams.mIsFabricFiltered = params.fabricFiltered; + readParams.mKeepSubscriptions = params.keepPreviousSubscriptions; + + std::unique_ptr clusterStateCache; + ReadClient::Callback * callbackForReadClient = nullptr; + OnDoneHandler onDoneHandler = nil; + + if (clusterStateCacheContainer) { + __weak MTRClusterStateCacheContainer * weakPtr = clusterStateCacheContainer; + onDoneHandler = ^{ + // This, like all manipulation of cppClusterStateCache, needs to run on the Matter + // queue. + MTRClusterStateCacheContainer * container = weakPtr; + if (container) { + container.cppClusterStateCache = nullptr; + } + }; + } + + auto callback = std::make_unique( + ^(NSArray * value) { + dispatch_async(queue, ^{ + if (attributeReportHandler != nil) { + attributeReportHandler(value); + } + }); + }, + ^(NSArray * value) { + dispatch_async(queue, ^{ + if (eventReportHandler != nil) { + eventReportHandler(value); + } + }); + }, + ^(NSError * error) { + dispatch_async(queue, ^{ + errorHandler(error); + }); + }, + ^(NSError * error, NSNumber * resubscriptionDelay) { + dispatch_async(queue, ^{ + if (resubscriptionScheduled != nil) { + resubscriptionScheduled(error, resubscriptionDelay); + } + }); + }, + ^(void) { + dispatch_async(queue, ^{ + if (subscriptionEstablished != nil) { + subscriptionEstablished(); + } + }); + }, + onDoneHandler); + + if (clusterStateCacheContainer) { + clusterStateCache = std::make_unique(*callback.get()); + callbackForReadClient = &clusterStateCache->GetBufferedCallback(); + } else { + callbackForReadClient = &callback->GetBufferedCallback(); + } + + auto readClient = std::make_unique(InteractionModelEngine::GetInstance(), + exchangeManager, *callbackForReadClient, ReadClient::InteractionType::Subscribe); + + CHIP_ERROR err; + if (!params.autoResubscribe) { + err = readClient->SendRequest(readParams); + } else { + // SendAutoResubscribeRequest cleans up the params, even on failure. + attributePath.release(); + eventPath.release(); + err = readClient->SendAutoResubscribeRequest(std::move(readParams)); + } + + if (err != CHIP_NO_ERROR) { + dispatch_async(queue, ^{ + errorHandler([MTRError errorForCHIPErrorCode:err]); + }); + + return; + } + + if (clusterStateCacheContainer) { + clusterStateCacheContainer.cppClusterStateCache = clusterStateCache.get(); + // ClusterStateCache will be deleted when OnDone is called or an error is encountered as + // well. + callback->AdoptClusterStateCache(std::move(clusterStateCache)); + } + // Callback and ReadClient will be deleted when OnDone is called or an error is + // encountered. + callback->AdoptReadClient(std::move(readClient)); + callback.release(); + }]; } // Convert TLV data into data-value dictionary as described in MTRDeviceResponseHandler diff --git a/src/darwin/Framework/CHIP/MTRBaseSubscriptionCallback.h b/src/darwin/Framework/CHIP/MTRBaseSubscriptionCallback.h index bb2348aa814486..69db80607ae15a 100644 --- a/src/darwin/Framework/CHIP/MTRBaseSubscriptionCallback.h +++ b/src/darwin/Framework/CHIP/MTRBaseSubscriptionCallback.h @@ -35,7 +35,16 @@ /** * This file defines a base class for subscription callbacks used by * MTRBaseDevice and MTRDevice. This base class handles everything except the - * actual conversion from the incoming data to the desired data. + * actual conversion from the incoming data to the desired data and the dispatch + * of callbacks to the relevant client queues. Its callbacks are called on the + * Matter queue. This allows MTRDevice and MTRBaseDevice to do any necessary + * sync cleanup work before dispatching to the client callbacks on the client + * queue. + * + * After onDoneHandler is invoked, this object will at some point delete itself + * and destroy anything it owns (such as the ReadClient or the + * ClusterStateCache). Consumers should drop references to all the relevant + * objects in that handler. This deletion will happen on the Matter queue. * * The desired data is assumed to be NSObjects that can be stored in NSArray. */ @@ -49,12 +58,10 @@ typedef void (^OnDoneHandler)(void); class MTRBaseSubscriptionCallback : public chip::app::ClusterStateCache::Callback { public: - MTRBaseSubscriptionCallback(dispatch_queue_t queue, DataReportCallback attributeReportCallback, - DataReportCallback eventReportCallback, ErrorCallback errorCallback, - MTRDeviceResubscriptionScheduledHandler _Nullable resubscriptionCallback, + MTRBaseSubscriptionCallback(DataReportCallback attributeReportCallback, DataReportCallback eventReportCallback, + ErrorCallback errorCallback, MTRDeviceResubscriptionScheduledHandler _Nullable resubscriptionCallback, SubscriptionEstablishedHandler _Nullable subscriptionEstablishedHandler, OnDoneHandler _Nullable onDoneHandler) - : mQueue(queue) - , mAttributeReportCallback(attributeReportCallback) + : mAttributeReportCallback(attributeReportCallback) , mEventReportCallback(eventReportCallback) , mErrorCallback(errorCallback) , mResubscriptionCallback(resubscriptionCallback) @@ -117,10 +124,9 @@ class MTRBaseSubscriptionCallback : public chip::app::ClusterStateCache::Callbac NSMutableArray * _Nullable mEventReports = nil; private: - dispatch_queue_t mQueue; DataReportCallback _Nullable mAttributeReportCallback = nil; DataReportCallback _Nullable mEventReportCallback = nil; - // We set mErrorCallback to nil when queueing error reports, so we + // We set mErrorCallback to nil before calling the error callback, so we // make sure to only report one error. ErrorCallback _Nullable mErrorCallback = nil; MTRDeviceResubscriptionScheduledHandler _Nullable mResubscriptionCallback = nil; @@ -138,9 +144,11 @@ class MTRBaseSubscriptionCallback : public chip::app::ClusterStateCache::Callbac // To handle this, enforce the following rules: // // 1) We guarantee that mErrorCallback is only invoked with an error once. - // 2) We ensure that we delete ourselves and the passed in ReadClient only from OnDone or a queued-up - // error callback, but not both, by tracking whether we have a queued-up - // deletion. + // 2) We guarantee that mOnDoneHandler is only invoked once, and always + // invoked before we delete ourselves. + // 3) We ensure that we delete ourselves and the passed in ReadClient only + // from OnDone or from an error callback but not both, by tracking whether + // we have a queued-up deletion. std::unique_ptr mReadClient; std::unique_ptr mClusterStateCache; bool mHaveQueuedDeletion = false; diff --git a/src/darwin/Framework/CHIP/MTRBaseSubscriptionCallback.mm b/src/darwin/Framework/CHIP/MTRBaseSubscriptionCallback.mm index 564c6a357d0e2b..abbd8ed9cbdc9f 100644 --- a/src/darwin/Framework/CHIP/MTRBaseSubscriptionCallback.mm +++ b/src/darwin/Framework/CHIP/MTRBaseSubscriptionCallback.mm @@ -33,21 +33,17 @@ { __block NSArray * attributeReports = mAttributeReports; mAttributeReports = nil; - __block auto attributeCallback = mAttributeReportCallback; + auto attributeCallback = mAttributeReportCallback; __block NSArray * eventReports = mEventReports; mEventReports = nil; - __block auto eventCallback = mEventReportCallback; + auto eventCallback = mEventReportCallback; if (attributeCallback != nil && attributeReports.count) { - dispatch_async(mQueue, ^{ - attributeCallback(attributeReports); - }); + attributeCallback(attributeReports); } if (eventCallback != nil && eventReports.count) { - dispatch_async(mQueue, ^{ - eventCallback(eventReports); - }); + eventCallback(eventReports); } } @@ -96,7 +92,8 @@ void MTRBaseSubscriptionCallback::OnSubscriptionEstablished(SubscriptionId aSubscriptionId) { if (mSubscriptionEstablishedHandler) { - dispatch_async(mQueue, mSubscriptionEstablishedHandler); + auto subscriptionEstablishedHandler = mSubscriptionEstablishedHandler; + subscriptionEstablishedHandler(); } } @@ -109,9 +106,7 @@ auto callback = mResubscriptionCallback; auto error = [MTRError errorForCHIPErrorCode:aTerminationCause]; auto delayMs = @(apReadClient->ComputeTimeTillNextSubscription()); - dispatch_async(mQueue, ^{ - callback(error, delayMs); - }); + callback(error, delayMs); } return CHIP_NO_ERROR; } @@ -129,30 +124,21 @@ return; } - __block ErrorCallback callback = mErrorCallback; __block auto * myself = this; + + auto errorCallback = mErrorCallback; mErrorCallback = nil; mAttributeReportCallback = nil; mEventReportCallback = nil; - __auto_type onDoneHandler = mOnDoneHandler; + auto onDoneHandler = mOnDoneHandler; mOnDoneHandler = nil; - dispatch_async(mQueue, ^{ - callback(err); - }); + errorCallback(err); if (onDoneHandler) { - // To guarantee the async onDoneHandler call is made before - // deletion, so that clean up can happen while the callback - // object is still alive (and therefore cluster cache), queue - // deletion after calling the onDoneHandler - mHaveQueuedDeletion = true; - dispatch_async(mQueue, ^{ - onDoneHandler(); - dispatch_async(DeviceLayer::PlatformMgrImpl().GetWorkQueue(), ^{ - delete myself; - }); - }); - } else if (aCancelSubscription) { + onDoneHandler(); + } + + if (aCancelSubscription) { // We can't synchronously delete ourselves, because we're inside one of // the ReadClient callbacks and we need to outlive the callback's // execution. Queue an async deletion on the Matter queue (where we are diff --git a/src/darwin/Framework/CHIP/MTRDevice.mm b/src/darwin/Framework/CHIP/MTRDevice.mm index 1bd8fbf362faf0..4d29ef5fbb9fe7 100644 --- a/src/darwin/Framework/CHIP/MTRDevice.mm +++ b/src/darwin/Framework/CHIP/MTRDevice.mm @@ -101,10 +101,10 @@ - (id)strongObject class SubscriptionCallback final : public MTRBaseSubscriptionCallback { public: - SubscriptionCallback(dispatch_queue_t queue, DataReportCallback attributeReportCallback, DataReportCallback eventReportCallback, + SubscriptionCallback(DataReportCallback attributeReportCallback, DataReportCallback eventReportCallback, ErrorCallback errorCallback, MTRDeviceResubscriptionScheduledHandler resubscriptionCallback, SubscriptionEstablishedHandler subscriptionEstablishedHandler, OnDoneHandler onDoneHandler) - : MTRBaseSubscriptionCallback(queue, attributeReportCallback, eventReportCallback, errorCallback, resubscriptionCallback, + : MTRBaseSubscriptionCallback(attributeReportCallback, eventReportCallback, errorCallback, resubscriptionCallback, subscriptionEstablishedHandler, onDoneHandler) { } @@ -314,30 +314,41 @@ - (void)subscribeWithMinInterval:(uint16_t)minInterval maxInterval:(uint16_t)max std::unique_ptr readClient; std::unique_ptr clusterStateCache; callback = std::make_unique( - self.queue, ^(NSArray * value) { - // OnAttributeData (after OnReportEnd) - [self _handleAttributeReport:value]; + dispatch_async(self.queue, ^{ + // OnAttributeData (after OnReportEnd) + [self _handleAttributeReport:value]; + }); }, ^(NSArray * value) { - // OnEventReport (after OnReportEnd) - [self _handleEventReport:value]; + dispatch_async(self.queue, ^{ + // OnEventReport (after OnReportEnd) + [self _handleEventReport:value]; + }); }, ^(NSError * error) { - // OnError - [self _handleSubscriptionError:error]; + dispatch_async(self.queue, ^{ + // OnError + [self _handleSubscriptionError:error]; + }); }, ^(NSError * error, NSNumber * resubscriptionDelay) { - // OnResubscriptionNeeded - [self _handleResubscriptionNeeded]; + dispatch_async(self.queue, ^{ + // OnResubscriptionNeeded + [self _handleResubscriptionNeeded]; + }); }, ^(void) { - // OnSubscriptionEstablished - [self _handleSubscriptionEstablished]; + dispatch_async(self.queue, ^{ + // OnSubscriptionEstablished + [self _handleSubscriptionEstablished]; + }); }, ^(void) { - // OnDone - [self _handleSubscriptionReset]; + dispatch_async(self.queue, ^{ + // OnDone + [self _handleSubscriptionReset]; + }); }); readClient = std::make_unique(InteractionModelEngine::GetInstance(), exchangeManager, callback->GetBufferedCallback(), ReadClient::InteractionType::Subscribe); diff --git a/src/darwin/Framework/CHIPTests/MTRDeviceTests.m b/src/darwin/Framework/CHIPTests/MTRDeviceTests.m index bf9699b7e17964..71baaee0308a8f 100644 --- a/src/darwin/Framework/CHIPTests/MTRDeviceTests.m +++ b/src/darwin/Framework/CHIPTests/MTRDeviceTests.m @@ -52,6 +52,9 @@ // Singleton controller we use. static MTRDeviceController * sController = nil; +// Keys we can use to restart the controller. +static MTRTestKeys * sTestKeys = nil; + static void WaitForCommissionee(XCTestExpectation * expectation) { MTRDeviceController * controller = sController; @@ -155,6 +158,10 @@ - (void)initStack __auto_type * testKeys = [[MTRTestKeys alloc] init]; XCTAssertNotNil(testKeys); + sTestKeys = testKeys; + + // Needs to match what createControllerOnExistingFabric calls elsewhere in + // this file do. __auto_type * params = [[MTRDeviceControllerStartupParams alloc] initWithIPK:testKeys.ipk fabricID:@(1) nocSigner:testKeys]; params.vendorID = @(kTestVendorId); @@ -1181,6 +1188,131 @@ - (void)test014_InvokeCommandWithDifferentIdResponse [self waitForExpectationsWithTimeout:kTimeoutInSeconds handler:nil]; } +- (void)test015_FailedSubscribeWithQueueAcrossShutdown +{ +#if MANUAL_INDIVIDUAL_TEST + [self initStack]; + [self waitForCommissionee]; +#endif + + MTRBaseDevice * device = GetConnectedDevice(); + dispatch_queue_t queue = dispatch_get_main_queue(); + + MTRDeviceController * controller = sController; + XCTAssertNotNil(controller); + XCTestExpectation * firstSubscribeExpectation = [self expectationWithDescription:@"First subscription complete"]; + XCTestExpectation * errorExpectation = [self expectationWithDescription:@"First subscription errored out"]; + + // Create first subscription. It needs to be using subscribeWithQueue and + // must have a clusterStateCacheContainer to exercise the onDone case. + NSLog(@"Subscribing..."); + __auto_type clusterStateCacheContainer = [[MTRClusterStateCacheContainer alloc] init]; + __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(1) maxInterval:@(2)]; + params.autoResubscribe = NO; + [device subscribeWithQueue:queue + params:params + clusterStateCacheContainer:clusterStateCacheContainer + attributeReportHandler:nil + eventReportHandler:nil + errorHandler:^(NSError * error) { + NSLog(@"Received report error: %@", error); + + // Restart the controller here, to exercise our various event queue bits. + [controller shutdown]; + + // Wait a bit before restart, to allow whatever async things are going on after this is called to try to happen. + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 2 * NSEC_PER_SEC), queue, ^{ + __auto_type * factory = [MTRDeviceControllerFactory sharedInstance]; + XCTAssertNotNil(factory); + + // Needs to match what initStack does. + __auto_type * params = [[MTRDeviceControllerStartupParams alloc] initWithIPK:sTestKeys.ipk + fabricID:@(1) + nocSigner:sTestKeys]; + __auto_type * newController = [factory createControllerOnExistingFabric:params error:nil]; + XCTAssertNotNil(newController); + + sController = newController; + mConnectedDevice = [MTRBaseDevice deviceWithNodeID:@(kDeviceId) controller:newController]; + [errorExpectation fulfill]; + }); + } + subscriptionEstablished:^() { + [firstSubscribeExpectation fulfill]; + } + resubscriptionScheduled:nil]; + [self waitForExpectations:@[ firstSubscribeExpectation ] timeout:60]; + + // Create second subscription which will cancel the first subscription. We + // can use a non-existent path here to cut down on the work that gets done. + [device subscribeAttributePathWithEndpointID:@10000 + clusterID:@6 + attributeID:@0 + params:params + queue:queue + reportHandler:^(id _Nullable values, NSError * _Nullable error) { + } + subscriptionEstablished:^ { + }]; + [self waitForExpectations:@[ errorExpectation ] timeout:60]; +} + +- (void)test016_FailedSubscribeWithCacheReadDuringFailure +{ +#if MANUAL_INDIVIDUAL_TEST + [self initStack]; + [self waitForCommissionee]; +#endif + + MTRBaseDevice * device = GetConnectedDevice(); + dispatch_queue_t queue = dispatch_get_main_queue(); + + MTRDeviceController * controller = sController; + XCTAssertNotNil(controller); + XCTestExpectation * firstSubscribeExpectation = [self expectationWithDescription:@"First subscription complete"]; + XCTestExpectation * errorExpectation = [self expectationWithDescription:@"First subscription errored out"]; + + // Create first subscription. It needs to be using subscribeWithQueue and + // must have a clusterStateCacheContainer to exercise the onDone case. + NSLog(@"Subscribing..."); + __auto_type clusterStateCacheContainer = [[MTRClusterStateCacheContainer alloc] init]; + __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(1) maxInterval:@(2)]; + params.autoResubscribe = NO; + [device subscribeWithQueue:queue + params:params + clusterStateCacheContainer:clusterStateCacheContainer + attributeReportHandler:nil + eventReportHandler:nil + errorHandler:^(NSError * error) { + NSLog(@"Received report error: %@", error); + + [MTRBaseClusterOnOff readAttributeOnOffWithClusterStateCache:clusterStateCacheContainer + endpoint:@1 + queue:queue + completion:^(NSNumber * _Nullable value, NSError * _Nullable error) { + [errorExpectation fulfill]; + }]; + } + subscriptionEstablished:^() { + [firstSubscribeExpectation fulfill]; + } + resubscriptionScheduled:nil]; + [self waitForExpectations:@[ firstSubscribeExpectation ] timeout:60]; + + // Create second subscription which will cancel the first subscription. We + // can use a non-existent path here to cut down on the work that gets done. + [device subscribeAttributePathWithEndpointID:@10000 + clusterID:@6 + attributeID:@0 + params:params + queue:queue + reportHandler:^(id _Nullable values, NSError * _Nullable error) { + } + subscriptionEstablished:^ { + }]; + [self waitForExpectations:@[ errorExpectation ] timeout:60]; +} + - (void)test900_SubscribeAllAttributes { #if MANUAL_INDIVIDUAL_TEST From 9fdfd7a3fea1bc3dafa5d80909596120927d4c2c Mon Sep 17 00:00:00 2001 From: mfucci Date: Tue, 11 Oct 2022 07:24:52 -0700 Subject: [PATCH 05/15] Correct string value for kResume1MIC_Nonce (#23098) { 0x4e, 0x43, 0x41, 0x53, 0x45, 0x5f, 0x53, 0x69, 0x67, 0x6d, 0x61, 0x53, 0x31 } bytes represent "NCASE_SigmaS1" string, not "NCASE_SigmaR1" --- src/protocols/secure_channel/CASESession.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/protocols/secure_channel/CASESession.cpp b/src/protocols/secure_channel/CASESession.cpp index 623265d160349a..209d8b29101b79 100644 --- a/src/protocols/secure_channel/CASESession.cpp +++ b/src/protocols/secure_channel/CASESession.cpp @@ -100,9 +100,9 @@ constexpr uint8_t kKDFS1RKeyInfo[] = { 0x53, 0x69, 0x67, 0x6d, 0x61, 0x31, 0x5f, constexpr uint8_t kKDFS2RKeyInfo[] = { 0x53, 0x69, 0x67, 0x6d, 0x61, 0x32, 0x5f, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65 }; constexpr uint8_t kResume1MIC_Nonce[] = - /* "NCASE_SigmaR1" */ { 0x4e, 0x43, 0x41, 0x53, 0x45, 0x5f, 0x53, 0x69, 0x67, 0x6d, 0x61, 0x53, 0x31 }; + /* "NCASE_SigmaS1" */ { 0x4e, 0x43, 0x41, 0x53, 0x45, 0x5f, 0x53, 0x69, 0x67, 0x6d, 0x61, 0x53, 0x31 }; constexpr uint8_t kResume2MIC_Nonce[] = - /* "NCASE_SigmaR2" */ { 0x4e, 0x43, 0x41, 0x53, 0x45, 0x5f, 0x53, 0x69, 0x67, 0x6d, 0x61, 0x53, 0x32 }; + /* "NCASE_SigmaS2" */ { 0x4e, 0x43, 0x41, 0x53, 0x45, 0x5f, 0x53, 0x69, 0x67, 0x6d, 0x61, 0x53, 0x32 }; constexpr uint8_t kTBEData2_Nonce[] = /* "NCASE_Sigma2N" */ { 0x4e, 0x43, 0x41, 0x53, 0x45, 0x5f, 0x53, 0x69, 0x67, 0x6d, 0x61, 0x32, 0x4e }; constexpr uint8_t kTBEData3_Nonce[] = From 973bbf51a7422d234dd5be35670a90278005babc Mon Sep 17 00:00:00 2001 From: Jerry Johns Date: Tue, 11 Oct 2022 07:26:21 -0700 Subject: [PATCH 06/15] Fix SecureSession being made defunct after expiration (#23097) When an UpdateNOC call is received on the server, it expires the associated session and proceeds to send back a response on the associated exchange. If response fails to get ACK'ed, it will result in the session being marked defunct. The SecureSession logic over-aggressively asserts on marking expired sessions as defunct, causing a VerifyOrDie crash to happen. Fix: Remove the VerifyOrDie Testing: Added a test in TestAbortExchangesForFabric to catch this scenario. Also pivoted most of the secure sessions in those test to be of type CASE to facilitate correctly triggering the various bits of logic in ExchangeMgr and ReliableMessageMgr in these scenarios. --- .../tests/TestAbortExchangesForFabric.cpp | 76 ++++++++++++++----- src/transport/SecureSession.cpp | 4 +- 2 files changed, 61 insertions(+), 19 deletions(-) diff --git a/src/messaging/tests/TestAbortExchangesForFabric.cpp b/src/messaging/tests/TestAbortExchangesForFabric.cpp index a7000e2840d251..a3d9e8a09fcdd1 100644 --- a/src/messaging/tests/TestAbortExchangesForFabric.cpp +++ b/src/messaging/tests/TestAbortExchangesForFabric.cpp @@ -55,10 +55,8 @@ class MockAppDelegate : public ExchangeDelegate bool mOnMessageReceivedCalled = false; }; -void CheckAbortAllButOneExchange(nlTestSuite * inSuite, void * inContext) +void CommonCheckAbortAllButOneExchange(nlTestSuite * inSuite, TestContext & ctx, bool dropResponseMessages) { - TestContext & ctx = *reinterpret_cast(inContext); - // We want to have two sessions using the same fabric id that we use for // creating our exchange contexts. That lets us test exchanges on the same // session as the "special exchange" as well as on other sessions. @@ -68,29 +66,32 @@ void CheckAbortAllButOneExchange(nlTestSuite * inSuite, void * inContext) // doing. // TODO: These should really be CASE sessions... SessionHolder session1; - CHIP_ERROR err = - sessionManager.InjectPaseSessionWithTestKey(session1, 100, ctx.GetBobFabric()->GetNodeId(), 101, ctx.GetAliceFabricIndex(), - ctx.GetBobAddress(), CryptoContext::SessionRole::kInitiator); + CHIP_ERROR err = sessionManager.InjectCaseSessionWithTestKey(session1, 100, 101, ctx.GetAliceFabric()->GetNodeId(), + ctx.GetBobFabric()->GetNodeId(), ctx.GetAliceFabricIndex(), + ctx.GetBobAddress(), CryptoContext::SessionRole::kInitiator, {}); + NL_TEST_ASSERT(inSuite, err == CHIP_NO_ERROR); SessionHolder session1Reply; - err = sessionManager.InjectPaseSessionWithTestKey(session1Reply, 101, ctx.GetAliceFabric()->GetNodeId(), 100, - ctx.GetBobFabricIndex(), ctx.GetAliceAddress(), - CryptoContext::SessionRole::kResponder); + err = sessionManager.InjectCaseSessionWithTestKey(session1Reply, 101, 100, ctx.GetBobFabric()->GetNodeId(), + ctx.GetAliceFabric()->GetNodeId(), ctx.GetBobFabricIndex(), + ctx.GetAliceAddress(), CryptoContext::SessionRole::kResponder, {}); + NL_TEST_ASSERT(inSuite, err == CHIP_NO_ERROR); // TODO: Ideally this would go to a different peer, but we don't have that // set up right now: only Alice and Bob have useful node ids and whatnot. SessionHolder session2; - err = - sessionManager.InjectPaseSessionWithTestKey(session2, 200, ctx.GetBobFabric()->GetNodeId(), 201, ctx.GetAliceFabricIndex(), - ctx.GetBobAddress(), CryptoContext::SessionRole::kInitiator); + err = sessionManager.InjectCaseSessionWithTestKey(session2, 200, 201, ctx.GetAliceFabric()->GetNodeId(), + ctx.GetBobFabric()->GetNodeId(), ctx.GetAliceFabricIndex(), + ctx.GetBobAddress(), CryptoContext::SessionRole::kInitiator, {}); + NL_TEST_ASSERT(inSuite, err == CHIP_NO_ERROR); SessionHolder session2Reply; - err = sessionManager.InjectPaseSessionWithTestKey(session2Reply, 201, ctx.GetAliceFabric()->GetNodeId(), 200, - ctx.GetBobFabricIndex(), ctx.GetAliceAddress(), - CryptoContext::SessionRole::kResponder); + err = sessionManager.InjectCaseSessionWithTestKey(session2Reply, 101, 100, ctx.GetBobFabric()->GetNodeId(), + ctx.GetAliceFabric()->GetNodeId(), ctx.GetBobFabricIndex(), + ctx.GetAliceAddress(), CryptoContext::SessionRole::kResponder, {}); NL_TEST_ASSERT(inSuite, err == CHIP_NO_ERROR); auto & exchangeMgr = ctx.GetExchangeManager(); @@ -160,6 +161,12 @@ void CheckAbortAllButOneExchange(nlTestSuite * inSuite, void * inContext) const auto & sessionHandle1 = session1.Get(); const auto & sessionHandle2 = session2.Get(); + session1->AsSecureSession()->SetRemoteMRPConfig(ReliableMessageProtocolConfig( + Test::MessagingContext::kResponsiveIdleRetransTimeout, Test::MessagingContext::kResponsiveActiveRetransTimeout)); + + session1Reply->AsSecureSession()->SetRemoteMRPConfig(ReliableMessageProtocolConfig( + Test::MessagingContext::kResponsiveIdleRetransTimeout, Test::MessagingContext::kResponsiveActiveRetransTimeout)); + NL_TEST_ASSERT(inSuite, session1); NL_TEST_ASSERT(inSuite, session2); auto * specialExhange = exchangeMgr.NewContext(session1.Get().Value(), &delegate); @@ -183,15 +190,49 @@ void CheckAbortAllButOneExchange(nlTestSuite * inSuite, void * inContext) // Should be waiting for an ack now. NL_TEST_ASSERT(inSuite, rm->TestGetCountRetransTable() == 1); - ctx.DrainAndServiceIO(); + if (dropResponseMessages) + { + // + // This version of the test allows us to validate logic that marks expired sessions as defunct + // on encountering an MRP failure. + // + loopback.mNumMessagesToDrop = Test::LoopbackTransport::kUnlimitedMessageCount; + loopback.mDroppedMessageCount = 0; + + // + // We've set the session into responsive mode by altering the MRP intervals, so we should be able to + // trigger a MRP failure due to timing out waiting for an ACK. + // + ctx.GetIOContext().DriveIOUntil(System::Clock::Milliseconds32(1000), [&]() { return false; }); + } + else + { + ctx.DrainAndServiceIO(); + } // Should not get an app-level response, since we are not expecting one. NL_TEST_ASSERT(inSuite, !delegate.mOnMessageReceivedCalled); + // We should have gotten our ack. NL_TEST_ASSERT(inSuite, rm->TestGetCountRetransTable() == 0); waitingForSend1->Close(); waitingForSend2->Close(); + + loopback.mNumMessagesToDrop = 0; + loopback.mDroppedMessageCount = 0; +} + +void CheckAbortAllButOneExchange(nlTestSuite * inSuite, void * inContext) +{ + TestContext & ctx = *reinterpret_cast(inContext); + CommonCheckAbortAllButOneExchange(inSuite, ctx, false); +} + +void CheckAbortAllButOneExchangeResponseTimeout(nlTestSuite * inSuite, void * inContext) +{ + TestContext & ctx = *reinterpret_cast(inContext); + CommonCheckAbortAllButOneExchange(inSuite, ctx, true); } // Test Suite @@ -202,7 +243,8 @@ void CheckAbortAllButOneExchange(nlTestSuite * inSuite, void * inContext) // clang-format off const nlTest sTests[] = { - NL_TEST_DEF("Test aborting all but one exchange", CheckAbortAllButOneExchange), + NL_TEST_DEF("Test aborting all but one exchange", CheckAbortAllButOneExchange), + NL_TEST_DEF("Test aborting all but one exchange + response timeout", CheckAbortAllButOneExchangeResponseTimeout), NL_TEST_SENTINEL() }; diff --git a/src/transport/SecureSession.cpp b/src/transport/SecureSession.cpp index e350029b7c7b1a..6e914e764f962e 100644 --- a/src/transport/SecureSession.cpp +++ b/src/transport/SecureSession.cpp @@ -120,9 +120,9 @@ void SecureSession::MarkAsDefunct() case State::kPendingEviction: // - // Once a session is headed for eviction, we CANNOT bring it back to either being active or defunct. + // Once a session is headed for eviction, we CANNOT bring it back to either being active or defunct. Let's just + // do nothing and return. // - VerifyOrDie(false); return; } } From f3661657625159a20c7b0026f1a426e72898f38f Mon Sep 17 00:00:00 2001 From: Boris Zbarsky Date: Tue, 11 Oct 2022 11:43:33 -0400 Subject: [PATCH 07/15] Remove some 1.0-only backwards-compat hacks from chip-tool. (#23094) These were just there to avoid changing some command lines from SVE2 to 1.0, but at this point those should be updated as needed. Fixes https://github.com/project-chip/connectedhomeip/issues/22507 Fixes https://github.com/project-chip/connectedhomeip/issues/22341 --- examples/chip-tool/templates/commands.zapt | 16 ---------------- .../chip-tool/zap-generated/cluster/Commands.h | 4 ---- 2 files changed, 20 deletions(-) diff --git a/examples/chip-tool/templates/commands.zapt b/examples/chip-tool/templates/commands.zapt index 8c075485a02ef1..b56772d44a5ad5 100644 --- a/examples/chip-tool/templates/commands.zapt +++ b/examples/chip-tool/templates/commands.zapt @@ -90,14 +90,6 @@ void registerCluster{{asUpperCamelCase name}}(Commands & commands, CredentialIss make_unique(Id, credsIssuerConfig), // {{#zcl_attributes_server}} make_unique(Id, "{{cleanse_label_as_kebab_case (asUpperCamelCase name)}}", Attributes::{{asUpperCamelCase name}}::Id, credsIssuerConfig), // - {{! TODO: Remove after 1.0. See https://github.com/project-chip/connectedhomeip/issues/22341 }} - {{#if (isStrEqual (asUpperCamelCase name) "ColorTemperatureMireds")}} - make_unique(Id, "color-temperature", Attributes::{{asUpperCamelCase name}}::Id, credsIssuerConfig), // - {{/if}} - {{! TODO: Remove after 1.0. See https://github.com/project-chip/connectedhomeip/issues/22507 }} - {{#if (isStrEqual (asUpperCamelCase name) "DeviceTypeList")}} - make_unique(Id, "device-list", Attributes::{{asUpperCamelCase name}}::Id, credsIssuerConfig), // - {{/if}} {{/zcl_attributes_server}} make_unique>(Id, credsIssuerConfig), // {{#zcl_attributes_server}} @@ -115,14 +107,6 @@ void registerCluster{{asUpperCamelCase name}}(Commands & commands, CredentialIss {{#zcl_attributes_server}} {{#if isReportable}} make_unique(Id, "{{cleanse_label_as_kebab_case (asUpperCamelCase name)}}", Attributes::{{asUpperCamelCase name}}::Id, credsIssuerConfig), // - {{! TODO: Remove after 1.0. See https://github.com/project-chip/connectedhomeip/issues/22341 }} - {{#if (isStrEqual (asUpperCamelCase name) "ColorTemperatureMireds")}} - make_unique(Id, "color-temperature", Attributes::{{asUpperCamelCase name}}::Id, credsIssuerConfig), // - {{/if}} - {{! TODO: Remove after 1.0. See https://github.com/project-chip/connectedhomeip/issues/22507 }} - {{#if (isStrEqual (asUpperCamelCase name) "DeviceTypeList")}} - make_unique(Id, "device-list", Attributes::{{asUpperCamelCase name}}::Id, credsIssuerConfig), // - {{/if}} {{/if}} {{/zcl_attributes_server}} // diff --git a/zzz_generated/chip-tool/zap-generated/cluster/Commands.h b/zzz_generated/chip-tool/zap-generated/cluster/Commands.h index 40b1760e02ba07..78b66ba4b6d5eb 100644 --- a/zzz_generated/chip-tool/zap-generated/cluster/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/cluster/Commands.h @@ -8675,7 +8675,6 @@ void registerClusterDescriptor(Commands & commands, CredentialIssuerCommands * c // make_unique(Id, credsIssuerConfig), // make_unique(Id, "device-type-list", Attributes::DeviceTypeList::Id, credsIssuerConfig), // - make_unique(Id, "device-list", Attributes::DeviceTypeList::Id, credsIssuerConfig), // make_unique(Id, "server-list", Attributes::ServerList::Id, credsIssuerConfig), // make_unique(Id, "client-list", Attributes::ClientList::Id, credsIssuerConfig), // make_unique(Id, "parts-list", Attributes::PartsList::Id, credsIssuerConfig), // @@ -8687,7 +8686,6 @@ void registerClusterDescriptor(Commands & commands, CredentialIssuerCommands * c make_unique>(Id, credsIssuerConfig), // make_unique(Id, credsIssuerConfig), // make_unique(Id, "device-type-list", Attributes::DeviceTypeList::Id, credsIssuerConfig), // - make_unique(Id, "device-list", Attributes::DeviceTypeList::Id, credsIssuerConfig), // make_unique(Id, "server-list", Attributes::ServerList::Id, credsIssuerConfig), // make_unique(Id, "client-list", Attributes::ClientList::Id, credsIssuerConfig), // make_unique(Id, "parts-list", Attributes::PartsList::Id, credsIssuerConfig), // @@ -11423,7 +11421,6 @@ void registerClusterColorControl(Commands & commands, CredentialIssuerCommands * make_unique(Id, "drift-compensation", Attributes::DriftCompensation::Id, credsIssuerConfig), // make_unique(Id, "compensation-text", Attributes::CompensationText::Id, credsIssuerConfig), // make_unique(Id, "color-temperature-mireds", Attributes::ColorTemperatureMireds::Id, credsIssuerConfig), // - make_unique(Id, "color-temperature", Attributes::ColorTemperatureMireds::Id, credsIssuerConfig), // make_unique(Id, "color-mode", Attributes::ColorMode::Id, credsIssuerConfig), // make_unique(Id, "options", Attributes::Options::Id, credsIssuerConfig), // make_unique(Id, "number-of-primaries", Attributes::NumberOfPrimaries::Id, credsIssuerConfig), // @@ -11516,7 +11513,6 @@ void registerClusterColorControl(Commands & commands, CredentialIssuerCommands * make_unique(Id, "compensation-text", Attributes::CompensationText::Id, credsIssuerConfig), // make_unique(Id, "color-temperature-mireds", Attributes::ColorTemperatureMireds::Id, credsIssuerConfig), // - make_unique(Id, "color-temperature", Attributes::ColorTemperatureMireds::Id, credsIssuerConfig), // make_unique(Id, "color-mode", Attributes::ColorMode::Id, credsIssuerConfig), // make_unique(Id, "options", Attributes::Options::Id, credsIssuerConfig), // make_unique(Id, "number-of-primaries", Attributes::NumberOfPrimaries::Id, credsIssuerConfig), // From 8eb1865531ad65f530983c1ddc4078a9fc94f4d8 Mon Sep 17 00:00:00 2001 From: Andrei Litvin Date: Tue, 11 Oct 2022 13:39:21 -0400 Subject: [PATCH 08/15] Update target/variant/modifier logic in `build_examples.py` (#23054) * Starting to add some build target logic and unit tests * Restyle * make basic unit tests pass * More unit tests * Restyle * Update prefix logic: use the builder prefix as well * Prepare to move build targets for linux * More conversion tests * more conversions * Converted more targets * Converted more targets * Updted more targets * Simplify target part * Restyle * All applications are converted * Remove old target code - should not be needed anymore * Restyle * Building at least chip-tool works. No introspection though * Fix typo in m5 builds * A bit easier to parse logging * More updates * Add ability to output all variants of some target * Restyle * Add the ability to print all possible targets * Add esp32 qemu support * Restyle * Fix typo * Simplify target printout, make nrf tests work * Restyle * Remove some usages of target glob * Replace glob in build scripts * Restyle * convert some globs into instructions, fix some target compile bugs * make unit tests pass * more unit tests * Restyle * Remove the default of "all" in build targets since that does not mean anything anymore * Rename arm64-clang to arm64 in targets for cloudbuild smoke test * For arm64, clang is a modifier that is required * Remove some whitespace.Tested that targets are ok * Fix ameba * Fix tizen * Fix infineon * Fix qpg * Fix infineon, cc13x2x7 and update android a bit * Fix linux standalone * Fix efr32 * Fix esp32 * Remove glob option from tasks.json * Fix platform naming for targets - fixes darwin target naming * Fix k32w targets - no more release * Adjust arm64 cross compile target names * Fix boufallolab app target * All-clusters full thread device does not link (insufficient ram/flash) on cc13x2x7. Updating to minimal thread device only * Update k32w example builds: nologs is mandatory for low-power builds * Fix output dir for boufallolab: output should be all lowercase * Add back the test/extra_tests variant to host builds * Fix qpg size reports * Update unit tests for available outpust now that test variant was added * Fix expected paths for cc13x2x7 builds * Fix typo in infineon build * Fix BL702 path for output - duplicate boufallolab * Allow rpc modifier for BL706 * Fix unit tests * Move nltestrunner to esp32 test runner and include in cloudbuild * Undo duplicate build target addition * Fix typo: esp32 -> efr32 * Split out fake platform: only tests are really supported there --- .github/workflows/examples-ameba.yaml | 10 +- .github/workflows/examples-bouffalolab.yaml | 8 +- .../workflows/examples-cc13x2x7_26x2x7.yaml | 12 +- .github/workflows/examples-efr32.yaml | 7 +- .github/workflows/examples-esp32.yaml | 4 +- .github/workflows/examples-infineon.yaml | 4 +- .github/workflows/examples-k32w.yaml | 16 +- .github/workflows/examples-linux-arm.yaml | 14 +- .../workflows/examples-linux-standalone.yaml | 6 +- .github/workflows/examples-qpg.yaml | 9 +- .github/workflows/examples-tizen.yaml | 6 +- .github/workflows/full-android.yaml | 2 +- .restyled.yaml | 1 + .vscode/tasks.json | 12 - integrations/cloudbuild/build-all.yaml | 120 +- integrations/cloudbuild/smoke-test.yaml | 90 +- scripts/build/BUILD.gn | 14 +- scripts/build/README.md | 22 +- scripts/build/build/__init__.py | 18 +- scripts/build/build/target.py | 349 +++ scripts/build/build/targets.py | 996 +++---- scripts/build/build/test_target.py | 158 + scripts/build/build_examples.py | 68 +- scripts/build/builders/host.py | 8 +- scripts/build/test.py | 49 +- .../testdata/all_targets_except_host.txt | 300 -- .../build/testdata/all_targets_linux_x64.txt | 22 + .../build/testdata/build_all_except_host.txt | 2616 ----------------- scripts/build/testdata/build_linux_on_x64.txt | 674 ----- .../dry_run_android-arm64-chip-tool.txt | 32 + .../dry_run_efr32-brd4161a-light-rpc.txt | 8 + .../dry_run_esp32-devkitc-light-rpc.txt | 20 + ...tack-all-clusters-minimal-rpc-ipv6only.txt | 22 + ...n_linux-arm64-chip-tool-ipv6only-clang.txt | 12 + ...ux-arm64-ota-requestor-nodeps-ipv6only.txt | 12 + ...ry_run_linux-x64-all-clusters-coverage.txt | 8 + .../testdata/dry_run_nrf-nrf52840dk-pump.txt | 10 + .../glob_star_targets_except_host.txt | 130 - src/test_driver/efr32/README.md | 2 +- 39 files changed, 1387 insertions(+), 4484 deletions(-) create mode 100644 scripts/build/build/target.py create mode 100755 scripts/build/build/test_target.py delete mode 100644 scripts/build/testdata/all_targets_except_host.txt create mode 100644 scripts/build/testdata/all_targets_linux_x64.txt delete mode 100644 scripts/build/testdata/build_all_except_host.txt delete mode 100644 scripts/build/testdata/build_linux_on_x64.txt create mode 100644 scripts/build/testdata/dry_run_android-arm64-chip-tool.txt create mode 100644 scripts/build/testdata/dry_run_efr32-brd4161a-light-rpc.txt create mode 100644 scripts/build/testdata/dry_run_esp32-devkitc-light-rpc.txt create mode 100644 scripts/build/testdata/dry_run_esp32-m5stack-all-clusters-minimal-rpc-ipv6only.txt create mode 100644 scripts/build/testdata/dry_run_linux-arm64-chip-tool-ipv6only-clang.txt create mode 100644 scripts/build/testdata/dry_run_linux-arm64-ota-requestor-nodeps-ipv6only.txt create mode 100644 scripts/build/testdata/dry_run_linux-x64-all-clusters-coverage.txt create mode 100644 scripts/build/testdata/dry_run_nrf-nrf52840dk-pump.txt delete mode 100644 scripts/build/testdata/glob_star_targets_except_host.txt diff --git a/.github/workflows/examples-ameba.yaml b/.github/workflows/examples-ameba.yaml index a320dd8a74d08f..703883dea7de5c 100644 --- a/.github/workflows/examples-ameba.yaml +++ b/.github/workflows/examples-ameba.yaml @@ -47,4 +47,12 @@ jobs: - name: Checkout submodules run: scripts/checkout_submodules.py --shallow --platform ameba - name: Build example Ameba All Clusters App - run: scripts/run_in_build_env.sh "./scripts/build/build_examples.py --target-glob 'ameba-*' build" + run: | + ./scripts/run_in_build_env.sh \ + "./scripts/build/build_examples.py \ + --target ameba-amebad-all-clusters \ + --target ameba-amebad-all-clusters-minimal \ + --target ameba-amebad-light \ + --target ameba-amebad-pigweed \ + build \ + " diff --git a/.github/workflows/examples-bouffalolab.yaml b/.github/workflows/examples-bouffalolab.yaml index 4f32c97aaf424e..3b53d17b35d726 100644 --- a/.github/workflows/examples-bouffalolab.yaml +++ b/.github/workflows/examples-bouffalolab.yaml @@ -56,17 +56,17 @@ jobs: timeout-minutes: 30 run: | ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py --target bouffalolab-BL706-IoT-DVK-light build" + "./scripts/build/build_examples.py --target bouffalolab-bl706-iot-dvk-light build" .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py bl702 bl702 lighting-app \ - out/bouffalolab-BL706-IoT-DVK-light/chip-bl702-lighting-example.out /tmp/bloat_reports/ + out/bouffalolab-bl706-iot-dvk-light/chip-bl702-lighting-example.out /tmp/bloat_reports/ - name: Build example BL702 Lighting App with RPCs timeout-minutes: 30 run: | ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py --target bouffalolab-BL706-IoT-DVK-light-rpc build" + "./scripts/build/build_examples.py --target bouffalolab-bl706-iot-dvk-light-rpc build" .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py bl702 bl702+rpc lighting-app \ - out/bouffalolab-BL706-IoT-DVK-light-rpc/chip-bl702-lighting-example.out /tmp/bloat_reports/ + out/bouffalolab-bl706-iot-dvk-light-rpc/chip-bl702-lighting-example.out /tmp/bloat_reports/ - name: Uploading Size Reports uses: actions/upload-artifact@v2 diff --git a/.github/workflows/examples-cc13x2x7_26x2x7.yaml b/.github/workflows/examples-cc13x2x7_26x2x7.yaml index 2c45231a6752a0..184cd86a4c54a2 100644 --- a/.github/workflows/examples-cc13x2x7_26x2x7.yaml +++ b/.github/workflows/examples-cc13x2x7_26x2x7.yaml @@ -68,7 +68,15 @@ jobs: timeout-minutes: 60 run: | scripts/run_in_build_env.sh "\ - ./scripts/build/build_examples.py --target-glob cc13x2x7_26x2x7* build \ + ./scripts/build/build_examples.py \ + --target cc13x2x7_26x2x7-all-clusters-mtd \ + --target cc13x2x7_26x2x7-all-clusters-minimal \ + --target cc13x2x7_26x2x7-lock-ftd \ + --target cc13x2x7_26x2x7-lock-mtd \ + --target cc13x2x7_26x2x7-pump \ + --target cc13x2x7_26x2x7-pump-controller \ + --target cc13x2x7_26x2x7-shell \ + build \ --copy-artifacts-to out/artifacts \ " - name: Get lock FTD size stats @@ -104,7 +112,7 @@ jobs: run: | .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ cc13x2_26x2 LP_CC2652R7 all-clusters-app \ - out/artifacts/cc13x2x7_26x2x7-all-clusters/chip-LP_CC2652R7-all-clusters-example.out \ + out/artifacts/cc13x2x7_26x2x7-all-clusters-mtd/chip-LP_CC2652R7-all-clusters-example.out \ /tmp/bloat_reports/ - name: Get All Clusters Minimal App size stats timeout-minutes: 5 diff --git a/.github/workflows/examples-efr32.yaml b/.github/workflows/examples-efr32.yaml index 93906993921c4d..3476e70aae76f0 100644 --- a/.github/workflows/examples-efr32.yaml +++ b/.github/workflows/examples-efr32.yaml @@ -77,7 +77,12 @@ jobs: ./scripts/run_in_build_env.sh \ "./scripts/build/build_examples.py \ --enable-flashbundle \ - --target-glob '*-brd4187c-{lock,light,switch,window-covering,unit-test}' \ + --target efr32-brd4187c-window-covering \ + --target efr32-brd4187c-switch \ + --target efr32-brd4187c-unit-test \ + --target efr32-brd4187c-light \ + --target efr32-brd4187c-light-rpc \ + --target efr32-brd4187c-lock-rpc \ build \ --copy-artifacts-to out/artifacts \ " diff --git a/.github/workflows/examples-esp32.yaml b/.github/workflows/examples-esp32.yaml index d3736684e4a132..e59031c5f7e0cf 100644 --- a/.github/workflows/examples-esp32.yaml +++ b/.github/workflows/examples-esp32.yaml @@ -70,7 +70,9 @@ jobs: ./scripts/run_in_build_env.sh \ "./scripts/build/build_examples.py \ --enable-flashbundle \ - --target-glob '*-m5stack-{all-clusters,all-clusters-minimal,all-clusters-rpc-ipv6only}' \ + --target esp32-m5stack-all-clusters \ + --target esp32-m5stack-all-clusters-minimal \ + --target esp32-m5stack-all-clusters-rpc-ipv6only \ build \ --copy-artifacts-to out/artifacts \ " diff --git a/.github/workflows/examples-infineon.yaml b/.github/workflows/examples-infineon.yaml index a162a6b12d4db9..5277f7eacded25 100644 --- a/.github/workflows/examples-infineon.yaml +++ b/.github/workflows/examples-infineon.yaml @@ -126,7 +126,9 @@ jobs: run: | ./scripts/run_in_build_env.sh \ "./scripts/build/build_examples.py \ - --target-glob 'cyw30739-cyw930739m2evb_01-{light,lock,ota-requestor-no-progress-logging}' \ + --target cyw30739-cyw930739m2evb_01-light \ + --target cyw30739-cyw930739m2evb_01-lock \ + --target cyw30739-cyw930739m2evb_01-ota-requestor-no-progress-logging \ build \ --copy-artifacts-to out/artifacts \ " diff --git a/.github/workflows/examples-k32w.yaml b/.github/workflows/examples-k32w.yaml index 696c2c6e04fea6..d9142d73d72583 100644 --- a/.github/workflows/examples-k32w.yaml +++ b/.github/workflows/examples-k32w.yaml @@ -71,11 +71,11 @@ jobs: run: | scripts/run_in_build_env.sh "\ ./scripts/build/build_examples.py \ - --target k32w-light-ota-se \ - --target k32w-light-release-no-ota \ - --target k32w-lock-low-power-release \ - --target k32w-contact-low-power-release \ - --target k32w-shell-release \ + --target k32w-light \ + --target k32w-light-no-ota \ + --target k32w-lock-low-power-nologs \ + --target k32w-contact-low-power-nologs \ + --target k32w-shell \ build \ --copy-artifacts-to out/artifacts \ " @@ -84,21 +84,21 @@ jobs: run: | .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ k32w k32w0+release light \ - out/artifacts/k32w-light-release-no-ota/chip-k32w0x-light-example \ + out/artifacts/k32w-light-no-ota/chip-k32w0x-light-example \ /tmp/bloat_reports/ - name: Get lock size stats timeout-minutes: 5 run: | .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ k32w k32w0+release lock \ - out/artifacts/k32w-lock-low-power-release/chip-k32w0x-lock-example \ + out/artifacts/k32w-lock-low-power-nologs/chip-k32w0x-lock-example \ /tmp/bloat_reports/ - name: Get contact size stats timeout-minutes: 5 run: | .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ k32w k32w0+release contact \ - out/artifacts/k32w-contact-low-power-release/chip-k32w0x-contact-example \ + out/artifacts/k32w-contact-low-power-nologs/chip-k32w0x-contact-example \ /tmp/bloat_reports/ - name: Uploading Size Reports uses: actions/upload-artifact@v2 diff --git a/.github/workflows/examples-linux-arm.yaml b/.github/workflows/examples-linux-arm.yaml index ad84e2787a89f8..3e4894a9efd5fb 100644 --- a/.github/workflows/examples-linux-arm.yaml +++ b/.github/workflows/examples-linux-arm.yaml @@ -69,11 +69,11 @@ jobs: run: | ./scripts/run_in_build_env.sh \ "./scripts/build/build_examples.py \ - --target linux-arm64-clang-all-clusters \ - --target linux-arm64-clang-chip-tool-ipv6only \ - --target linux-arm64-clang-lock \ - --target linux-arm64-clang-minmdns \ - --target linux-arm64-clang-thermostat-no-ble \ + --target linux-arm64-all-clusters-clang \ + --target linux-arm64-chip-tool-ipv6only-clang \ + --target linux-arm64-lock-clang \ + --target linux-arm64-minmdns-clang \ + --target linux-arm64-thermostat-no-ble-clang \ build \ " - name: Bloat report - chip-tool @@ -81,14 +81,14 @@ jobs: run: | .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ linux arm64 chip-tool-ipv6only \ - out/linux-arm64-clang-chip-tool-ipv6only/chip-tool \ + out/linux-arm64-chip-tool-ipv6only-clang/chip-tool \ /tmp/bloat_reports/ - name: Bloat report - thermostat timeout-minutes: 5 run: | .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ linux arm64 thermostat-no-ble \ - out/linux-arm64-clang-thermostat-no-ble/thermostat-app \ + out/linux-arm64-thermostat-no-ble-clang/thermostat-app \ /tmp/bloat_reports/ - name: Uploading Size Reports uses: actions/upload-artifact@v2 diff --git a/.github/workflows/examples-linux-standalone.yaml b/.github/workflows/examples-linux-standalone.yaml index 9c2de92393ef92..f24faf1fae284f 100644 --- a/.github/workflows/examples-linux-standalone.yaml +++ b/.github/workflows/examples-linux-standalone.yaml @@ -71,7 +71,11 @@ jobs: timeout-minutes: 10 run: | ./scripts/run_in_build_env.sh \ - "./scripts/build/build_examples.py --no-log-timestamps --target-glob '*-chip-cert' build" + "./scripts/build/build_examples.py --no-log-timestamps \ + --target linux-x64-chip-cert \ + --target linux-arm64-chip-cert \ + build \ + " - name: Build minmdns example with platform dns timeout-minutes: 10 run: | diff --git a/.github/workflows/examples-qpg.yaml b/.github/workflows/examples-qpg.yaml index 58861751dadd42..a0eef523d14d1d 100644 --- a/.github/workflows/examples-qpg.yaml +++ b/.github/workflows/examples-qpg.yaml @@ -72,7 +72,10 @@ jobs: ./scripts/run_in_build_env.sh \ "./scripts/build/build_examples.py \ --enable-flashbundle \ - --target-glob 'qpg-{lock,light,shell,persistent-storage}' \ + --target qpg-qpg6105-lock \ + --target qpg-qpg6105-light \ + --target qpg-qpg6105-shell \ + --target qpg-qpg6105-persistent-storage \ build \ --copy-artifacts-to out/artifacts \ " @@ -85,11 +88,11 @@ jobs: run: | .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ qpg qpg6105+debug lighting-app \ - out/qpg-light/chip-qpg6105-lighting-example.out \ + out/qpg-qpg6105-light/chip-qpg6105-lighting-example.out \ /tmp/bloat_reports/ .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \ qpg qpg6105+debug lock-app \ - out/qpg-lock/chip-qpg6105-lock-example.out \ + out/qpg-qpg6105-lock/chip-qpg6105-lock-example.out \ /tmp/bloat_reports/ - name: Uploading Size Reports diff --git a/.github/workflows/examples-tizen.yaml b/.github/workflows/examples-tizen.yaml index 561170f1ea22b5..fb5bdc59a5e902 100644 --- a/.github/workflows/examples-tizen.yaml +++ b/.github/workflows/examples-tizen.yaml @@ -54,7 +54,11 @@ jobs: ./scripts/run_in_build_env.sh \ "./scripts/build/build_examples.py \ --enable-flashbundle \ - --target-glob 'tizen-*' \ + --target tizen-arm-all-clusters \ + --target tizen-arm-all-clusters-minimal-no-wifi \ + --target chip-tool \ + --target light \ + --target light-no-ble-no-wifi \ build \ --copy-artifacts-to out/artifacts \ " diff --git a/.github/workflows/full-android.yaml b/.github/workflows/full-android.yaml index c17a46350971c3..8e502c3453b9dd 100644 --- a/.github/workflows/full-android.yaml +++ b/.github/workflows/full-android.yaml @@ -111,4 +111,4 @@ jobs: # - name: Build Android Studio build (arm64 only) # run: | # ./scripts/run_in_build_env.sh \ - # "./scripts/build/build_examples.py --no-log-timestamps --target-glob 'android-androidstudio-arm64-chip-tool' build" + # "./scripts/build/build_examples.py --no-log-timestamps --target android-androidstudio-arm64-chip-tool build" diff --git a/.restyled.yaml b/.restyled.yaml index 9b6e7bcde82817..5d4ba637148bf0 100644 --- a/.restyled.yaml +++ b/.restyled.yaml @@ -75,6 +75,7 @@ exclude: - "src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm" # https://github.com/project-chip/connectedhomeip/issues/20236 - "src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h" # https://github.com/project-chip/connectedhomeip/issues/20236 - "examples/platform/nxp/k32w/k32w0/scripts/demo_generated_certs/**/*" + - "integrations/cloudbuild/*.yaml" # uglier long command line content changed_paths: diff --git a/.vscode/tasks.json b/.vscode/tasks.json index d6fedb4eb102bd..7ad376e3e2457e 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -13,18 +13,6 @@ "base": "$gcc" } }, - { - "label": "Build examples (glob)", - "type": "shell", - "command": "scripts/run_in_build_env.sh", - "args": [ - "./scripts/build/build_examples.py --target-glob \"${input:exampleGlob}\" build" - ], - "group": "build", - "problemMatcher": { - "base": "$gcc" - } - }, { "label": "Main Build", "type": "shell", diff --git a/integrations/cloudbuild/build-all.yaml b/integrations/cloudbuild/build-all.yaml index bae33cbf0e1a9b..6c68935123eea7 100644 --- a/integrations/cloudbuild/build-all.yaml +++ b/integrations/cloudbuild/build-all.yaml @@ -27,8 +27,124 @@ steps: args: - >- ./scripts/build/build_examples.py --enable-flashbundle - --target-glob '*' --skip-target-glob - '{imx-*,tizen-*,*-androidstudio-*,*-tests*,*-chip-test}' build + --target ameba-amebad-light + --target ameba-amebad-pigweed + --target android-arm-chip-tool + --target android-arm64-chip-tool + --target android-arm64-tv-casting-app + --target android-arm64-tv-server + --target android-x64-chip-tool + --target bl602-light + --target bouffalolab-BL706-IoT-DVK-light-rpc + --target cc13x2x7_26x2x7-lock-ftd + --target cc13x2x7_26x2x7-lock-mtd + --target cc13x2x7_26x2x7-shell + --target cyw30739-cyw930739m2evb_01-ota-requestor-no-progress-logging + --target efr32-brd4161a-light-rpc + --target efr32-brd4161a-lock + --target efr32-brd4161a-switch + --target efr32-brd4161a-window-covering + --target efr32-brd4187c-window-covering + --target esp32-c3devkit-all-clusters + --target esp32-c3devkit-all-clusters-minimal + --target esp32-devkitc-all-clusters-ipv6only + --target esp32-devkitc-all-clusters-minimal-ipv6only + --target esp32-devkitc-bridge + --target esp32-devkitc-light-rpc + --target esp32-devkitc-lock + --target esp32-devkitc-ota-requestor-rpc + --target esp32-devkitc-shell + --target esp32-m5stack-all-clusters + --target esp32-m5stack-all-clusters-ipv6only + --target esp32-m5stack-all-clusters-minimal + --target esp32-m5stack-all-clusters-minimal-ipv6only + --target esp32-m5stack-all-clusters-minimal-rpc + --target esp32-m5stack-all-clusters-minimal-rpc-ipv6only + --target esp32-m5stack-ota-requestor + --target genio-lighting-app + --target imx-all-clusters-app + --target imx-chip-tool + --target imx-thermostat + --target infineon-psoc6-all-clusters + --target infineon-psoc6-all-clusters-minimal + --target infineon-psoc6-light + --target infineon-psoc6-lock + --target k32w-contact + --target k32w-light-no-ota + --target k32w-lock + --target k32w-shell + --target linux-arm64-all-clusters-clang + --target linux-arm64-all-clusters-app-nodeps + --target linux-arm64-all-clusters-app-nodeps-ipv6only + --target linux-arm64-all-clusters-ipv6only-clang + --target linux-arm64-all-clusters-minimal-clang + --target linux-arm64-all-clusters-minimal-ipv6only-clang + --target linux-arm64-bridge-ipv6only-clang + --target linux-arm64-chip-tool-clang + --target linux-arm64-chip-tool-ipv6only-clang + --target linux-arm64-chip-tool-nodeps + --target linux-arm64-chip-tool-nodeps-ipv6only + --target linux-arm64-dynamic-bridge-ipv6only-clang + --target linux-arm64-light-clang + --target linux-arm64-light-ipv6only-clang + --target linux-arm64-light-rpc-clang + --target linux-arm64-light-rpc-ipv6only-clang + --target linux-arm64-lock-clang + --target linux-arm64-lock-ipv6only-clang + --target linux-arm64-minmdns-clang + --target linux-arm64-ota-provider-nodeps-ipv6only + --target linux-arm64-ota-requestor-nodeps-ipv6only + --target linux-arm64-shell-ipv6only-clang + --target linux-arm64-thermostat-ipv6only-clang + --target linux-arm64-tv-app-ipv6only-clang + --target linux-arm64-tv-casting-app-ipv6only-clang + --target linux-x64-address-resolve-tool + --target linux-x64-all-clusters + --target linux-x64-all-clusters-nodeps + --target linux-x64-all-clusters-nodeps-ipv6only + --target linux-x64-all-clusters-coverage + --target linux-x64-all-clusters-ipv6only + --target linux-x64-all-clusters-minimal + --target linux-x64-all-clusters-minimal-ipv6only + --target linux-x64-bridge-ipv6only + --target linux-x64-chip-cert + --target linux-x64-chip-tool + --target linux-x64-chip-tool-coverage + --target linux-x64-chip-tool-nodeps-ipv6only + --target linux-x64-dynamic-bridge-ipv6only + --target linux-x64-efr32-test-runner + --target linux-x64-light-rpc-ipv6only + --target linux-x64-lock-ipv6only + --target linux-x64-minmdns + --target linux-x64-nl-test-runner + --target linux-x64-ota-provider + --target linux-x64-ota-provider-nodeps-ipv6only + --target linux-x64-ota-requestor-nodeps-ipv6only + --target linux-x64-rpc-console + --target linux-x64-shell-ipv6only + --target linux-x64-thermostat-ipv6only + --target linux-x64-tv-app-ipv6only + --target linux-x64-tv-casting-app-ipv6only + --target mbed-CY8CPROTO_062_4343W-light-release + --target mbed-CY8CPROTO_062_4343W-lock-release + --target mbed-CY8CPROTO_062_4343W-pigweed-release + --target mw320-all-clusters-app + --target nrf-nrf52840dk-all-clusters + --target nrf-nrf52840dk-all-clusters-minimal + --target nrf-nrf52840dk-light-rpc + --target nrf-nrf52840dk-lock + --target nrf-nrf52840dk-pump + --target nrf-nrf52840dk-pump-controller + --target nrf-nrf52840dk-shell + --target nrf-nrf52840dongle-light + --target nrf-nrf5340dk-all-clusters + --target nrf-nrf5340dk-all-clusters-minimal + --target nrf-nrf5340dk-shell + --target qpg-qpg6105-light + --target qpg-qpg6105-shell + --target telink-tlsr9518adk80d-light + --target tizen-arm-light + build --create-archives /workspace/artifacts/ id: CompileAll waitFor: diff --git a/integrations/cloudbuild/smoke-test.yaml b/integrations/cloudbuild/smoke-test.yaml index b6e1d7497387da..f05fa37cd568d1 100644 --- a/integrations/cloudbuild/smoke-test.yaml +++ b/integrations/cloudbuild/smoke-test.yaml @@ -48,8 +48,12 @@ steps: args: - >- ./scripts/build/build_examples.py --enable-flashbundle - --target-glob '*-nrf52840*{lock,light}*' build --create-archives - /workspace/artifacts/ + --target nrf-nrf52840dk-light + --target nrf-nrf52840dk-light-rpc + --target nrf-nrf52840dk-lock + --target nrf-nrf52840dongle-light + build + --create-archives /workspace/artifacts/ waitFor: - Bootstrap - ESP32 @@ -65,7 +69,11 @@ steps: args: - >- ./scripts/build/build_examples.py --enable-flashbundle - --target-glob '*-brd4161a-{lock,light,unit-test}*' build + --target nrf-nrf52840dk-light + --target nrf-nrf52840dk-light-rpc + --target nrf-nrf52840dk-lock + --target nrf-nrf52840dongle-light + build --create-archives /workspace/artifacts/ waitFor: - Bootstrap @@ -81,37 +89,46 @@ steps: - PW_ENVIRONMENT_ROOT=/pwenv args: - >- - ./scripts/build/build_examples.py --enable-flashbundle --target - linux-arm64-clang-all-clusters --target - linux-arm64-clang-all-clusters-app-nodeps-ipv6only --target - linux-arm64-clang-all-clusters-minimal-ipv6only --target - linux-arm64-clang-bridge-ipv6only --target - linux-arm64-clang-chip-tool-ipv6only --target - linux-arm64-clang-chip-tool-nodeps-ipv6only --target - linux-arm64-clang-dynamic-bridge-ipv6only --target - linux-arm64-clang-light-rpc-ipv6only --target - linux-arm64-clang-lock-ipv6only --target linux-arm64-clang-minmdns - --target linux-arm64-clang-ota-provider-nodeps-ipv6only --target - linux-arm64-clang-ota-requestor-nodeps-ipv6only --target - linux-arm64-clang-python-bindings --target - linux-arm64-clang-shell-ipv6only --target - linux-arm64-clang-thermostat-ipv6only --target - linux-arm64-clang-tv-app-ipv6only --target - linux-arm64-clang-tv-casting-app-ipv6only --target - linux-x64-address-resolve-tool --target - linux-x64-all-clusters-app-nodeps-ipv6only --target - linux-x64-all-clusters-coverage --target linux-x64-bridge-ipv6only - --target linux-x64-chip-cert --target linux-x64-chip-tool-ipv6only - --target linux-x64-dynamic-bridge-ipv6only --target - linux-x64-light-rpc-ipv6only --target linux-x64-lock-ipv6only - --target linux-x64-minmdns-ipv6only --target - linux-x64-ota-provider-ipv6only --target - linux-x64-ota-requestor-ipv6only --target - linux-x64-python-bindings --target linux-x64-rpc-console --target - linux-x64-shell-ipv6only --target linux-x64-thermostat-ipv6only - --target linux-x64-tv-app-ipv6only --target - linux-x64-tv-casting-app-ipv6only build --create-archives - /workspace/artifacts/ + ./scripts/build/build_examples.py + --enable-flashbundle + --target linux-arm64-all-clusters-clang + --target linux-arm64-all-clusters-app-nodeps-ipv6only-clang + --target linux-arm64-all-clusters-minimal-ipv6only-clang + --target linux-arm64-bridge-ipv6only-clang + --target linux-arm64-chip-tool-ipv6only-clang + --target linux-arm64-chip-tool-nodeps-ipv6only-clang + --target linux-arm64-dynamic-bridge-ipv6only-clang + --target linux-arm64-light-rpc-ipv6only-clang + --target linux-arm64-lock-ipv6only-clang + --target linux-arm64-minmdns-clang + --target linux-arm64-ota-provider-nodeps-ipv6only-clang + --target linux-arm64-ota-requestor-nodeps-ipv6only-clang + --target linux-arm64-python-bindings-clang + --target linux-arm64-shell-ipv6only-clang + --target linux-arm64-thermostat-ipv6only-clang + --target linux-arm64-tv-app-ipv6only-clang + --target linux-arm64-tv-casting-app-ipv6only-clang + --target linux-x64-address-resolve-tool + --target linux-x64-all-clusters-app-nodeps-ipv6only + --target linux-x64-all-clusters-coverage + --target linux-x64-bridge-ipv6only + --target linux-x64-chip-cert + --target linux-x64-chip-tool-ipv6only + --target linux-x64-dynamic-bridge-ipv6only + --target linux-x64-efr32-test-runner + --target linux-x64-light-rpc-ipv6only + --target linux-x64-lock-ipv6only + --target linux-x64-minmdns-ipv6only + --target linux-x64-ota-provider-ipv6only + --target linux-x64-ota-requestor-ipv6only + --target linux-x64-python-bindings + --target linux-x64-rpc-console + --target linux-x64-shell-ipv6only + --target linux-x64-thermostat-ipv6only + --target linux-x64-tv-app-ipv6only + --target linux-x64-tv-casting-app-ipv6only + build + --create-archives /workspace/artifacts/ waitFor: - Bootstrap - EFR32 @@ -127,8 +144,9 @@ steps: args: - >- ./scripts/build/build_examples.py --enable-flashbundle - --target-glob 'android-arm64-chip-tool' build --create-archives - /workspace/artifacts/ + --target 'android-arm64-chip-tool' + build + --create-archives /workspace/artifacts/ waitFor: - Bootstrap - Linux diff --git a/scripts/build/BUILD.gn b/scripts/build/BUILD.gn index 706dcaed32a433..9ea50936d5382a 100644 --- a/scripts/build/BUILD.gn +++ b/scripts/build/BUILD.gn @@ -22,13 +22,20 @@ pw_python_package("build_examples") { setup = [ "setup.py" ] inputs = [ # Dependency for the unit test - "testdata/all_targets_except_host.txt", - "testdata/build_all_except_host.txt", - "testdata/build_linux_on_x64.txt", + "testdata/all_targets_linux_x64.txt", + "testdata/dry_run_android-arm64-chip-tool.txt", + "testdata/dry_run_efr32-brd4161a-light-rpc.txt", + "testdata/dry_run_esp32-devkitc-light-rpc.txt", + "testdata/dry_run_esp32-m5stack-all-clusters-minimal-rpc-ipv6only.txt", + "testdata/dry_run_linux-arm64-chip-tool-ipv6only-clang.txt", + "testdata/dry_run_linux-arm64-ota-requestor-nodeps-ipv6only.txt", + "testdata/dry_run_linux-x64-all-clusters-coverage.txt", + "testdata/dry_run_nrf-nrf52840dk-pump.txt", ] sources = [ "build/__init__.py", + "build/target.py", "build/targets.py", "build_examples.py", "builders/__init__.py", @@ -59,5 +66,6 @@ pw_python_package("build_examples") { tests = [ "test.py", "test_glob_matcher.py", + "build/test_target.py", ] } diff --git a/scripts/build/README.md b/scripts/build/README.md index d2279c18460adb..bba19a6ab174bf 100644 --- a/scripts/build/README.md +++ b/scripts/build/README.md @@ -32,39 +32,27 @@ requirement. Usage examples: -1. Compiles all targets - - ```sh - ./scripts/build/build_examples.py --target all build - ``` - -2. Compile the all clusters app for a ESP32 DevKitC +1. Compile the all clusters app for a ESP32 DevKitC ```sh ./scripts/build/build_examples.py --target esp32-devkitc-all-clusters build ``` -3. Generate all the makefiles (but do not compile) using a specific output root +2. Generate all the makefiles (but do not compile) using a specific output root ```sh ./scripts/build/build_examples.py --target linux-x64-chip-tool --out-prefix ./mydir gen ``` -4. Compile the qpg lock app and copy the output in a 'artifact' folder. Note the +3. Compile the qpg lock app and copy the output in a 'artifact' folder. Note the argument order (artifact copying is an argument for the build command) ```sh ./scripts/build/build_examples.py --target qpg-lock build --copy-artifacts-to /tmp/artifacts ``` -5. Find out all possible targets for compiling the 'light' app: - - ```sh - ./scripts/build/build_examples.py --target-glob '*light' --log-level fatal targets - ``` - -6. Compile everything except linux or darwin: +4. Find out possible target choices: ```sh - ./scripts/build/build_examples.py --skip-target-glob '{darwin,linux}-*' --log-level fatal build + ./scripts/build/build_examples.py--log-level fatal targets ``` diff --git a/scripts/build/build/__init__.py b/scripts/build/build/__init__.py index c8c7cafeb8dd0c..fc0ee056590aab 100644 --- a/scripts/build/build/__init__.py +++ b/scripts/build/build/__init__.py @@ -4,9 +4,7 @@ from enum import Enum, auto from typing import Sequence -from .targets import ALL, Target - -ALL_TARGETS = ALL +from .targets import BUILD_TARGETS class BuildSteps(Enum): @@ -26,7 +24,7 @@ def __init__(self, runner, repository_path: str, output_prefix: str): self.output_prefix = output_prefix self.completed_steps = set() - def SetupBuilders(self, targets: Sequence[Target], + def SetupBuilders(self, targets: Sequence[str], enable_flashbundle: bool): """ Configures internal builders for the given platform/board/app @@ -35,9 +33,15 @@ def SetupBuilders(self, targets: Sequence[Target], self.builders = [] for target in targets: - self.builders.append(target.Create( - self.runner, self.repository_path, self.output_prefix, - enable_flashbundle)) + found = False + for choice in BUILD_TARGETS: + builder = choice.Create(target, self.runner, self.repository_path, self.output_prefix, enable_flashbundle) + if builder: + self.builders.append(builder) + found = True + + if not found: + logging.error(f"Target '{target}' could not be found. Nothing executed for it") # whenever builders change, assume generation is required again self.completed_steps.discard(BuildSteps.GENERATED) diff --git a/scripts/build/build/target.py b/scripts/build/build/target.py new file mode 100644 index 00000000000000..9d7be75afceef3 --- /dev/null +++ b/scripts/build/build/target.py @@ -0,0 +1,349 @@ +# Copyright (c) 2022 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Build targets are generally of the form `target + modifiers` +# - `target` defines the platform-specific application to build. It is often +# in the form of `platform-board-app` but may be `platform-app` as well +# +# - `modifiers` are additional compilation options like disabling BLE, enabling +# coverage or other options that are generally passed into gn configurations +# +# Examples: +# - linux-x64-chip-tool: this is a 'chip-tool' build for a 64-bit linux +# - linux-x64-chip-tool-noble-coverage: a chip tool build with modifiers attached of +# "noble" and "coverage" +# - qpg-light: a 'light' app built for qpg +# - imx-thermostat-release: a 'thermostat` build for imx, with a `release` modifier applied +# +# Interpretation of a specific string of `a-b-c-d` is left up to the Builder/platform +# as there is no direct convention at this time that an application/variant may not contain +# a `-`. So `a-b-c-d` may for example mean any of: +# - platform 'a', application 'b', modifiers 'c' and 'd' +# - platform 'a', board 'b', application 'c-d' +# - platform 'a', application 'b', modifier 'c-d' +# - platform 'a', application 'b-c', modifier 'd' +# +# The only requirement of the build system is that a single string corresponds to a single +# combination of platform/board/app/modifier(s). This requirement is unenfornced in code +# but easy enough to follow when defining names for things: just don't reuse names between '-' + +import itertools +import logging +import os +import re + +from collections.abc import Iterable +from dataclasses import dataclass +from typing import Any, Optional + + +@dataclass(init=False) +class TargetPart: + # SubTarget/Modifier name + name: str + + # The build arguments to apply to a builder if this part is active + build_arguments: dict[str, Any] + + # Part should be included if and only if the final string MATCHES the + # given regular expression + only_if_re: Optional[re.Pattern] = None + + # Part should be included if and only if the final string DOES NOT match + # given regular expression + except_if_re: Optional[re.Pattern] = None + + def __init__(self, name, **kargs): + self.name = name.lower() + self.build_arguments = kargs + + def OnlyIfRe(self, expr: str): + self.only_if_re = re.compile(expr) + return self + + def ExceptIfRe(self, expr: str): + self.except_if_re = re.compile(expr) + return self + + def Accept(self, full_input: str): + if self.except_if_re: + if self.except_if_re.search(full_input): + # likely nothing will match when we get such an error + logging.error(f"'{self.name}' does not support '{full_input}' due to rule EXCEPT IF '{self.except_if_re.pattern}'") + return False + + if self.only_if_re: + if not self.only_if_re.search(full_input): + # likely nothing will match when we get such an error + logging.error(f"'{self.name}' does not support '{full_input}' due to rule ONLY IF '{self.only_if_re.pattern}'") + return False + + return True + + +def _HasVariantPrefix(value: str, prefix: str): + """Checks if the given value is or starts with "-". + + This is useful when considering '-'-delimited strings, where a specific + prefix may either be the last element in the list of items or some first element + out of several. + + Returns: + None if no match or the remaining value if there is a match. + + Examples: + _HasVariantPrefix('foo', 'foo') # -> '' + _HasVariantPrefix('foo', 'bar') # -> None + _HasVariantPrefix('foo-bar', 'foo') # -> 'bar' + _HasVariantPrefix('foo-bar', 'bar') # -> None + _HasVariantPrefix('foo-bar-baz', 'foo') # -> 'bar-baz' + _HasVariantPrefix('foo-bar-baz', 'bar') # -> None + """ + if value == prefix: + return '' + + if value.startswith(prefix + '-'): + return value[len(prefix)+1:] + + +def _StringIntoParts(full_input: str, remaining_input: str, fixed_targets: list[list[TargetPart]], modifiers: list[TargetPart]): + """Given an input string, process through all the input rules and return + the underlying list of target parts for the input. + + Parameters: + full_input: the full input string, used for validity matching (except/only_if) + remaining_input: the remaining input to parse + fixed_targets: the remaining fixed targets left to match + modifiers: the modifiers left to match + """ + if not remaining_input: + if fixed_targets: + # String was not fully matched. Fixed thargets are required + return None + + # Fully parsed + return [] + + if fixed_targets: + # If fixed targets remain, we MUST match one of them + for target in fixed_targets[0]: + suffix = _HasVariantPrefix(remaining_input, target.name) + if suffix is None: + continue + + # see if match should be rejected. Done AFTER variant prefix detection so we + # can log if there are issues + if not target.Accept(full_input): + continue + + result = _StringIntoParts(full_input, suffix, fixed_targets[1:], modifiers) + if result is not None: + return [target] + result + + # None of the variants matched + return None + + # Only modifiers left to process + # Process the modifiers one by one + for modifier in modifiers: + suffix = _HasVariantPrefix(remaining_input, modifier.name) + if suffix is None: + continue + + # see if match should be rejected. Done AFTER variant prefix detection so we + # can log if there are issues + if not modifier.Accept(full_input): + continue + + result = _StringIntoParts(full_input, suffix, fixed_targets[1:], filter(lambda x: x != modifier, modifiers)) + if result is not None: + return [modifier] + result + + # Remaining input is not empty and we failed to match it + return None + + +class BuildTarget: + + def __init__(self, name, builder_class, **kwargs): + """ Sets up a new build tareget starting with the given builder class + and initial arguments + """ + self.name = name.lower() + self.builder_class = builder_class + self.create_kw_args = kwargs + + # a list of sub_targets for this builder + # sub-targets MUST be selected in some way. For example for esp32, we may + # have a format of esp32-{devkitc, m5stack}-{light,lock}: + # - esp32-m5stack-lock is OK + # - esp32-devkitc-light is OK + # - esp32-light is NOT ok + # - esp32-m5stack is NOT ok + self.fixed_targets: list[list[TargetPart]] = [] + + # a list of all available modifiers for this build target + # Modifiers can be combined in any way + self.modifiers: list[TargetPart] = [] + + def AppendFixedTargets(self, parts: list[TargetPart]): + """Append a list of potential targets/variants. + + Example: + + target = BuildTarget('linux', LinuxBuilder) + target.AppendFixedTargets([ + TargetPart(name='x64', board=HostBoard.X64), + TargetPart(name='x86', board=HostBoard.X86), + TargetPart(name='arm64', board=HostBoard.ARM64), + ]) + + target.AppendFixedTargets([ + TargetPart(name='light', app=HostApp.LIGHT), + TargetPart(name='lock', app=HostApp.LIGHT).ExceptIfRe("-arm64-"), + TargetPart(name='shell', app=HostApp.LIGHT).OnlyIfRe("-(x64|arm64)-"), + ]) + + The above will accept: + linux-x64-light + linux-x86-light + linux-arm64-light + linux-x64-lock + linux-x86-lock + linux-x64-shell + linux-arm64-shell + """ + self.fixed_targets.append(parts) + + def AppendModifier(self, name: str, **kargs): + """Appends a specific modifier to a build target. For example: + + target.AppendModifier(name='release', release=True) + target.AppendModifier(name='clang', use_clang=True) + target.AppendModifier(name='coverage', coverage=True).OnlyIfRe('-clang') + + """ + part = TargetPart(name, **kargs) + + self.modifiers.append(part) + + return part + + def HumanString(self): + """Prints out the human-readable string of the available variants and modifiers: + + like: + + foo-{bar,baz}[-modifier1][modifier2][modifier3] + foo-bar-{a,b,c}[-m1][-m2] + """ + result = self.name + for fixed in self.fixed_targets: + if len(fixed) > 1: + result += '-{' + ",".join(map(lambda x: x.name, fixed)) + '}' + else: + result += '-' + fixed[0].name + + for modifier in self.modifiers: + result += f"[-{modifier.name}]" + + return result + + def AllVariants(self) -> Iterable[str]: + """Returns all possible accepted variants by this target. + + For example name-{a,b}-{c,d}[-1][-2] could return (there may be Only/ExceptIfRe rules): + + name-a-c + name-a-c-1 + name-a-c-2 + name-a-c-1-2 + name-a-d + name-a-d-1 + ... + name-b-d-2 + name-b-d-1-2 + + Notice that this DOES increase exponentially and is potentially a very long list + """ + + # Output is made out of 2 separate parts: + # - a valid combination of "fixed parts" + # - a combination of modifiers + + fixed_indices = [0]*len(self.fixed_targets) + + while True: + + prefix = "-".join(map( + lambda p: self.fixed_targets[p[0]][p[1]].name, enumerate(fixed_indices) + )) + + for n in range(len(self.modifiers) + 1): + for c in itertools.combinations(self.modifiers, n): + suffix = "" + for m in c: + suffix += "-" + m.name + option = f"{self.name}-{prefix}{suffix}" + + if self.StringIntoTargetParts(option) is not None: + yield option + + # Move to the next index in fixed_indices or exit loop if we cannot move + move_idx = len(fixed_indices) - 1 + while move_idx >= 0: + if fixed_indices[move_idx] + 1 < len(self.fixed_targets[move_idx]): + fixed_indices[move_idx] += 1 + break + + # need to move the previous value + fixed_indices[move_idx] = 0 + move_idx -= 1 + + if move_idx < 0: + # done iterating through all + return + + def StringIntoTargetParts(self, value: str): + """Given an input string, process through all the input rules and return + the underlying list of target parts for the input. + """ + suffix = _HasVariantPrefix(value, self.name) + if not suffix: + return None + + return _StringIntoParts(value, suffix, self.fixed_targets, self.modifiers) + + def Create(self, name: str, runner, repository_path: str, output_prefix: str, + enable_flashbundle: bool): + + parts = self.StringIntoTargetParts(name) + + if not parts: + return None + + kargs = {} + for part in parts: + kargs.update(part.build_arguments) + + logging.info("Preparing builder '%s'" % (name,)) + + builder = self.builder_class(repository_path, runner=runner, **kargs) + builder.target = self + builder.identifier = name + builder.output_dir = os.path.join(output_prefix, name) + builder.chip_dir = repository_path + builder.enable_flashbundle(enable_flashbundle) + + return builder diff --git a/scripts/build/build/targets.py b/scripts/build/build/targets.py index 033d6fe758ad1f..48021ff270a395 100755 --- a/scripts/build/build/targets.py +++ b/scripts/build/build/targets.py @@ -13,8 +13,11 @@ # limitations under the License. import os +import re from itertools import combinations -from typing import List +from typing import List, Any, Optional + +from .target import BuildTarget, TargetPart from builders.ameba import AmebaApp, AmebaBoard, AmebaBuilder from builders.android import AndroidApp, AndroidBoard, AndroidBuilder @@ -37,663 +40,496 @@ from builders.genio import GenioApp, GenioBuilder -class Target: - """Represents a build target: - Has a name identifier plus parameters on how to build it (what - builder class to use and what arguments are required to produce - the specified build) - """ - - def __init__(self, name, builder_class, **kwargs): - self.name = name - self.builder_class = builder_class - self.glob_blacklist_reason = None - - self.create_kw_args = kwargs - - def Clone(self): - """Creates a clone of self.""" - - clone = Target(self.name, self.builder_class, - **self.create_kw_args.copy()) - clone.glob_blacklist_reason = self.glob_blacklist_reason - - return clone - - def Extend(self, suffix, **kargs): - """Creates a clone of the current object extending its build parameters. - Arguments: - suffix: appended with a "-" as separator to the clone name - **kargs: arguments needed to produce the new build variant - """ - clone = self.Clone() - clone.name += "-" + suffix - clone.create_kw_args.update(kargs) - return clone - - def Create(self, runner, repository_path: str, output_prefix: str, - enable_flashbundle: bool): - builder = self.builder_class( - repository_path, runner=runner, **self.create_kw_args) - - builder.target = self - builder.identifier = self.name - builder.output_dir = os.path.join(output_prefix, self.name) - builder.chip_dir = repository_path - builder.enable_flashbundle(enable_flashbundle) - - return builder - - def GlobBlacklist(self, reason): - clone = self.Clone() - if clone.glob_blacklist_reason: - clone.glob_blacklist_reason += ", " - clone.glob_blacklist_reason += reason - else: - clone.glob_blacklist_reason = reason - - return clone - - @property - def IsGlobBlacklisted(self): - return self.glob_blacklist_reason is not None - - @property - def GlobBlacklistReason(self): - return self.glob_blacklist_reason +def BuildHostTestRunnerTarget(): + target = BuildTarget(HostBoard.NATIVE.PlatformName(), HostBuilder) + target.AppendFixedTargets([ + TargetPart(HostBoard.NATIVE.BoardName(), board=HostBoard.NATIVE), + ]) -class AcceptAnyName: - def Accept(self, name: str): - return True + target.AppendFixedTargets([ + TargetPart('efr32-test-runner', app=HostApp.EFR32_TEST_RUNNER) + ]) + target.AppendModifier('clang', use_clang=True) -class AcceptNameWithSubstrings: - def __init__(self, substr: List[str]): - self.substr = substr + return target - def Accept(self, name: str): - for s in self.substr: - if s in name: - return True - return False - - -class RejectNameWithSubstrings: - def __init__(self, substr: List[str]): - self.substr = substr - - def Accept(self, name: str): - for s in self.substr: - if s in name: - return False - return True +def BuildHostFakeTarget(): + target = BuildTarget(HostBoard.NATIVE.PlatformName(), HostBuilder) -class BuildVariant: - def __init__(self, name: str, validator=AcceptAnyName(), - conflicts: List[str] = [], requires: List[str] = [], - **buildargs): - self.name = name - self.validator = validator - self.conflicts = conflicts - self.buildargs = buildargs - self.requires = requires - + target.AppendFixedTargets([ + TargetPart('fake', board=HostBoard.FAKE), + ]) -def HasConflicts(items: List[BuildVariant]) -> bool: - for a, b in combinations(items, 2): - if (a.name in b.conflicts) or (b.name in a.conflicts): - return True - return False + target.AppendFixedTargets([ + TargetPart('tests', app=HostApp.TESTS), + ]) + target.AppendModifier("mbedtls", crypto_library=HostCryptoLibrary.MBEDTLS).ExceptIfRe('-mbedtls') + target.AppendModifier("boringssl", crypto_library=HostCryptoLibrary.BORINGSSL).ExceptIfRe('-boringssl') + target.AppendModifier("asan", use_asan=True).ExceptIfRe("-tsan") + target.AppendModifier("tsan", use_tsan=True).ExceptIfRe("-asan") + target.AppendModifier("libfuzzer", use_tsan=True).OnlyIfRe("-clang") + target.AppendModifier('coverage', use_coverage=True).OnlyIfRe('-(chip-tool|all-clusters)') + target.AppendModifier('dmalloc', use_dmalloc=True) + target.AppendModifier('clang', use_clang=True) -def AllRequirementsMet(items: List[BuildVariant]) -> bool: - """ - Check that item.requires is satisfied for all items in the given list - """ - available = set([item.name for item in items]) + return target - for item in items: - for requirement in item.requires: - if requirement not in available: - return False - - return True - - -class VariantBuilder: - """Handles creating multiple build variants based on a starting target. - """ - def __init__(self, targets: List[Target] = []): - # note the clone in case the default arg is used - self.targets = targets[:] - self.variants = [] - self.glob_whitelist = [] +def BuildHostTarget(): + native_board_name = HostBoard.NATIVE.BoardName() + cross_compile = (HostBoard.NATIVE.PlatformName() == 'linux') and (native_board_name != HostBoard.ARM64.BoardName()) - def WhitelistVariantNameForGlob(self, name): - """ - Whitelist the specified variant to be allowed for globbing. + target = BuildTarget(HostBoard.NATIVE.PlatformName(), HostBuilder) - By default we do not want a 'build all' to select all variants, so - variants are generally glob-blacklisted. - """ - self.glob_whitelist.append(name) + board_parts = [ + TargetPart(native_board_name, board=HostBoard.NATIVE), + ] - def AppendVariant(self, **args): - """ - Add another variant to accepted variants. Arguments are construction - variants to BuildVariant. + if cross_compile: + board_parts.append(TargetPart('arm64', board=HostBoard.ARM64).OnlyIfRe('-(clang|nodeps)')) + + target.AppendFixedTargets(board_parts) + + # Add all the applications + app_parts = [ + TargetPart('rpc-console', app=HostApp.RPC_CONSOLE).OnlyIfRe(f'{native_board_name}-'), + TargetPart('all-clusters', app=HostApp.ALL_CLUSTERS), + TargetPart('all-clusters-minimal', app=HostApp.ALL_CLUSTERS), + TargetPart('chip-tool', app=HostApp.CHIP_TOOL), + TargetPart('thermostat', app=HostApp.THERMOSTAT), + TargetPart('minmdns', app=HostApp.MIN_MDNS), + TargetPart('light', app=HostApp.LIGHT), + TargetPart('light-rpc', app=HostApp.LIGHT, enable_rpcs=True), + TargetPart('lock', app=HostApp.LOCK), + TargetPart('shell', app=HostApp.SHELL), + TargetPart('ota-provider', app=HostApp.OTA_PROVIDER, enable_ble=False), + TargetPart('ota-requestor', app=HostApp.OTA_REQUESTOR, enable_ble=False), + TargetPart('python-bindings', app=HostApp.PYTHON_BINDINGS), + TargetPart('tv-app', app=HostApp.TV_APP), + TargetPart('tv-casting-app', app=HostApp.TV_CASTING), + TargetPart('bridge', app=HostApp.BRIDGE), + TargetPart('dynamic-bridge', app=HostApp.DYNAMIC_BRIDGE), + TargetPart('tests', app=HostApp.TESTS), + TargetPart('chip-cert', app=HostApp.CERT_TOOL), + TargetPart('address-resolve-tool', app=HostApp.ADDRESS_RESOLVE), + ] - Example usage: + if (HostBoard.NATIVE.PlatformName() == 'darwin'): + app_parts.append(TargetPart('darwin-framework-tool', app=HostApp.CHIP_TOOL_DARWIN)) + + target.AppendFixedTargets(app_parts) + + target.AppendModifier('nodeps', enable_ble=False, enable_wifi=False, enable_thread=False, + crypto_library=HostCryptoLibrary.MBEDTLS, use_clang=True).ExceptIfRe('-(clang|noble|boringssl|mbedtls)') + + target.AppendModifier('libnl', minmdns_address_policy="libnl").OnlyIfRe('-minmdns') + target.AppendModifier('same-event-loop', separate_event_loop=False).OnlyIfRe('-(chip-tool|darwin-framework-tool)') + target.AppendModifier('no-interactive', interactive_mode=False).OnlyIfRe('-chip-tool') + target.AppendModifier("ipv6only", enable_ipv4=False) + target.AppendModifier("no-ble", enable_ble=False) + target.AppendModifier("no-wifi", enable_wifi=False) + target.AppendModifier("no-thread", enable_thread=False) + target.AppendModifier("mbedtls", crypto_library=HostCryptoLibrary.MBEDTLS).ExceptIfRe('-mbedtls') + target.AppendModifier("boringssl", crypto_library=HostCryptoLibrary.BORINGSSL).ExceptIfRe('-boringssl') + target.AppendModifier("asan", use_asan=True).ExceptIfRe("-tsan") + target.AppendModifier("tsan", use_tsan=True).ExceptIfRe("-asan") + target.AppendModifier("libfuzzer", use_tsan=True).OnlyIfRe("-clang") + target.AppendModifier('coverage', use_coverage=True).OnlyIfRe('-(chip-tool|all-clusters)') + target.AppendModifier('dmalloc', use_dmalloc=True) + target.AppendModifier('clang', use_clang=True) + target.AppendModifier('test', extra_tests=True) + + return target + + +def BuildEsp32Target(): + target = BuildTarget('esp32', Esp32Builder) + + # boards + target.AppendFixedTargets([ + TargetPart('m5stack', board=Esp32Board.M5Stack).OnlyIfRe('-(all-clusters|ota-requestor)'), + TargetPart('c3devkit', board=Esp32Board.C3DevKit), + TargetPart('devkitc', board=Esp32Board.DevKitC), + TargetPart('qemu', board=Esp32Board.QEMU).OnlyIfRe('-tests'), + ]) + + # applications + target.AppendFixedTargets([ + TargetPart('all-clusters', app=Esp32App.ALL_CLUSTERS), + TargetPart('all-clusters-minimal', app=Esp32App.ALL_CLUSTERS_MINIMAL), + TargetPart('ota-requestor', app=Esp32App.OTA_REQUESTOR), + TargetPart('ota-requestor', app=Esp32App.OTA_REQUESTOR), + TargetPart('shell', app=Esp32App.SHELL), + TargetPart('light', app=Esp32App.LIGHT), + TargetPart('lock', app=Esp32App.LOCK), + TargetPart('bridge', app=Esp32App.BRIDGE), + TargetPart('temperature-measurement', app=Esp32App.TEMPERATURE_MEASUREMENT), + TargetPart('ota-requestor', app=Esp32App.OTA_REQUESTOR), + TargetPart('tests', app=Esp32App.TESTS).OnlyIfRe('-qemu-'), + ]) + + target.AppendModifier('rpc', enable_rpcs=True) + target.AppendModifier('ipv6only', enable_ipv4=False) + + return target + + +def BuildEfr32Target(): + target = BuildTarget('efr32', Efr32Builder) + + # board + target.AppendFixedTargets([ + TargetPart('brd4161a', board=Efr32Board.BRD4161A), + TargetPart('brd4187c', board=Efr32Board.BRD4187C), + TargetPart('brd4163a', board=Efr32Board.BRD4163A), + TargetPart('brd4164a', board=Efr32Board.BRD4164A), + TargetPart('brd4166a', board=Efr32Board.BRD4166A), + TargetPart('brd4170a', board=Efr32Board.BRD4170A), + TargetPart('brd4186a', board=Efr32Board.BRD4186A), + TargetPart('brd4187a', board=Efr32Board.BRD4187A), + TargetPart('brd4304a', board=Efr32Board.BRD4304A), + ]) + + # apps + target.AppendFixedTargets([ + TargetPart('window-covering', app=Efr32App.WINDOW_COVERING), + TargetPart('switch', app=Efr32App.SWITCH), + TargetPart('unit-test', app=Efr32App.UNIT_TEST), + TargetPart('light', app=Efr32App.LIGHT), + TargetPart('lock', app=Efr32App.LOCK), + ]) + + target.AppendModifier('rpc', enable_rpcs=True) + target.AppendModifier('with-ota-requestor', enable_ota_requestor=True) + + return target + + +def BuildNrfNativeTarget(): + target = BuildTarget('nrf', NrfConnectBuilder) + + target.AppendFixedTargets([ + TargetPart('native-posix-64-tests', board=NrfBoard.NATIVE_POSIX_64, app=NrfApp.UNIT_TESTS), + ]) + + return target + + +def BuildNrfTarget(): + target = BuildTarget('nrf', NrfConnectBuilder) + + # board + target.AppendFixedTargets([ + TargetPart('nrf5340dk', board=NrfBoard.NRF5340DK), + TargetPart('nrf52840dk', board=NrfBoard.NRF52840DK), + TargetPart('nrf52840dongle').OnlyIfRe('-(all-clusters|light)'), + ]) + + # apps + target.AppendFixedTargets([ + TargetPart('all-clusters', app=NrfApp.ALL_CLUSTERS), + TargetPart('all-clusters-minimal', app=NrfApp.ALL_CLUSTERS_MINIMAL), + TargetPart('lock', app=NrfApp.LOCK), + TargetPart('light', app=NrfApp.LIGHT), + TargetPart('shell', app=NrfApp.SHELL), + TargetPart('pump', app=NrfApp.PUMP), + TargetPart('pump-controller', app=NrfApp.PUMP_CONTROLLER), + ]) + + target.AppendModifier('rpc', enable_rpcs=True) + + return target + + +def BuildAndroidTarget(): + target = BuildTarget('android', AndroidBuilder) + + # board + target.AppendFixedTargets([ + TargetPart('arm', board=AndroidBoard.ARM), + TargetPart('arm64', board=AndroidBoard.ARM64), + TargetPart('x86', board=AndroidBoard.X86), + TargetPart('x64', board=AndroidBoard.X64), + TargetPart('androidstudio-arm', board=AndroidBoard.AndroidStudio_ARM).OnlyIfRe('chip-tool'), + TargetPart('androidstudio-arm64', board=AndroidBoard.AndroidStudio_ARM64).OnlyIfRe('chip-tool'), + TargetPart('androidstudio-x86', board=AndroidBoard.AndroidStudio_X86).OnlyIfRe('chip-tool'), + TargetPart('androidstudio-x64', board=AndroidBoard.AndroidStudio_X64).OnlyIfRe('chip-tool'), + ]) + + # apps + target.AppendFixedTargets([ + TargetPart('chip-tool', app=AndroidApp.CHIP_TOOL), + TargetPart('chip-test', app=AndroidApp.CHIP_TEST), + TargetPart('tv-server', app=AndroidApp.TV_SERVER), + TargetPart('tv-casting-app', app=AndroidApp.TV_CASTING_APP), + ]) + + return target + + +def BuildMbedTarget(): + target = BuildTarget('mbed', MbedBuilder) + + # board + target.AppendFixedTargets([ + TargetPart('CY8CPROTO_062_4343W', board=MbedBoard.CY8CPROTO_062_4343W), + ]) + + # apps + target.AppendFixedTargets([ + TargetPart('lock', app=MbedApp.LOCK), + TargetPart('light', app=MbedApp.LIGHT), + TargetPart('all-clusters', app=MbedApp.ALL_CLUSTERS), + TargetPart('all-clusters-minimal', app=MbedApp.ALL_CLUSTERS_MINIMAL), + TargetPart('pigweed', app=MbedApp.PIGWEED), + TargetPart('shell', app=MbedApp.SHELL), + ]) + + # Modifiers + target.AppendModifier('release', profile=MbedProfile.RELEASE).ExceptIfRe('-(develop|debug)') + target.AppendModifier('develop', profile=MbedProfile.DEVELOP).ExceptIfRe('-(release|debug)') + target.AppendModifier('debug', profile=MbedProfile.DEBUG).ExceptIfRe('-(release|develop)') - builder.AppendVariant(name="ipv6only", enable_ipv4=False) - """ - self.variants.append(BuildVariant(**args)) + return target - def AllVariants(self): - """ - Yields a list of acceptable variants for the given targets. - Handles conflict resolution between build variants and globbing - whitelist targets. - """ - for target in self.targets: - yield target +def BuildInfineonTarget(): + target = BuildTarget('infineon', InfineonBuilder) - # skip variants that do not work for this target - ok_variants = [ - v for v in self.variants if v.validator.Accept(target.name)] + # board + target.AppendFixedTargets([ + TargetPart('psoc6', board=InfineonBoard.PSOC6BOARD) + ]) - # Build every possible variant - for variant_count in range(1, len(ok_variants) + 1): - for subgroup in combinations(ok_variants, variant_count): - if HasConflicts(subgroup): - continue + # apps + target.AppendFixedTargets([ + TargetPart('lock', app=InfineonApp.LOCK), + TargetPart('light', app=InfineonApp.LIGHT), + TargetPart('all-clusters', app=InfineonApp.ALL_CLUSTERS), + TargetPart('all-clusters-minimal', app=InfineonApp.ALL_CLUSTERS_MINIMAL), + ]) - if not AllRequirementsMet(subgroup): - continue + # modifiers + target.AppendModifier('ota', enable_ota_requestor=True) + target.AppendModifier('updateimage', update_image=True) - # Target ready to be created - no conflicts - variant_target = target.Clone() - for option in subgroup: - variant_target = variant_target.Extend( - option.name, **option.buildargs) + return target - # Only a few are whitelisted for globs - name = '-'.join([o.name for o in subgroup]) - if name not in self.glob_whitelist: - if not variant_target.IsGlobBlacklisted: - variant_target = variant_target.GlobBlacklist( - 'Reduce default build variants') - yield variant_target +def BuildAmebaTarget(): + target = BuildTarget('ameba', AmebaBuilder) + # board + target.AppendFixedTargets([ + TargetPart('amebad', board=AmebaBoard.AMEBAD), + ]) -def HostTargets(): - target = Target(HostBoard.NATIVE.PlatformName(), HostBuilder) - target_native = target.Extend(HostBoard.NATIVE.BoardName(), board=HostBoard.NATIVE) - - targets = [target_native] + # apps + target.AppendFixedTargets([ + TargetPart('all-clusters', app=AmebaApp.ALL_CLUSTERS), + TargetPart('all-clusters-minimal', app=AmebaApp.ALL_CLUSTERS_MINIMAL), + TargetPart('light', app=AmebaApp.LIGHT), + TargetPart('pigweed', app=AmebaApp.PIGWEED), + ]) - # x64 linux supports cross compile - cross_compile = (HostBoard.NATIVE.PlatformName() == 'linux') and (HostBoard.NATIVE.BoardName() != HostBoard.ARM64.BoardName()) - if cross_compile: - targets.append(target.Extend('arm64-clang', board=HostBoard.ARM64, use_clang=True)) - - app_targets = [] - - # Don't cross compile some builds - app_targets.append( - target_native.Extend('rpc-console', app=HostApp.RPC_CONSOLE)) - app_targets.append( - target_native.Extend('nl-test-runner', app=HostApp.NL_TEST_RUNNER)) - - for target in targets: - app_targets.append(target.Extend( - 'all-clusters', app=HostApp.ALL_CLUSTERS)) - app_targets.append(target.Extend( - 'all-clusters-minimal', app=HostApp.ALL_CLUSTERS_MINIMAL)) - if (HostBoard.NATIVE.PlatformName() == 'darwin'): - app_targets.append(target.Extend( - 'darwin-framework-tool', app=HostApp.CHIP_TOOL_DARWIN)) - app_targets.append(target.Extend('chip-tool', app=HostApp.CHIP_TOOL)) - app_targets.append(target.Extend('thermostat', app=HostApp.THERMOSTAT)) - app_targets.append(target.Extend('minmdns', app=HostApp.MIN_MDNS)) - app_targets.append(target.Extend('light', app=HostApp.LIGHT)) - app_targets.append(target.Extend('light-rpc', app=HostApp.LIGHT, enable_rpcs=True)) - app_targets.append(target.Extend('lock', app=HostApp.LOCK)) - app_targets.append(target.Extend('shell', app=HostApp.SHELL)) - app_targets.append(target.Extend( - 'ota-provider', app=HostApp.OTA_PROVIDER, enable_ble=False)) - app_targets.append(target.Extend( - 'ota-requestor', app=HostApp.OTA_REQUESTOR, enable_ble=False)) - app_targets.append(target.Extend('python-bindings', app=HostApp.PYTHON_BINDINGS)) - app_targets.append(target.Extend('tv-app', app=HostApp.TV_APP)) - app_targets.append(target.Extend('tv-casting-app', app=HostApp.TV_CASTING)) - app_targets.append(target.Extend('bridge', app=HostApp.BRIDGE)) - app_targets.append(target.Extend('dynamic-bridge', app=HostApp.DYNAMIC_BRIDGE)) - - nodeps_args = dict(enable_ble=False, enable_wifi=False, enable_thread=False, - crypto_library=HostCryptoLibrary.MBEDTLS, use_clang=True) - app_targets.append(target.Extend('chip-tool-nodeps', app=HostApp.CHIP_TOOL, **nodeps_args)) - app_targets.append(target.Extend('all-clusters-app-nodeps', app=HostApp.ALL_CLUSTERS, **nodeps_args)) - app_targets.append(target.Extend('ota-provider-nodeps', app=HostApp.OTA_PROVIDER, **nodeps_args)) - app_targets.append(target.Extend('ota-requestor-nodeps', app=HostApp.OTA_REQUESTOR, **nodeps_args)) - - builder = VariantBuilder() - - # Possible build variants. Note that number of potential - # builds is exponential here - builder.AppendVariant(name="libnl", validator=AcceptNameWithSubstrings( - ['-minmdns']), minmdns_address_policy="libnl"), - builder.AppendVariant(name="same-event-loop", validator=AcceptNameWithSubstrings( - ['-chip-tool', '-darwin-framework-tool']), separate_event_loop=False), - builder.AppendVariant(name="no-interactive", validator=AcceptNameWithSubstrings( - ['-chip-tool']), interactive_mode=False), - builder.AppendVariant(name="ipv6only", enable_ipv4=False), - builder.AppendVariant(name="no-ble", enable_ble=False), - builder.AppendVariant(name="no-wifi", enable_wifi=False), - builder.AppendVariant(name="no-thread", enable_thread=False), - builder.AppendVariant(name="mbedtls", conflicts=['boringssl'], crypto_library=HostCryptoLibrary.MBEDTLS), - builder.AppendVariant(name="boringssl", conflicts=['mbedtls'], crypto_library=HostCryptoLibrary.BORINGSSL), - builder.AppendVariant(name="tsan", conflicts=['asan'], use_tsan=True), - builder.AppendVariant(name="asan", conflicts=['tsan'], use_asan=True), - builder.AppendVariant(name="libfuzzer", requires=[ - "clang"], use_libfuzzer=True), - if cross_compile: - builder.AppendVariant(name="clang", use_clang=True, validator=RejectNameWithSubstrings( - ['arm64'] - )), - else: - builder.AppendVariant(name="clang", use_clang=True) - - builder.AppendVariant(name="test", extra_tests=True), - - builder.WhitelistVariantNameForGlob('ipv6only') - - for target in app_targets: - if ('-rpc-console' in target.name) or ('-python-bindings' in target.name) or ('nl-test-runner' in target.name): - # Single-variant builds - yield target - else: - builder.targets.append(target) - - for target in builder.AllVariants(): - yield target - - # limited subset for coverage - yield target_native.Extend('all-clusters-coverage', app=HostApp.ALL_CLUSTERS, use_coverage=True) - yield target_native.Extend('chip-tool-coverage', app=HostApp.CHIP_TOOL, use_coverage=True) - - # Without extra build variants - yield target_native.Extend('chip-cert', app=HostApp.CERT_TOOL) - yield target_native.Extend('address-resolve-tool', app=HostApp.ADDRESS_RESOLVE) - yield target_native.Extend('address-resolve-tool-clang', app=HostApp.ADDRESS_RESOLVE, - use_clang=True).GlobBlacklist("Reduce default build variants") - yield target_native.Extend('address-resolve-tool-platform-mdns', app=HostApp.ADDRESS_RESOLVE, - use_platform_mdns=True).GlobBlacklist("Reduce default build variants") - yield target_native.Extend('address-resolve-tool-platform-mdns-ipv6only', app=HostApp.ADDRESS_RESOLVE, - use_platform_mdns=True, enable_ipv4=False).GlobBlacklist("Reduce default build variants") - - yield target_native.Extend('tests', app=HostApp.TESTS) - yield target_native.Extend('tests-mbedtls', app=HostApp.TESTS, crypto_library=HostCryptoLibrary.MBEDTLS).GlobBlacklist("Non-default test") - yield target_native.Extend('tests-boringssl', app=HostApp.TESTS, crypto_library=HostCryptoLibrary.BORINGSSL).GlobBlacklist("Non-default test") - yield target_native.Extend('tests-coverage', app=HostApp.TESTS, use_coverage=True).GlobBlacklist("Non-default test") - yield target_native.Extend('tests-clang', app=HostApp.TESTS, use_clang=True).GlobBlacklist("Non-default test") - yield target_native.Extend('tests-clang-asan', app=HostApp.TESTS, use_clang=True, use_asan=True).GlobBlacklist("Non-default test") - yield target_native.Extend('tests-dmalloc', app=HostApp.TESTS, use_dmalloc=True).GlobBlacklist("Non-default test") - - test_target = Target(HostBoard.NATIVE.PlatformName(), HostBuilder) - yield test_target.Extend(HostBoard.FAKE.BoardName() + '-tests', board=HostBoard.FAKE, app=HostApp.TESTS) - - -def Esp32Targets(): - esp32_target = Target('esp32', Esp32Builder) - - yield esp32_target.Extend('m5stack-all-clusters', board=Esp32Board.M5Stack, app=Esp32App.ALL_CLUSTERS) - yield esp32_target.Extend('m5stack-all-clusters-ipv6only', board=Esp32Board.M5Stack, app=Esp32App.ALL_CLUSTERS, - enable_ipv4=False) - yield esp32_target.Extend('m5stack-all-clusters-rpc', board=Esp32Board.M5Stack, app=Esp32App.ALL_CLUSTERS, - enable_rpcs=True) - yield esp32_target.Extend('m5stack-all-clusters-rpc-ipv6only', board=Esp32Board.M5Stack, app=Esp32App.ALL_CLUSTERS, - enable_rpcs=True, enable_ipv4=False) - - yield esp32_target.Extend('m5stack-ota-requestor', board=Esp32Board.M5Stack, app=Esp32App.OTA_REQUESTOR) - yield esp32_target.Extend('m5stack-ota-requestor-rpc', board=Esp32Board.M5Stack, app=Esp32App.OTA_REQUESTOR, - enable_rpcs=True) - - yield esp32_target.Extend('c3devkit-all-clusters', board=Esp32Board.C3DevKit, app=Esp32App.ALL_CLUSTERS) - - yield esp32_target.Extend('m5stack-all-clusters-minimal', board=Esp32Board.M5Stack, app=Esp32App.ALL_CLUSTERS_MINIMAL) - yield esp32_target.Extend('m5stack-all-clusters-minimal-ipv6only', board=Esp32Board.M5Stack, app=Esp32App.ALL_CLUSTERS_MINIMAL, - enable_ipv4=False) - yield esp32_target.Extend('m5stack-all-clusters-minimal-rpc', board=Esp32Board.M5Stack, app=Esp32App.ALL_CLUSTERS_MINIMAL, - enable_rpcs=True) - yield esp32_target.Extend('m5stack-all-clusters-minimal-rpc-ipv6only', board=Esp32Board.M5Stack, app=Esp32App.ALL_CLUSTERS_MINIMAL, - enable_rpcs=True, enable_ipv4=False) - - yield esp32_target.Extend('c3devkit-all-clusters-minimal', board=Esp32Board.C3DevKit, app=Esp32App.ALL_CLUSTERS_MINIMAL) - - devkitc = esp32_target.Extend('devkitc', board=Esp32Board.DevKitC) - - yield devkitc.Extend('all-clusters', app=Esp32App.ALL_CLUSTERS) - yield devkitc.Extend('all-clusters-ipv6only', app=Esp32App.ALL_CLUSTERS, enable_ipv4=False) - yield devkitc.Extend('all-clusters-minimal', app=Esp32App.ALL_CLUSTERS_MINIMAL) - yield devkitc.Extend('all-clusters-minimal-ipv6only', app=Esp32App.ALL_CLUSTERS_MINIMAL, enable_ipv4=False) - yield devkitc.Extend('shell', app=Esp32App.SHELL) - yield devkitc.Extend('light', app=Esp32App.LIGHT) - yield devkitc.Extend('light-rpc', app=Esp32App.LIGHT, enable_rpcs=True) - yield devkitc.Extend('lock', app=Esp32App.LOCK) - yield devkitc.Extend('bridge', app=Esp32App.BRIDGE) - yield devkitc.Extend('temperature-measurement', app=Esp32App.TEMPERATURE_MEASUREMENT) - yield devkitc.Extend('temperature-measurement-rpc', app=Esp32App.TEMPERATURE_MEASUREMENT, enable_rpcs=True) - yield devkitc.Extend('ota-requestor', app=Esp32App.OTA_REQUESTOR) - yield devkitc.Extend('ota-requestor-rpc', app=Esp32App.OTA_REQUESTOR, enable_rpcs=True) - - yield esp32_target.Extend('qemu-tests', board=Esp32Board.QEMU, app=Esp32App.TESTS) - - -def Efr32Targets(): - efr_target = Target('efr32', Efr32Builder) - - board_targets = [ - efr_target.Extend('brd4161a', board=Efr32Board.BRD4161A), - efr_target.Extend('brd4187c', board=Efr32Board.BRD4187C), - efr_target.Extend('brd4163a', board=Efr32Board.BRD4163A).GlobBlacklist( - 'only user requested'), - efr_target.Extend('brd4164a', board=Efr32Board.BRD4164A).GlobBlacklist( - 'only user requested'), - efr_target.Extend('brd4166a', board=Efr32Board.BRD4166A).GlobBlacklist( - 'only user requested'), - efr_target.Extend('brd4170a', board=Efr32Board.BRD4170A).GlobBlacklist( - 'only user requested'), - efr_target.Extend('brd4186a', board=Efr32Board.BRD4186A).GlobBlacklist( - 'only user requested'), - efr_target.Extend('brd4187a', board=Efr32Board.BRD4187A).GlobBlacklist( - 'only user requested'), - efr_target.Extend('brd4304a', board=Efr32Board.BRD4304A).GlobBlacklist( - 'only user requested') - ] + return target - builder = VariantBuilder() - for board_target in board_targets: - builder.targets.append(board_target.Extend( - 'window-covering', app=Efr32App.WINDOW_COVERING)) - builder.targets.append(board_target.Extend( - 'switch', app=Efr32App.SWITCH)) - builder.targets.append(board_target.Extend( - 'unit-test', app=Efr32App.UNIT_TEST)) - builder.targets.append( - board_target.Extend('light', app=Efr32App.LIGHT)) - builder.targets.append(board_target.Extend('lock', app=Efr32App.LOCK)) +def BuildK32WTarget(): + target = BuildTarget('k32w', K32WBuilder) - # Possible build variants. Note that number of potential - # builds is exponential here - builder.AppendVariant(name="rpc", validator=AcceptNameWithSubstrings( - ['-light', '-lock']), enable_rpcs=True) - builder.AppendVariant(name="with-ota-requestor", enable_ota_requestor=True) + # apps + target.AppendFixedTargets([ + TargetPart('light', app=K32WApp.LIGHT, release=True), + TargetPart('shell', app=K32WApp.SHELL, release=True), + TargetPart('lock', app=K32WApp.LOCK, release=True), + TargetPart('contact', app=K32WApp.CONTACT, release=True), + ]) - builder.WhitelistVariantNameForGlob('rpc') + target.AppendModifier(name="no-ota", disable_ota=True) + target.AppendModifier(name="low-power", low_power=True).OnlyIfRe("-nologs") + target.AppendModifier(name="nologs", disable_logs=True) - for target in builder.AllVariants(): - yield target + return target -def NrfTargets(): - target = Target('nrf', NrfConnectBuilder) +def Buildcc13x2x7_26x2x7Target(): + target = BuildTarget('cc13x2x7_26x2x7', cc13x2x7_26x2x7Builder) - yield target.Extend('native-posix-64-tests', board=NrfBoard.NATIVE_POSIX_64, app=NrfApp.UNIT_TESTS) + # apps + target.AppendFixedTargets([ + TargetPart('all-clusters', app=cc13x2x7_26x2x7App.ALL_CLUSTERS), + TargetPart('all-clusters-minimal', app=cc13x2x7_26x2x7App.ALL_CLUSTERS_MINIMAL), + TargetPart('lock', app=cc13x2x7_26x2x7App.LOCK), + TargetPart('pump', app=cc13x2x7_26x2x7App.PUMP), + TargetPart('pump-controller', app=cc13x2x7_26x2x7App.PUMP_CONTROLLER), + TargetPart('shell', app=cc13x2x7_26x2x7App.SHELL), + ]) - targets = [ - target.Extend('nrf5340dk', board=NrfBoard.NRF5340DK), - target.Extend('nrf52840dk', board=NrfBoard.NRF52840DK), - ] - - # Enable nrf52840dongle for all-clusters and lighting app only - yield target.Extend('nrf52840dongle-all-clusters', board=NrfBoard.NRF52840DONGLE, app=NrfApp.ALL_CLUSTERS).GlobBlacklist('Out of flash when linking') - yield target.Extend('nrf52840dongle-all-clusters-minimal', board=NrfBoard.NRF52840DONGLE, app=NrfApp.ALL_CLUSTERS_MINIMAL) - yield target.Extend('nrf52840dongle-light', board=NrfBoard.NRF52840DONGLE, app=NrfApp.LIGHT) - - for target in targets: - yield target.Extend('all-clusters', app=NrfApp.ALL_CLUSTERS) - yield target.Extend('all-clusters-minimal', app=NrfApp.ALL_CLUSTERS_MINIMAL) - yield target.Extend('lock', app=NrfApp.LOCK) - yield target.Extend('light', app=NrfApp.LIGHT) - yield target.Extend('shell', app=NrfApp.SHELL) - yield target.Extend('pump', app=NrfApp.PUMP) - yield target.Extend('pump-controller', app=NrfApp.PUMP_CONTROLLER) - - rpc = target.Extend('light-rpc', app=NrfApp.LIGHT, enable_rpcs=True) - - if '-nrf5340dk-' in rpc.name: - rpc = rpc.GlobBlacklist( - 'Compile failure due to pw_build args not forwarded to proto compiler. ' - 'https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/66760') - - yield rpc - - -def AndroidTargets(): - target = Target('android', AndroidBuilder) - - yield target.Extend('arm-chip-tool', board=AndroidBoard.ARM, app=AndroidApp.CHIP_TOOL) - yield target.Extend('arm64-chip-tool', board=AndroidBoard.ARM64, app=AndroidApp.CHIP_TOOL) - yield target.Extend('x64-chip-tool', board=AndroidBoard.X64, app=AndroidApp.CHIP_TOOL) - yield target.Extend('x86-chip-tool', board=AndroidBoard.X86, app=AndroidApp.CHIP_TOOL) - yield target.Extend('arm64-chip-test', board=AndroidBoard.ARM64, app=AndroidApp.CHIP_TEST) - yield target.Extend('androidstudio-arm-chip-tool', board=AndroidBoard.AndroidStudio_ARM, app=AndroidApp.CHIP_TOOL) - yield target.Extend('androidstudio-arm64-chip-tool', board=AndroidBoard.AndroidStudio_ARM64, app=AndroidApp.CHIP_TOOL) - yield target.Extend('androidstudio-x86-chip-tool', board=AndroidBoard.AndroidStudio_X86, app=AndroidApp.CHIP_TOOL) - yield target.Extend('androidstudio-x64-chip-tool', board=AndroidBoard.AndroidStudio_X64, app=AndroidApp.CHIP_TOOL) - yield target.Extend('arm64-tv-server', board=AndroidBoard.ARM64, app=AndroidApp.TV_SERVER) - yield target.Extend('arm-tv-server', board=AndroidBoard.ARM, app=AndroidApp.TV_SERVER) - yield target.Extend('x86-tv-server', board=AndroidBoard.X86, app=AndroidApp.TV_SERVER) - yield target.Extend('x64-tv-server', board=AndroidBoard.X64, app=AndroidApp.TV_SERVER) - yield target.Extend('arm64-tv-casting-app', board=AndroidBoard.ARM64, app=AndroidApp.TV_CASTING_APP) - yield target.Extend('arm-tv-casting-app', board=AndroidBoard.ARM, app=AndroidApp.TV_CASTING_APP) - - -def MbedTargets(): - target = Target('mbed', MbedBuilder) - - targets = [ - target.Extend('CY8CPROTO_062_4343W', - board=MbedBoard.CY8CPROTO_062_4343W), - ] - - app_targets = [] - for target in targets: - app_targets.append(target.Extend('lock', app=MbedApp.LOCK)) - app_targets.append(target.Extend('light', app=MbedApp.LIGHT)) - app_targets.append(target.Extend( - 'all-clusters', app=MbedApp.ALL_CLUSTERS)) - app_targets.append(target.Extend( - 'all-clusters-minimal', app=MbedApp.ALL_CLUSTERS_MINIMAL)) - app_targets.append(target.Extend('pigweed', app=MbedApp.PIGWEED)) - app_targets.append(target.Extend('shell', app=MbedApp.SHELL)) - - for target in app_targets: - yield target.Extend('release', profile=MbedProfile.RELEASE) - yield target.Extend('develop', profile=MbedProfile.DEVELOP).GlobBlacklist( - 'Compile only for debugging purpose - ' - 'https://os.mbed.com/docs/mbed-os/latest/program-setup/build-profiles-and-rules.html') - yield target.Extend('debug', profile=MbedProfile.DEBUG).GlobBlacklist( - 'Compile only for debugging purpose - ' - 'https://os.mbed.com/docs/mbed-os/latest/program-setup/build-profiles-and-rules.html') + target.AppendModifier(name="ftd", openthread_ftd=True).ExceptIfRe("-mtd") + target.AppendModifier(name="mtd", openthread_ftd=False).ExceptIfRe("-ftd") + return target -def InfineonTargets(): - builder = VariantBuilder() - builder.AppendVariant(name="ota", enable_ota_requestor=True) - builder.AppendVariant(name="updateimage", update_image=True) - target = Target('infineon-psoc6', InfineonBuilder, board=InfineonBoard.PSOC6BOARD) +def BuildCyw30739Target(): + target = BuildTarget('cyw30739', Cyw30739Builder) - builder.targets.append(target.Extend('lock', app=InfineonApp.LOCK)) - builder.targets.append(target.Extend('light', app=InfineonApp.LIGHT)) - builder.targets.append(target.Extend('all-clusters', app=InfineonApp.ALL_CLUSTERS)) - builder.targets.append(target.Extend('all-clusters-minimal', app=InfineonApp.ALL_CLUSTERS_MINIMAL)) + # board + target.AppendFixedTargets([ + TargetPart('cyw930739m2evb_01', board=Cyw30739Board.CYW930739M2EVB_01), + ]) - for target in builder.AllVariants(): - yield target + # apps + target.AppendFixedTargets([ + TargetPart('light', app=Cyw30739App.LIGHT), + TargetPart('lock', app=Cyw30739App.LOCK), + TargetPart('ota-requestor', app=Cyw30739App.OTA_REQUESTOR), + ]) + target.AppendModifier(name="no-progress-logging", progress_logging=False) -def AmebaTargets(): - ameba_target = Target('ameba', AmebaBuilder) + return target - yield ameba_target.Extend('amebad-all-clusters', board=AmebaBoard.AMEBAD, app=AmebaApp.ALL_CLUSTERS) - yield ameba_target.Extend('amebad-all-clusters-minimal', board=AmebaBoard.AMEBAD, app=AmebaApp.ALL_CLUSTERS_MINIMAL) - yield ameba_target.Extend('amebad-light', board=AmebaBoard.AMEBAD, app=AmebaApp.LIGHT) - yield ameba_target.Extend('amebad-pigweed', board=AmebaBoard.AMEBAD, app=AmebaApp.PIGWEED) +def BuildQorvoTarget(): + target = BuildTarget('qpg', QpgBuilder) -def K32WTargets(): - target = Target('k32w', K32WBuilder) + # board + target.AppendFixedTargets([ + TargetPart('qpg6105', board=QpgBoard.QPG6105), + ]) - yield target.Extend('light-ota-se', app=K32WApp.LIGHT, release=True, disable_ble=True, se05x=True).GlobBlacklist("Only on demand build") - yield target.Extend('light-release-no-ota', app=K32WApp.LIGHT, tokenizer=True, disable_ota=True, release=True, tinycrypt=True) - yield target.Extend('shell-release', app=K32WApp.SHELL, disable_logs=True, release=True) - yield target.Extend('lock-release', app=K32WApp.LOCK, release=True) - yield target.Extend('lock-low-power-release', app=K32WApp.LOCK, - low_power=True, disable_logs=True, release=True).GlobBlacklist("Only on demand build") - yield target.Extend('contact-release', app=K32WApp.CONTACT, tokenizer=True, release=True, tinycrypt=True) - yield target.Extend('contact-low-power-release', app=K32WApp.CONTACT, tokenizer=True, tinycrypt=True, - low_power=True, disable_logs=True, release=True).GlobBlacklist("Only on demand build") + # apps + target.AppendFixedTargets([ + TargetPart('lock', app=QpgApp.LOCK), + TargetPart('light', app=QpgApp.LIGHT), + TargetPart('shell', app=QpgApp.SHELL), + TargetPart('persistent-storage', app=QpgApp.PERSISTENT_STORAGE), + ]) + return target -def cc13x2x7_26x2x7Targets(): - target = Target('cc13x2x7_26x2x7', cc13x2x7_26x2x7Builder) - yield target.Extend('lock-ftd', app=cc13x2x7_26x2x7App.LOCK, openthread_ftd=True) - yield target.Extend('lock-mtd', app=cc13x2x7_26x2x7App.LOCK, openthread_ftd=False) - yield target.Extend('pump', app=cc13x2x7_26x2x7App.PUMP) - yield target.Extend('pump-controller', app=cc13x2x7_26x2x7App.PUMP_CONTROLLER) - yield target.Extend('all-clusters', app=cc13x2x7_26x2x7App.ALL_CLUSTERS) - yield target.Extend('all-clusters-minimal', app=cc13x2x7_26x2x7App.ALL_CLUSTERS_MINIMAL) - yield target.Extend('shell', app=cc13x2x7_26x2x7App.SHELL) +def BuildTizenTarget(): + target = BuildTarget('tizen', TizenBuilder) + # board + target.AppendFixedTargets([ + TargetPart('arm', board=TizenBoard.ARM), + ]) -def Cyw30739Targets(): - yield Target('cyw30739-cyw930739m2evb_01-light', Cyw30739Builder, - board=Cyw30739Board.CYW930739M2EVB_01, app=Cyw30739App.LIGHT) - yield Target('cyw30739-cyw930739m2evb_01-lock', Cyw30739Builder, - board=Cyw30739Board.CYW930739M2EVB_01, app=Cyw30739App.LOCK) - yield Target('cyw30739-cyw930739m2evb_01-ota-requestor', Cyw30739Builder, - board=Cyw30739Board.CYW930739M2EVB_01, app=Cyw30739App.OTA_REQUESTOR).GlobBlacklist( - "Running out of XIP flash space") - yield Target('cyw30739-cyw930739m2evb_01-ota-requestor-no-progress-logging', Cyw30739Builder, - board=Cyw30739Board.CYW930739M2EVB_01, app=Cyw30739App.OTA_REQUESTOR, progress_logging=False) + # apps + target.AppendFixedTargets([ + TargetPart('all-clusters', app=TizenApp.ALL_CLUSTERS), + TargetPart('all-clusters-minimal', app=TizenApp.ALL_CLUSTERS_MINIMAL), + TargetPart('chip-tool', app=TizenApp.CHIP_TOOL), + TargetPart('light', app=TizenApp.LIGHT), + ]) + target.AppendModifier(name="no-ble", enable_ble=False) + target.AppendModifier(name="no-wifi", enable_wifi=False) + target.AppendModifier(name="asan", use_asan=True) -def QorvoTargets(): - target = Target('qpg', QpgBuilder) + return target - yield target.Extend('lock', board=QpgBoard.QPG6105, app=QpgApp.LOCK) - yield target.Extend('light', board=QpgBoard.QPG6105, app=QpgApp.LIGHT) - yield target.Extend('shell', board=QpgBoard.QPG6105, app=QpgApp.SHELL) - yield target.Extend('persistent-storage', board=QpgBoard.QPG6105, app=QpgApp.PERSISTENT_STORAGE) +def BuildBl602Target(): + target = BuildTarget('bl602', Bl602Builder) -def TizenTargets(): + target.AppendFixedTargets([ + TargetPart('light', board=Bl602Board.BL602BOARD, app=Bl602App.LIGHT), + ]) - # Possible build variants. - # NOTE: The number of potential builds is exponential here. - builder = VariantBuilder() - builder.AppendVariant(name="no-ble", enable_ble=False) - builder.AppendVariant(name="no-wifi", enable_wifi=False) - builder.AppendVariant(name="asan", use_asan=True) + return target - target = Target('tizen-arm', TizenBuilder, board=TizenBoard.ARM) - builder.targets.append(target.Extend('all-clusters', app=TizenApp.ALL_CLUSTERS)) - builder.targets.append(target.Extend('all-clusters-minimal', app=TizenApp.ALL_CLUSTERS_MINIMAL)) - builder.targets.append(target.Extend('chip-tool', app=TizenApp.CHIP_TOOL)) - builder.targets.append(target.Extend('light', app=TizenApp.LIGHT)) +def BuildBouffalolabTarget(): + target = BuildTarget('bouffalolab', BouffalolabBuilder) - for target in builder.AllVariants(): - yield target + # Boards + target.AppendFixedTargets([ + TargetPart('BL706-IoT-DVK', board=BouffalolabBoard.BL706_IoT_DVK, module_type="BL706C-22"), + TargetPart('BL706-NIGHT-LIGHT', board=BouffalolabBoard.BL706_NIGHT_LIGHT, module_type="BL702"), + ]) + # Apps + target.AppendFixedTargets([ + TargetPart('light', app=BouffalolabApp.LIGHT), + ]) -def Bl602Targets(): - target = Target('bl602', Bl602Builder) + target.AppendModifier('rpc', enable_rpcs=True) - yield target.Extend('light', board=Bl602Board.BL602BOARD, app=Bl602App.LIGHT) + return target -def BouffalolabTargets(): - target = Target('bouffalolab', BouffalolabBuilder) +def BuildIMXTarget(): + target = BuildTarget('imx', IMXBuilder) - yield target.Extend('BL706-IoT-DVK-light', board=BouffalolabBoard.BL706_IoT_DVK, app=BouffalolabApp.LIGHT, enable_rpcs=False, module_type="BL706C-22") - yield target.Extend('BL706-IoT-DVK-light-rpc', board=BouffalolabBoard.BL706_IoT_DVK, app=BouffalolabApp.LIGHT, enable_rpcs=True, module_type="BL706C-22") - yield target.Extend('BL706-NIGHT-LIGHT-light', board=BouffalolabBoard.BL706_NIGHT_LIGHT, app=BouffalolabApp.LIGHT, enable_rpcs=False, module_type="BL702") + target.AppendFixedTargets([ + TargetPart('chip-tool', app=IMXApp.CHIP_TOOL), + TargetPart('lighting-app', app=IMXApp.LIGHT), + TargetPart('thermostat', app=IMXApp.THERMOSTAT), + TargetPart('all-clusters-app', app=IMXApp.ALL_CLUSTERS), + TargetPart('all-clusters-minimal-app', app=IMXApp.ALL_CLUSTERS_MINIMAL), + TargetPart('ota-provider-app', app=IMXApp.OTA_PROVIDER), + ]) + target.AppendModifier('release', release=True) -def IMXTargets(): - target = Target('imx', IMXBuilder) + return target - yield target.Extend('chip-tool', app=IMXApp.CHIP_TOOL) - yield target.Extend('lighting-app', app=IMXApp.LIGHT) - yield target.Extend('thermostat', app=IMXApp.THERMOSTAT) - yield target.Extend('all-clusters-app', app=IMXApp.ALL_CLUSTERS) - yield target.Extend('all-clusters-minimal-app', app=IMXApp.ALL_CLUSTERS_MINIMAL) - yield target.Extend('ota-provider-app', app=IMXApp.OTA_PROVIDER) - yield target.Extend('chip-tool-release', app=IMXApp.CHIP_TOOL, release=True) - yield target.Extend('lighting-app-release', app=IMXApp.LIGHT, release=True) - yield target.Extend('thermostat-release', app=IMXApp.THERMOSTAT, release=True) - yield target.Extend('all-clusters-app-release', app=IMXApp.ALL_CLUSTERS, release=True) - yield target.Extend('all-clusters-minimal-app-release', app=IMXApp.ALL_CLUSTERS_MINIMAL, release=True) - yield target.Extend('ota-provider-app-release', app=IMXApp.OTA_PROVIDER, release=True) +def BuildMW320Target(): + target = BuildTarget('mw320', MW320Builder) + target.AppendFixedTargets([TargetPart('all-clusters-app', app=MW320App.ALL_CLUSTERS)]) + return target -def MW320Targets(): - target = Target('mw320', MW320Builder) - yield target.Extend('all-clusters-app', app=MW320App.ALL_CLUSTERS) +def BuildGenioTarget(): + target = BuildTarget('genio', GenioBuilder) + target.AppendFixedTargets([TargetPart('lighting-app', app=GenioApp.LIGHT)]) + return target -def GenioTargets(): - target = Target('genio', GenioBuilder) +def BuildTelinkTarget(): + target = BuildTarget('telink', TelinkBuilder) + target.AppendFixedTargets([TargetPart('tlsr9518adk80d', board=TelinkBoard.TLSR9518ADK80D)]) - yield target.Extend('lighting-app', app=GenioApp.LIGHT) + target.AppendFixedTargets([ + TargetPart('light', app=TelinkApp.LIGHT), + TargetPart('light-switch', app=TelinkApp.SWITCH), + TargetPart('ota-requestor', app=TelinkApp.OTA_REQUESTOR), + ]) + return target -ALL = [] -target_generators = [ - HostTargets(), - Esp32Targets(), - Efr32Targets(), - NrfTargets(), - AndroidTargets(), - MbedTargets(), - InfineonTargets(), - AmebaTargets(), - K32WTargets(), - cc13x2x7_26x2x7Targets(), - Cyw30739Targets(), - QorvoTargets(), - TizenTargets(), - Bl602Targets(), - BouffalolabTargets(), - IMXTargets(), - MW320Targets(), - GenioTargets(), +BUILD_TARGETS = [ + BuildAmebaTarget(), + BuildAndroidTarget(), + BuildBl602Target(), + BuildBouffalolabTarget(), + Buildcc13x2x7_26x2x7Target(), + BuildCyw30739Target(), + BuildEfr32Target(), + BuildEsp32Target(), + BuildGenioTarget(), + BuildHostFakeTarget(), + BuildHostTarget(), + BuildHostTestRunnerTarget(), + BuildIMXTarget(), + BuildInfineonTarget(), + BuildK32WTarget(), + BuildMbedTarget(), + BuildMW320Target(), + BuildNrfTarget(), + BuildNrfNativeTarget(), + BuildQorvoTarget(), + BuildTizenTarget(), + BuildTelinkTarget(), ] - -for generator in target_generators: - for target in generator: - ALL.append(target) - -# Simple targets added one by one -ALL.append(Target('telink-tlsr9518adk80d-light', TelinkBuilder, - board=TelinkBoard.TLSR9518ADK80D, app=TelinkApp.LIGHT)) -ALL.append(Target('telink-tlsr9518adk80d-light-switch', TelinkBuilder, - board=TelinkBoard.TLSR9518ADK80D, app=TelinkApp.SWITCH)) -ALL.append(Target('telink-tlsr9518adk80d-ota-requestor', TelinkBuilder, - board=TelinkBoard.TLSR9518ADK80D, app=TelinkApp.OTA_REQUESTOR)) - -# have a consistent order overall -ALL.sort(key=lambda t: t.name) diff --git a/scripts/build/build/test_target.py b/scripts/build/build/test_target.py new file mode 100755 index 00000000000000..334e56720f3eb2 --- /dev/null +++ b/scripts/build/build/test_target.py @@ -0,0 +1,158 @@ +#!/usr/bin/env python +# Copyright (c) 2022 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import unittest + +try: + from build.target import * +except: + import sys + import os + + sys.path.append(os.path.abspath(os.path.dirname(__file__))) + from target import * + + +class FakeBuilder: + def __init__(self, **kargs): + self.kargs = kargs + + +class TestGlobMatcher(unittest.TestCase): + + def test_one_fixed_target(self): + t = BuildTarget('fake', FakeBuilder) + t.AppendFixedTargets([ + TargetPart('foo', foo=1), + TargetPart('bar', bar=2), + ]) + + self.assertEqual(t.HumanString(), "fake-{foo,bar}") + + self.assertIsNotNone(t.StringIntoTargetParts('fake-foo')) + self.assertIsNotNone(t.StringIntoTargetParts('fake-bar')) + self.assertIsNone(t.StringIntoTargetParts('fake-baz')) + + def test_fixed_targets(self): + t = BuildTarget('fake', FakeBuilder) + t.AppendFixedTargets([ + TargetPart('foo', foo=1), + TargetPart('bar', bar=2), + ]) + t.AppendFixedTargets([ + TargetPart('1', a=1), + TargetPart('2', a=2), + TargetPart('3', a=3), + ]) + t.AppendFixedTargets([ + TargetPart('1', b=1), + TargetPart('2', b=2), + TargetPart('3', b=3), + ]) + + self.assertEqual( + t.HumanString(), + "fake-{foo,bar}-{1,2,3}-{1,2,3}" + ) + + self.assertIsNotNone(t.StringIntoTargetParts('fake-foo-1-2')) + self.assertIsNotNone(t.StringIntoTargetParts('fake-foo-2-3')) + self.assertIsNotNone(t.StringIntoTargetParts('fake-bar-3-1')) + self.assertIsNone(t.StringIntoTargetParts('fake-bar-1')) + self.assertIsNone(t.StringIntoTargetParts('fake-baz-1-2')) + self.assertIsNone(t.StringIntoTargetParts('fake-foo-bar')) + self.assertIsNone(t.StringIntoTargetParts('fake-1-2')) + self.assertIsNone(t.StringIntoTargetParts('fake-foo')) + self.assertIsNone(t.StringIntoTargetParts('fake-1-2-3')) + + def test_modifiers(self): + t = BuildTarget('fake', FakeBuilder) + t.AppendFixedTargets([ + TargetPart('foo', foo=1), + TargetPart('bar', bar=2), + ]) + + t.AppendFixedTargets([ + TargetPart('one', value=1), + TargetPart('two', value=2), + ]) + + t.AppendModifier('m1', m=1).ExceptIfRe('-m2') + t.AppendModifier('m2', m=2).ExceptIfRe('-m1') + t.AppendModifier('x1', x=1) + t.AppendModifier('y1', x=1).OnlyIfRe('-foo-') + + self.assertEqual( + t.HumanString(), + "fake-{foo,bar}-{one,two}[-m1][-m2][-x1][-y1]" + ) + + self.assertEqual( + set(t.AllVariants()), + { + 'fake-foo-one', + 'fake-foo-one-m1', + 'fake-foo-one-m1-x1', + 'fake-foo-one-m1-x1-y1', + 'fake-foo-one-m1-y1', + 'fake-foo-one-m2', + 'fake-foo-one-m2-x1', + 'fake-foo-one-m2-x1-y1', + 'fake-foo-one-m2-y1', + 'fake-foo-one-x1', + 'fake-foo-one-x1-y1', + 'fake-foo-one-y1', + 'fake-foo-two', + 'fake-foo-two-m1', + 'fake-foo-two-m1-x1', + 'fake-foo-two-m1-x1-y1', + 'fake-foo-two-m1-y1', + 'fake-foo-two-m2', + 'fake-foo-two-m2-x1', + 'fake-foo-two-m2-x1-y1', + 'fake-foo-two-m2-y1', + 'fake-foo-two-x1', + 'fake-foo-two-x1-y1', + 'fake-foo-two-y1', + 'fake-bar-one', + 'fake-bar-one-m1', + 'fake-bar-one-m1-x1', + 'fake-bar-one-m2', + 'fake-bar-one-m2-x1', + 'fake-bar-one-x1', + 'fake-bar-two', + 'fake-bar-two-m1', + 'fake-bar-two-m1-x1', + 'fake-bar-two-m2', + 'fake-bar-two-m2-x1', + 'fake-bar-two-x1', + } + ) + + self.assertIsNotNone(t.StringIntoTargetParts('fake-foo-one')) + self.assertIsNotNone(t.StringIntoTargetParts('fake-bar-one-m1')) + self.assertIsNotNone(t.StringIntoTargetParts('fake-foo-one-m2')) + self.assertIsNotNone(t.StringIntoTargetParts('fake-bar-one-x1')) + self.assertIsNotNone(t.StringIntoTargetParts('fake-foo-one-y1')) + self.assertIsNotNone(t.StringIntoTargetParts('fake-foo-one-m1-y1')) + + self.assertIsNone(t.StringIntoTargetParts('fake-bar-one-m1-y1')) + self.assertIsNone(t.StringIntoTargetParts('fake-foo-one-m1-m2')) + self.assertIsNone(t.StringIntoTargetParts('fake-bar-m1')) + self.assertIsNone(t.StringIntoTargetParts('fake-foo-x1-y1')) + + +if __name__ == '__main__': + unittest.main() diff --git a/scripts/build/build_examples.py b/scripts/build/build_examples.py index f9897a69a85589..b95a006c18458f 100755 --- a/scripts/build/build_examples.py +++ b/scripts/build/build_examples.py @@ -67,21 +67,9 @@ def ValidateRepoPath(context, parameter, value): help='Determines the verbosity of script output.') @click.option( '--target', - default=['all'], - type=click.Choice( - ['all'] + [t.name for t in build.ALL_TARGETS], case_sensitive=False), + default=[], multiple=True, - help='Build target(s). Note that "all" includes glob blacklisted targets' -) -@click.option( - '--target-glob', - default=None, - help='Glob matching for targets to include' -) -@click.option( - '--skip-target-glob', - default=None, - help='Glob matching for targets to explicitly exclude' + help='Build target(s)' ) @click.option( '--enable-flashbundle', @@ -120,7 +108,7 @@ def ValidateRepoPath(context, parameter, value): is_flag=True, help='Skip timestaps in log output') @click.pass_context -def main(context, log_level, target, target_glob, skip_target_glob, repo, +def main(context, log_level, target, repo, out_prefix, clean, dry_run, dry_run_output, enable_flashbundle, no_log_timestamps): # Ensures somewhat pretty logging of what is going on @@ -142,40 +130,13 @@ def main(context, log_level, target, target_glob, skip_target_glob, repo, else: runner = ShellRunner(root=repo) - if 'all' in target: - # NOTE: The "all" target includes things that are glob blacklisted - # (so that 'targets' works and displays all) - targets = build.ALL_TARGETS - else: - requested_targets = set([t.lower for t in target]) - targets = [ - target for target in build.ALL_TARGETS - if target.name.lower in requested_targets - ] - - actual_targes = set([t.name.lower for t in targets]) - if requested_targets != actual_targes: - logging.error('Targets not found: %s', - CommaSeparate(actual_targes)) - - if target_glob: - matcher = GlobMatcher(target_glob) - targets = [t for t in targets if matcher.matches( - t.name) and not t.IsGlobBlacklisted] - - if skip_target_glob: - matcher = GlobMatcher(skip_target_glob) - targets = [t for t in targets if not matcher.matches(t.name)] - - # force consistent sorting - targets.sort(key=lambda t: t.name) - logging.info('Building targets: %s', - CommaSeparate([t.name for t in targets])) + requested_targets = set([t.lower() for t in target]) + logging.info('Building targets: %s', CommaSeparate(requested_targets)) context.obj = build.Context( repository_path=repo, output_prefix=out_prefix, runner=runner) context.obj.SetupBuilders( - targets=targets, enable_flashbundle=enable_flashbundle) + targets=requested_targets, enable_flashbundle=enable_flashbundle) if clean: context.obj.CleanOutputDirectories() @@ -192,14 +153,19 @@ def cmd_generate(context): 'targets', help=('List the targets that would be generated/built given ' 'the input arguments')) +@click.option( + '--expand', + default=False, + is_flag=True, + help='Expand all possible targets rather than the shorthand string') @click.pass_context -def cmd_targets(context): - for builder in context.obj.builders: - if builder.target.IsGlobBlacklisted: - print("%s (NOGLOB: %s)" % - (builder.target.name, builder.target.GlobBlacklistReason)) +def cmd_targets(context, expand): + for target in build.targets.BUILD_TARGETS: + if expand: + for s in target.AllVariants(): + print(s) else: - print(builder.target.name) + print(target.HumanString()) @main.command('build', help='generate and run ninja/make as needed to compile') diff --git a/scripts/build/builders/host.py b/scripts/build/builders/host.py index e071c4fb3f3966..af6c19ffe93462 100644 --- a/scripts/build/builders/host.py +++ b/scripts/build/builders/host.py @@ -54,7 +54,7 @@ class HostApp(Enum): OTA_PROVIDER = auto() OTA_REQUESTOR = auto() PYTHON_BINDINGS = auto() - NL_TEST_RUNNER = auto() + EFR32_TEST_RUNNER = auto() TV_CASTING = auto() BRIDGE = auto() DYNAMIC_BRIDGE = auto() @@ -90,7 +90,7 @@ def ExamplePath(self): return 'ota-requestor-app/linux' elif self in [HostApp.ADDRESS_RESOLVE, HostApp.TESTS, HostApp.PYTHON_BINDINGS, HostApp.CERT_TOOL]: return '../' - elif self == HostApp.NL_TEST_RUNNER: + elif self == HostApp.EFR32_TEST_RUNNER: return '../src/test_driver/efr32' elif self == HostApp.TV_CASTING: return 'tv-casting-app/linux' @@ -157,7 +157,7 @@ def OutputNames(self): yield 'chip-ota-requestor-app.map' elif self == HostApp.PYTHON_BINDINGS: yield 'controller/python' # Directory containing WHL files - elif self == HostApp.NL_TEST_RUNNER: + elif self == HostApp.EFR32_TEST_RUNNER: yield 'chip_nl_test_runner_wheels' elif self == HostApp.TV_CASTING: yield 'chip-tv-casting-app' @@ -301,7 +301,7 @@ def __init__(self, root, runner, app: HostApp, board=HostBoard.NATIVE, self.extra_gn_options.append('chip_build_tests=true') self.build_command = 'check' - if app == HostApp.NL_TEST_RUNNER: + if app == HostApp.EFR32_TEST_RUNNER: self.build_command = 'runner' # board will NOT be used, but is required to be able to properly # include things added by the test_runner efr32 build diff --git a/scripts/build/test.py b/scripts/build/test.py index 056d34166a40ef..b0ba8a0d685c38 100644 --- a/scripts/build/test.py +++ b/scripts/build/test.py @@ -91,32 +91,41 @@ def assertCommandOutput(self, expected_file: str, args: List[str]): '{root}').replace(OUT, '{out}').strip()) self.fail(msg) - def test_output(self): + @unittest.skipUnless(sys.platform == 'linux', 'Build on linux test') + @unittest.skipUnless(os.uname().machine == 'x86_64', 'Validation x64 and crosscompile, requires linux x64') + def test_linux64_targets(self): self.assertCommandOutput( - os.path.join('testdata', 'build_all_except_host.txt'), - '--skip-target-glob {linux,darwin}-* build'.split(' ') + os.path.join('testdata', 'all_targets_linux_x64.txt'), + 'targets'.split(' ') ) - def test_targets(self): - self.assertCommandOutput( - os.path.join('testdata', 'all_targets_except_host.txt'), - '--skip-target-glob {linux,darwin}-* targets'.split(' ') - ) - - def test_glob_targets(self): - self.assertCommandOutput( - os.path.join('testdata', 'glob_star_targets_except_host.txt'), - '--target-glob * --skip-target-glob {linux,darwin}-* targets'.split( - ' ') - ) + def test_general_dry_runs(self): + # A sampling of targets and variants to validate that + # build options do not change too much + TARGETS = [ + 'esp32-devkitc-light-rpc', + 'esp32-m5stack-all-clusters-minimal-rpc-ipv6only', + 'android-arm64-chip-tool', + 'nrf-nrf52840dk-pump', + 'efr32-brd4161a-light-rpc' + ] + + for target in TARGETS: + expected = os.path.join('testdata', f'dry_run_{target}.txt') + self.assertCommandOutput(expected, f'--target {target} --dry-run build'.split(' ')) @unittest.skipUnless(sys.platform == 'linux', 'Build on linux test') @unittest.skipUnless(os.uname().machine == 'x86_64', 'Validation x64 and crosscompile, requires linux x64') - def test_linux_build(self): - self.assertCommandOutput( - os.path.join('testdata', 'build_linux_on_x64.txt'), - '--target-glob {linux}-* build'.split(' ') - ) + def test_linux_dry_runs(self): + TARGETS = [ + 'linux-arm64-chip-tool-ipv6only-clang', + 'linux-arm64-ota-requestor-nodeps-ipv6only', + 'linux-x64-all-clusters-coverage', + ] + + for target in TARGETS: + expected = os.path.join('testdata', f'dry_run_{target}.txt') + self.assertCommandOutput(expected, f'--target {target} --dry-run build'.split(' ')) if __name__ == '__main__': diff --git a/scripts/build/testdata/all_targets_except_host.txt b/scripts/build/testdata/all_targets_except_host.txt deleted file mode 100644 index d1f5868963d6b1..00000000000000 --- a/scripts/build/testdata/all_targets_except_host.txt +++ /dev/null @@ -1,300 +0,0 @@ -ameba-amebad-all-clusters -ameba-amebad-all-clusters-minimal -ameba-amebad-light -ameba-amebad-pigweed -android-androidstudio-arm-chip-tool -android-androidstudio-arm64-chip-tool -android-androidstudio-x64-chip-tool -android-androidstudio-x86-chip-tool -android-arm-chip-tool -android-arm-tv-casting-app -android-arm-tv-server -android-arm64-chip-test -android-arm64-chip-tool -android-arm64-tv-casting-app -android-arm64-tv-server -android-x64-chip-tool -android-x64-tv-server -android-x86-chip-tool -android-x86-tv-server -bl602-light -bouffalolab-BL706-IoT-DVK-light -bouffalolab-BL706-IoT-DVK-light-rpc -bouffalolab-BL706-NIGHT-LIGHT-light -cc13x2x7_26x2x7-all-clusters -cc13x2x7_26x2x7-all-clusters-minimal -cc13x2x7_26x2x7-lock-ftd -cc13x2x7_26x2x7-lock-mtd -cc13x2x7_26x2x7-pump -cc13x2x7_26x2x7-pump-controller -cc13x2x7_26x2x7-shell -cyw30739-cyw930739m2evb_01-light -cyw30739-cyw930739m2evb_01-lock -cyw30739-cyw930739m2evb_01-ota-requestor (NOGLOB: Running out of XIP flash space) -cyw30739-cyw930739m2evb_01-ota-requestor-no-progress-logging -efr32-brd4161a-light -efr32-brd4161a-light-rpc -efr32-brd4161a-light-rpc-with-ota-requestor (NOGLOB: Reduce default build variants) -efr32-brd4161a-light-with-ota-requestor (NOGLOB: Reduce default build variants) -efr32-brd4161a-lock -efr32-brd4161a-lock-rpc -efr32-brd4161a-lock-rpc-with-ota-requestor (NOGLOB: Reduce default build variants) -efr32-brd4161a-lock-with-ota-requestor (NOGLOB: Reduce default build variants) -efr32-brd4161a-switch -efr32-brd4161a-switch-with-ota-requestor (NOGLOB: Reduce default build variants) -efr32-brd4161a-unit-test -efr32-brd4161a-unit-test-with-ota-requestor (NOGLOB: Reduce default build variants) -efr32-brd4161a-window-covering -efr32-brd4161a-window-covering-with-ota-requestor (NOGLOB: Reduce default build variants) -efr32-brd4163a-light (NOGLOB: only user requested) -efr32-brd4163a-light-rpc (NOGLOB: only user requested) -efr32-brd4163a-light-rpc-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4163a-light-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4163a-lock (NOGLOB: only user requested) -efr32-brd4163a-lock-rpc (NOGLOB: only user requested) -efr32-brd4163a-lock-rpc-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4163a-lock-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4163a-switch (NOGLOB: only user requested) -efr32-brd4163a-switch-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4163a-unit-test (NOGLOB: only user requested) -efr32-brd4163a-unit-test-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4163a-window-covering (NOGLOB: only user requested) -efr32-brd4163a-window-covering-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4164a-light (NOGLOB: only user requested) -efr32-brd4164a-light-rpc (NOGLOB: only user requested) -efr32-brd4164a-light-rpc-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4164a-light-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4164a-lock (NOGLOB: only user requested) -efr32-brd4164a-lock-rpc (NOGLOB: only user requested) -efr32-brd4164a-lock-rpc-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4164a-lock-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4164a-switch (NOGLOB: only user requested) -efr32-brd4164a-switch-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4164a-unit-test (NOGLOB: only user requested) -efr32-brd4164a-unit-test-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4164a-window-covering (NOGLOB: only user requested) -efr32-brd4164a-window-covering-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4166a-light (NOGLOB: only user requested) -efr32-brd4166a-light-rpc (NOGLOB: only user requested) -efr32-brd4166a-light-rpc-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4166a-light-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4166a-lock (NOGLOB: only user requested) -efr32-brd4166a-lock-rpc (NOGLOB: only user requested) -efr32-brd4166a-lock-rpc-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4166a-lock-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4166a-switch (NOGLOB: only user requested) -efr32-brd4166a-switch-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4166a-unit-test (NOGLOB: only user requested) -efr32-brd4166a-unit-test-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4166a-window-covering (NOGLOB: only user requested) -efr32-brd4166a-window-covering-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4170a-light (NOGLOB: only user requested) -efr32-brd4170a-light-rpc (NOGLOB: only user requested) -efr32-brd4170a-light-rpc-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4170a-light-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4170a-lock (NOGLOB: only user requested) -efr32-brd4170a-lock-rpc (NOGLOB: only user requested) -efr32-brd4170a-lock-rpc-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4170a-lock-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4170a-switch (NOGLOB: only user requested) -efr32-brd4170a-switch-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4170a-unit-test (NOGLOB: only user requested) -efr32-brd4170a-unit-test-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4170a-window-covering (NOGLOB: only user requested) -efr32-brd4170a-window-covering-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4186a-light (NOGLOB: only user requested) -efr32-brd4186a-light-rpc (NOGLOB: only user requested) -efr32-brd4186a-light-rpc-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4186a-light-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4186a-lock (NOGLOB: only user requested) -efr32-brd4186a-lock-rpc (NOGLOB: only user requested) -efr32-brd4186a-lock-rpc-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4186a-lock-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4186a-switch (NOGLOB: only user requested) -efr32-brd4186a-switch-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4186a-unit-test (NOGLOB: only user requested) -efr32-brd4186a-unit-test-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4186a-window-covering (NOGLOB: only user requested) -efr32-brd4186a-window-covering-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4187a-light (NOGLOB: only user requested) -efr32-brd4187a-light-rpc (NOGLOB: only user requested) -efr32-brd4187a-light-rpc-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4187a-light-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4187a-lock (NOGLOB: only user requested) -efr32-brd4187a-lock-rpc (NOGLOB: only user requested) -efr32-brd4187a-lock-rpc-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4187a-lock-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4187a-switch (NOGLOB: only user requested) -efr32-brd4187a-switch-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4187a-unit-test (NOGLOB: only user requested) -efr32-brd4187a-unit-test-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4187a-window-covering (NOGLOB: only user requested) -efr32-brd4187a-window-covering-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4187c-light -efr32-brd4187c-light-rpc -efr32-brd4187c-light-rpc-with-ota-requestor (NOGLOB: Reduce default build variants) -efr32-brd4187c-light-with-ota-requestor (NOGLOB: Reduce default build variants) -efr32-brd4187c-lock -efr32-brd4187c-lock-rpc -efr32-brd4187c-lock-rpc-with-ota-requestor (NOGLOB: Reduce default build variants) -efr32-brd4187c-lock-with-ota-requestor (NOGLOB: Reduce default build variants) -efr32-brd4187c-switch -efr32-brd4187c-switch-with-ota-requestor (NOGLOB: Reduce default build variants) -efr32-brd4187c-unit-test -efr32-brd4187c-unit-test-with-ota-requestor (NOGLOB: Reduce default build variants) -efr32-brd4187c-window-covering -efr32-brd4187c-window-covering-with-ota-requestor (NOGLOB: Reduce default build variants) -efr32-brd4304a-light (NOGLOB: only user requested) -efr32-brd4304a-light-rpc (NOGLOB: only user requested) -efr32-brd4304a-light-rpc-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4304a-light-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4304a-lock (NOGLOB: only user requested) -efr32-brd4304a-lock-rpc (NOGLOB: only user requested) -efr32-brd4304a-lock-rpc-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4304a-lock-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4304a-switch (NOGLOB: only user requested) -efr32-brd4304a-switch-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4304a-unit-test (NOGLOB: only user requested) -efr32-brd4304a-unit-test-with-ota-requestor (NOGLOB: only user requested) -efr32-brd4304a-window-covering (NOGLOB: only user requested) -efr32-brd4304a-window-covering-with-ota-requestor (NOGLOB: only user requested) -esp32-c3devkit-all-clusters -esp32-c3devkit-all-clusters-minimal -esp32-devkitc-all-clusters -esp32-devkitc-all-clusters-ipv6only -esp32-devkitc-all-clusters-minimal -esp32-devkitc-all-clusters-minimal-ipv6only -esp32-devkitc-bridge -esp32-devkitc-light -esp32-devkitc-light-rpc -esp32-devkitc-lock -esp32-devkitc-ota-requestor -esp32-devkitc-ota-requestor-rpc -esp32-devkitc-shell -esp32-devkitc-temperature-measurement -esp32-devkitc-temperature-measurement-rpc -esp32-m5stack-all-clusters -esp32-m5stack-all-clusters-ipv6only -esp32-m5stack-all-clusters-minimal -esp32-m5stack-all-clusters-minimal-ipv6only -esp32-m5stack-all-clusters-minimal-rpc -esp32-m5stack-all-clusters-minimal-rpc-ipv6only -esp32-m5stack-all-clusters-rpc -esp32-m5stack-all-clusters-rpc-ipv6only -esp32-m5stack-ota-requestor -esp32-m5stack-ota-requestor-rpc -esp32-qemu-tests -genio-lighting-app -imx-all-clusters-app -imx-all-clusters-app-release -imx-all-clusters-minimal-app -imx-all-clusters-minimal-app-release -imx-chip-tool -imx-chip-tool-release -imx-lighting-app -imx-lighting-app-release -imx-ota-provider-app -imx-ota-provider-app-release -imx-thermostat -imx-thermostat-release -infineon-psoc6-all-clusters -infineon-psoc6-all-clusters-minimal -infineon-psoc6-all-clusters-minimal-ota (NOGLOB: Reduce default build variants) -infineon-psoc6-all-clusters-minimal-ota-updateimage (NOGLOB: Reduce default build variants) -infineon-psoc6-all-clusters-minimal-updateimage (NOGLOB: Reduce default build variants) -infineon-psoc6-all-clusters-ota (NOGLOB: Reduce default build variants) -infineon-psoc6-all-clusters-ota-updateimage (NOGLOB: Reduce default build variants) -infineon-psoc6-all-clusters-updateimage (NOGLOB: Reduce default build variants) -infineon-psoc6-light -infineon-psoc6-light-ota (NOGLOB: Reduce default build variants) -infineon-psoc6-light-ota-updateimage (NOGLOB: Reduce default build variants) -infineon-psoc6-light-updateimage (NOGLOB: Reduce default build variants) -infineon-psoc6-lock -infineon-psoc6-lock-ota (NOGLOB: Reduce default build variants) -infineon-psoc6-lock-ota-updateimage (NOGLOB: Reduce default build variants) -infineon-psoc6-lock-updateimage (NOGLOB: Reduce default build variants) -k32w-contact-low-power-release (NOGLOB: Only on demand build) -k32w-contact-release -k32w-light-ota-se (NOGLOB: Only on demand build) -k32w-light-release-no-ota -k32w-lock-low-power-release (NOGLOB: Only on demand build) -k32w-lock-release -k32w-shell-release -mbed-CY8CPROTO_062_4343W-all-clusters-debug (NOGLOB: Compile only for debugging purpose - https://os.mbed.com/docs/mbed-os/latest/program-setup/build-profiles-and-rules.html) -mbed-CY8CPROTO_062_4343W-all-clusters-develop (NOGLOB: Compile only for debugging purpose - https://os.mbed.com/docs/mbed-os/latest/program-setup/build-profiles-and-rules.html) -mbed-CY8CPROTO_062_4343W-all-clusters-minimal-debug (NOGLOB: Compile only for debugging purpose - https://os.mbed.com/docs/mbed-os/latest/program-setup/build-profiles-and-rules.html) -mbed-CY8CPROTO_062_4343W-all-clusters-minimal-develop (NOGLOB: Compile only for debugging purpose - https://os.mbed.com/docs/mbed-os/latest/program-setup/build-profiles-and-rules.html) -mbed-CY8CPROTO_062_4343W-all-clusters-minimal-release -mbed-CY8CPROTO_062_4343W-all-clusters-release -mbed-CY8CPROTO_062_4343W-light-debug (NOGLOB: Compile only for debugging purpose - https://os.mbed.com/docs/mbed-os/latest/program-setup/build-profiles-and-rules.html) -mbed-CY8CPROTO_062_4343W-light-develop (NOGLOB: Compile only for debugging purpose - https://os.mbed.com/docs/mbed-os/latest/program-setup/build-profiles-and-rules.html) -mbed-CY8CPROTO_062_4343W-light-release -mbed-CY8CPROTO_062_4343W-lock-debug (NOGLOB: Compile only for debugging purpose - https://os.mbed.com/docs/mbed-os/latest/program-setup/build-profiles-and-rules.html) -mbed-CY8CPROTO_062_4343W-lock-develop (NOGLOB: Compile only for debugging purpose - https://os.mbed.com/docs/mbed-os/latest/program-setup/build-profiles-and-rules.html) -mbed-CY8CPROTO_062_4343W-lock-release -mbed-CY8CPROTO_062_4343W-pigweed-debug (NOGLOB: Compile only for debugging purpose - https://os.mbed.com/docs/mbed-os/latest/program-setup/build-profiles-and-rules.html) -mbed-CY8CPROTO_062_4343W-pigweed-develop (NOGLOB: Compile only for debugging purpose - https://os.mbed.com/docs/mbed-os/latest/program-setup/build-profiles-and-rules.html) -mbed-CY8CPROTO_062_4343W-pigweed-release -mbed-CY8CPROTO_062_4343W-shell-debug (NOGLOB: Compile only for debugging purpose - https://os.mbed.com/docs/mbed-os/latest/program-setup/build-profiles-and-rules.html) -mbed-CY8CPROTO_062_4343W-shell-develop (NOGLOB: Compile only for debugging purpose - https://os.mbed.com/docs/mbed-os/latest/program-setup/build-profiles-and-rules.html) -mbed-CY8CPROTO_062_4343W-shell-release -mw320-all-clusters-app -nrf-native-posix-64-tests -nrf-nrf52840dk-all-clusters -nrf-nrf52840dk-all-clusters-minimal -nrf-nrf52840dk-light -nrf-nrf52840dk-light-rpc -nrf-nrf52840dk-lock -nrf-nrf52840dk-pump -nrf-nrf52840dk-pump-controller -nrf-nrf52840dk-shell -nrf-nrf52840dongle-all-clusters (NOGLOB: Out of flash when linking) -nrf-nrf52840dongle-all-clusters-minimal -nrf-nrf52840dongle-light -nrf-nrf5340dk-all-clusters -nrf-nrf5340dk-all-clusters-minimal -nrf-nrf5340dk-light -nrf-nrf5340dk-light-rpc (NOGLOB: Compile failure due to pw_build args not forwarded to proto compiler. https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/66760) -nrf-nrf5340dk-lock -nrf-nrf5340dk-pump -nrf-nrf5340dk-pump-controller -nrf-nrf5340dk-shell -qpg-light -qpg-lock -qpg-persistent-storage -qpg-shell -telink-tlsr9518adk80d-light -telink-tlsr9518adk80d-light-switch -telink-tlsr9518adk80d-ota-requestor -tizen-arm-all-clusters -tizen-arm-all-clusters-asan (NOGLOB: Reduce default build variants) -tizen-arm-all-clusters-minimal -tizen-arm-all-clusters-minimal-asan (NOGLOB: Reduce default build variants) -tizen-arm-all-clusters-minimal-no-ble (NOGLOB: Reduce default build variants) -tizen-arm-all-clusters-minimal-no-ble-asan (NOGLOB: Reduce default build variants) -tizen-arm-all-clusters-minimal-no-ble-no-wifi (NOGLOB: Reduce default build variants) -tizen-arm-all-clusters-minimal-no-ble-no-wifi-asan (NOGLOB: Reduce default build variants) -tizen-arm-all-clusters-minimal-no-wifi (NOGLOB: Reduce default build variants) -tizen-arm-all-clusters-minimal-no-wifi-asan (NOGLOB: Reduce default build variants) -tizen-arm-all-clusters-no-ble (NOGLOB: Reduce default build variants) -tizen-arm-all-clusters-no-ble-asan (NOGLOB: Reduce default build variants) -tizen-arm-all-clusters-no-ble-no-wifi (NOGLOB: Reduce default build variants) -tizen-arm-all-clusters-no-ble-no-wifi-asan (NOGLOB: Reduce default build variants) -tizen-arm-all-clusters-no-wifi (NOGLOB: Reduce default build variants) -tizen-arm-all-clusters-no-wifi-asan (NOGLOB: Reduce default build variants) -tizen-arm-chip-tool -tizen-arm-chip-tool-asan (NOGLOB: Reduce default build variants) -tizen-arm-chip-tool-no-ble (NOGLOB: Reduce default build variants) -tizen-arm-chip-tool-no-ble-asan (NOGLOB: Reduce default build variants) -tizen-arm-chip-tool-no-ble-no-wifi (NOGLOB: Reduce default build variants) -tizen-arm-chip-tool-no-ble-no-wifi-asan (NOGLOB: Reduce default build variants) -tizen-arm-chip-tool-no-wifi (NOGLOB: Reduce default build variants) -tizen-arm-chip-tool-no-wifi-asan (NOGLOB: Reduce default build variants) -tizen-arm-light -tizen-arm-light-asan (NOGLOB: Reduce default build variants) -tizen-arm-light-no-ble (NOGLOB: Reduce default build variants) -tizen-arm-light-no-ble-asan (NOGLOB: Reduce default build variants) -tizen-arm-light-no-ble-no-wifi (NOGLOB: Reduce default build variants) -tizen-arm-light-no-ble-no-wifi-asan (NOGLOB: Reduce default build variants) -tizen-arm-light-no-wifi (NOGLOB: Reduce default build variants) -tizen-arm-light-no-wifi-asan (NOGLOB: Reduce default build variants) diff --git a/scripts/build/testdata/all_targets_linux_x64.txt b/scripts/build/testdata/all_targets_linux_x64.txt new file mode 100644 index 00000000000000..f9f35c964e9400 --- /dev/null +++ b/scripts/build/testdata/all_targets_linux_x64.txt @@ -0,0 +1,22 @@ +ameba-amebad-{all-clusters,all-clusters-minimal,light,pigweed} +android-{arm,arm64,x86,x64,androidstudio-arm,androidstudio-arm64,androidstudio-x86,androidstudio-x64}-{chip-tool,chip-test,tv-server,tv-casting-app} +bl602-light +bouffalolab-{bl706-iot-dvk,bl706-night-light}-light[-rpc] +cc13x2x7_26x2x7-{all-clusters,all-clusters-minimal,lock,pump,pump-controller,shell}[-ftd][-mtd] +cyw30739-cyw930739m2evb_01-{light,lock,ota-requestor}[-no-progress-logging] +efr32-{brd4161a,brd4187c,brd4163a,brd4164a,brd4166a,brd4170a,brd4186a,brd4187a,brd4304a}-{window-covering,switch,unit-test,light,lock}[-rpc][-with-ota-requestor] +esp32-{m5stack,c3devkit,devkitc,qemu}-{all-clusters,all-clusters-minimal,ota-requestor,ota-requestor,shell,light,lock,bridge,temperature-measurement,ota-requestor,tests}[-rpc][-ipv6only] +genio-lighting-app +linux-fake-tests[-mbedtls][-boringssl][-asan][-tsan][-libfuzzer][-coverage][-dmalloc][-clang] +linux-{x64,arm64}-{rpc-console,all-clusters,all-clusters-minimal,chip-tool,thermostat,minmdns,light,light-rpc,lock,shell,ota-provider,ota-requestor,python-bindings,tv-app,tv-casting-app,bridge,dynamic-bridge,tests,chip-cert,address-resolve-tool}[-nodeps][-libnl][-same-event-loop][-no-interactive][-ipv6only][-no-ble][-no-wifi][-no-thread][-mbedtls][-boringssl][-asan][-tsan][-libfuzzer][-coverage][-dmalloc][-clang][-test] +linux-x64-efr32-test-runner[-clang] +imx-{chip-tool,lighting-app,thermostat,all-clusters-app,all-clusters-minimal-app,ota-provider-app}[-release] +infineon-psoc6-{lock,light,all-clusters,all-clusters-minimal}[-ota][-updateimage] +k32w-{light,shell,lock,contact}[-no-ota][-low-power][-nologs] +mbed-cy8cproto_062_4343w-{lock,light,all-clusters,all-clusters-minimal,pigweed,shell}[-release][-develop][-debug] +mw320-all-clusters-app +nrf-{nrf5340dk,nrf52840dk,nrf52840dongle}-{all-clusters,all-clusters-minimal,lock,light,shell,pump,pump-controller}[-rpc] +nrf-native-posix-64-tests +qpg-qpg6105-{lock,light,shell,persistent-storage} +tizen-arm-{all-clusters,all-clusters-minimal,chip-tool,light}[-no-ble][-no-wifi][-asan] +telink-tlsr9518adk80d-{light,light-switch,ota-requestor} diff --git a/scripts/build/testdata/build_all_except_host.txt b/scripts/build/testdata/build_all_except_host.txt deleted file mode 100644 index 4fc2526a63d102..00000000000000 --- a/scripts/build/testdata/build_all_except_host.txt +++ /dev/null @@ -1,2616 +0,0 @@ -# Commands will be run in CHIP project root. -cd "{root}" - -# Generating ameba-amebad-all-clusters -bash -c '$AMEBA_PATH/project/realtek_amebaD_va0_example/GCC-RELEASE/build.sh {root} ninja {out}/ameba-amebad-all-clusters all-clusters-app' - -# Generating ameba-amebad-all-clusters-minimal -bash -c '$AMEBA_PATH/project/realtek_amebaD_va0_example/GCC-RELEASE/build.sh {root} ninja {out}/ameba-amebad-all-clusters-minimal all-clusters-minimal-app' - -# Generating ameba-amebad-light -bash -c '$AMEBA_PATH/project/realtek_amebaD_va0_example/GCC-RELEASE/build.sh {root} ninja {out}/ameba-amebad-light lighting-app' - -# Generating ameba-amebad-pigweed -bash -c '$AMEBA_PATH/project/realtek_amebaD_va0_example/GCC-RELEASE/build.sh -r {root} ninja {out}/ameba-amebad-pigweed pigweed-app' - -# Setting up Android deps through Gradle -python3 third_party/android_deps/set_up_android_deps.py - -# Generating android-androidstudio-arm-chip-tool -gn gen --check --fail-on-unused-args {out}/android-androidstudio-arm-chip-tool '--args=target_os="android" target_cpu="arm" android_ndk_root="TEST_ANDROID_NDK_HOME" android_sdk_root="TEST_ANDROID_HOME" ' --ide=json --json-ide-script=//scripts/examples/gn_to_cmakelists.py - -# Accepting NDK licenses @ tools -bash -c 'yes | TEST_ANDROID_HOME/tools/bin/sdkmanager --licenses >/dev/null' - -# Setting up Android deps through Gradle -python3 third_party/android_deps/set_up_android_deps.py - -# Generating android-androidstudio-arm64-chip-tool -gn gen --check --fail-on-unused-args {out}/android-androidstudio-arm64-chip-tool '--args=target_os="android" target_cpu="arm64" android_ndk_root="TEST_ANDROID_NDK_HOME" android_sdk_root="TEST_ANDROID_HOME" ' --ide=json --json-ide-script=//scripts/examples/gn_to_cmakelists.py - -# Accepting NDK licenses @ tools -bash -c 'yes | TEST_ANDROID_HOME/tools/bin/sdkmanager --licenses >/dev/null' - -# Setting up Android deps through Gradle -python3 third_party/android_deps/set_up_android_deps.py - -# Generating android-androidstudio-x64-chip-tool -gn gen --check --fail-on-unused-args {out}/android-androidstudio-x64-chip-tool '--args=target_os="android" target_cpu="x64" android_ndk_root="TEST_ANDROID_NDK_HOME" android_sdk_root="TEST_ANDROID_HOME" ' --ide=json --json-ide-script=//scripts/examples/gn_to_cmakelists.py - -# Accepting NDK licenses @ tools -bash -c 'yes | TEST_ANDROID_HOME/tools/bin/sdkmanager --licenses >/dev/null' - -# Setting up Android deps through Gradle -python3 third_party/android_deps/set_up_android_deps.py - -# Generating android-androidstudio-x86-chip-tool -gn gen --check --fail-on-unused-args {out}/android-androidstudio-x86-chip-tool '--args=target_os="android" target_cpu="x86" android_ndk_root="TEST_ANDROID_NDK_HOME" android_sdk_root="TEST_ANDROID_HOME" ' --ide=json --json-ide-script=//scripts/examples/gn_to_cmakelists.py - -# Accepting NDK licenses @ tools -bash -c 'yes | TEST_ANDROID_HOME/tools/bin/sdkmanager --licenses >/dev/null' - -# Setting up Android deps through Gradle -python3 third_party/android_deps/set_up_android_deps.py - -# Generating android-arm-chip-tool -gn gen --check --fail-on-unused-args {out}/android-arm-chip-tool '--args=target_os="android" target_cpu="arm" android_ndk_root="TEST_ANDROID_NDK_HOME" android_sdk_root="TEST_ANDROID_HOME" ' - -# Accepting NDK licenses @ tools -bash -c 'yes | TEST_ANDROID_HOME/tools/bin/sdkmanager --licenses >/dev/null' - -# Setting up Android deps through Gradle -python3 third_party/android_deps/set_up_android_deps.py - -# Generating android-arm-tv-casting-app -gn gen --check --fail-on-unused-args {out}/android-arm-tv-casting-app '--args=target_os="android" target_cpu="arm" android_ndk_root="TEST_ANDROID_NDK_HOME" android_sdk_root="TEST_ANDROID_HOME" chip_config_network_layer_ble=false ' --root={root}/examples/tv-casting-app/android/ - -# Accepting NDK licenses @ tools -bash -c 'yes | TEST_ANDROID_HOME/tools/bin/sdkmanager --licenses >/dev/null' - -# Setting up Android deps through Gradle -python3 third_party/android_deps/set_up_android_deps.py - -# Generating android-arm-tv-server -gn gen --check --fail-on-unused-args {out}/android-arm-tv-server '--args=target_os="android" target_cpu="arm" android_ndk_root="TEST_ANDROID_NDK_HOME" android_sdk_root="TEST_ANDROID_HOME" chip_config_network_layer_ble=false ' --root={root}/examples/tv-app/android/ - -# Accepting NDK licenses @ tools -bash -c 'yes | TEST_ANDROID_HOME/tools/bin/sdkmanager --licenses >/dev/null' - -# Setting up Android deps through Gradle -python3 third_party/android_deps/set_up_android_deps.py - -# Generating android-arm64-chip-test -gn gen --check --fail-on-unused-args {out}/android-arm64-chip-test '--args=target_os="android" target_cpu="arm64" android_ndk_root="TEST_ANDROID_NDK_HOME" android_sdk_root="TEST_ANDROID_HOME" ' - -# Accepting NDK licenses @ tools -bash -c 'yes | TEST_ANDROID_HOME/tools/bin/sdkmanager --licenses >/dev/null' - -# Setting up Android deps through Gradle -python3 third_party/android_deps/set_up_android_deps.py - -# Generating android-arm64-chip-tool -gn gen --check --fail-on-unused-args {out}/android-arm64-chip-tool '--args=target_os="android" target_cpu="arm64" android_ndk_root="TEST_ANDROID_NDK_HOME" android_sdk_root="TEST_ANDROID_HOME" ' - -# Accepting NDK licenses @ tools -bash -c 'yes | TEST_ANDROID_HOME/tools/bin/sdkmanager --licenses >/dev/null' - -# Setting up Android deps through Gradle -python3 third_party/android_deps/set_up_android_deps.py - -# Generating android-arm64-tv-casting-app -gn gen --check --fail-on-unused-args {out}/android-arm64-tv-casting-app '--args=target_os="android" target_cpu="arm64" android_ndk_root="TEST_ANDROID_NDK_HOME" android_sdk_root="TEST_ANDROID_HOME" chip_config_network_layer_ble=false ' --root={root}/examples/tv-casting-app/android/ - -# Accepting NDK licenses @ tools -bash -c 'yes | TEST_ANDROID_HOME/tools/bin/sdkmanager --licenses >/dev/null' - -# Setting up Android deps through Gradle -python3 third_party/android_deps/set_up_android_deps.py - -# Generating android-arm64-tv-server -gn gen --check --fail-on-unused-args {out}/android-arm64-tv-server '--args=target_os="android" target_cpu="arm64" android_ndk_root="TEST_ANDROID_NDK_HOME" android_sdk_root="TEST_ANDROID_HOME" chip_config_network_layer_ble=false ' --root={root}/examples/tv-app/android/ - -# Accepting NDK licenses @ tools -bash -c 'yes | TEST_ANDROID_HOME/tools/bin/sdkmanager --licenses >/dev/null' - -# Setting up Android deps through Gradle -python3 third_party/android_deps/set_up_android_deps.py - -# Generating android-x64-chip-tool -gn gen --check --fail-on-unused-args {out}/android-x64-chip-tool '--args=target_os="android" target_cpu="x64" android_ndk_root="TEST_ANDROID_NDK_HOME" android_sdk_root="TEST_ANDROID_HOME" ' - -# Accepting NDK licenses @ tools -bash -c 'yes | TEST_ANDROID_HOME/tools/bin/sdkmanager --licenses >/dev/null' - -# Setting up Android deps through Gradle -python3 third_party/android_deps/set_up_android_deps.py - -# Generating android-x64-tv-server -gn gen --check --fail-on-unused-args {out}/android-x64-tv-server '--args=target_os="android" target_cpu="x64" android_ndk_root="TEST_ANDROID_NDK_HOME" android_sdk_root="TEST_ANDROID_HOME" chip_config_network_layer_ble=false ' --root={root}/examples/tv-app/android/ - -# Accepting NDK licenses @ tools -bash -c 'yes | TEST_ANDROID_HOME/tools/bin/sdkmanager --licenses >/dev/null' - -# Setting up Android deps through Gradle -python3 third_party/android_deps/set_up_android_deps.py - -# Generating android-x86-chip-tool -gn gen --check --fail-on-unused-args {out}/android-x86-chip-tool '--args=target_os="android" target_cpu="x86" android_ndk_root="TEST_ANDROID_NDK_HOME" android_sdk_root="TEST_ANDROID_HOME" ' - -# Accepting NDK licenses @ tools -bash -c 'yes | TEST_ANDROID_HOME/tools/bin/sdkmanager --licenses >/dev/null' - -# Setting up Android deps through Gradle -python3 third_party/android_deps/set_up_android_deps.py - -# Generating android-x86-tv-server -gn gen --check --fail-on-unused-args {out}/android-x86-tv-server '--args=target_os="android" target_cpu="x86" android_ndk_root="TEST_ANDROID_NDK_HOME" android_sdk_root="TEST_ANDROID_HOME" chip_config_network_layer_ble=false ' --root={root}/examples/tv-app/android/ - -# Accepting NDK licenses @ tools -bash -c 'yes | TEST_ANDROID_HOME/tools/bin/sdkmanager --licenses >/dev/null' - -# Generating bl602-light -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/bouffalolab/bl602 '--args=custom_toolchain="{root}/../../examples/platform/bouffalolab/common/toolchain:riscv_gcc" bl602_board="BL-HWC-G1"' {out}/bl602-light - -# Generating bouffalolab-BL706-IoT-DVK-light -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/bouffalolab/bl702 '--args=custom_toolchain="{root}/../../examples/platform/bouffalolab/common/toolchain:riscv_gcc" board="BL706-IoT-DVK" module_type="BL706C-22"' {out}/bouffalolab-BL706-IoT-DVK-light - -# Generating bouffalolab-BL706-IoT-DVK-light-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/bouffalolab/bl702 '--args=custom_toolchain="{root}/../../examples/platform/bouffalolab/common/toolchain:riscv_gcc" board="BL706-IoT-DVK" module_type="BL706C-22" import("//with_pw_rpc.gni")' {out}/bouffalolab-BL706-IoT-DVK-light-rpc - -# Generating bouffalolab-BL706-NIGHT-LIGHT-light -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/bouffalolab/bl702 '--args=custom_toolchain="{root}/../../examples/platform/bouffalolab/common/toolchain:riscv_gcc" board="BL706-NIGHT-LIGHT" module_type="BL702"' {out}/bouffalolab-BL706-NIGHT-LIGHT-light - -# Generating cc13x2x7_26x2x7-all-clusters -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/cc13x2x7_26x2x7 '--args=ti_sysconfig_root="TEST_TI_SYSCONFIG_ROOT"' {out}/cc13x2x7_26x2x7-all-clusters - -# Generating cc13x2x7_26x2x7-all-clusters-minimal -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/cc13x2x7_26x2x7 '--args=ti_sysconfig_root="TEST_TI_SYSCONFIG_ROOT"' {out}/cc13x2x7_26x2x7-all-clusters-minimal - -# Generating cc13x2x7_26x2x7-lock-ftd -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/cc13x2x7_26x2x7 '--args=ti_sysconfig_root="TEST_TI_SYSCONFIG_ROOT" chip_openthread_ftd=true chip_progress_logging=false' {out}/cc13x2x7_26x2x7-lock-ftd - -# Generating cc13x2x7_26x2x7-lock-mtd -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/cc13x2x7_26x2x7 '--args=ti_sysconfig_root="TEST_TI_SYSCONFIG_ROOT" chip_openthread_ftd=false' {out}/cc13x2x7_26x2x7-lock-mtd - -# Generating cc13x2x7_26x2x7-pump -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/pump-app/cc13x2x7_26x2x7 '--args=ti_sysconfig_root="TEST_TI_SYSCONFIG_ROOT"' {out}/cc13x2x7_26x2x7-pump - -# Generating cc13x2x7_26x2x7-pump-controller -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/pump-controller-app/cc13x2x7_26x2x7 '--args=ti_sysconfig_root="TEST_TI_SYSCONFIG_ROOT"' {out}/cc13x2x7_26x2x7-pump-controller - -# Generating cc13x2x7_26x2x7-shell -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/shell/cc13x2x7_26x2x7 '--args=ti_sysconfig_root="TEST_TI_SYSCONFIG_ROOT"' {out}/cc13x2x7_26x2x7-shell - -# Generating cyw30739-cyw930739m2evb_01-light -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/infineon/cyw30739 {out}/cyw30739-cyw930739m2evb_01-light - -# Generating cyw30739-cyw930739m2evb_01-lock -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/infineon/cyw30739 {out}/cyw30739-cyw930739m2evb_01-lock - -# Generating cyw30739-cyw930739m2evb_01-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/ota-requestor-app/infineon/cyw30739 {out}/cyw30739-cyw930739m2evb_01-ota-requestor - -# Generating cyw30739-cyw930739m2evb_01-ota-requestor-no-progress-logging -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/ota-requestor-app/infineon/cyw30739 --args=chip_progress_logging=false {out}/cyw30739-cyw930739m2evb_01-ota-requestor-no-progress-logging - -# Generating efr32-brd4161a-light -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4161A"' {out}/efr32-brd4161a-light - -# Generating efr32-brd4161a-light-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4161A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4161a-light-rpc - -# Generating efr32-brd4161a-light-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4161A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4161a-light-rpc-with-ota-requestor - -# Generating efr32-brd4161a-light-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4161A" chip_enable_ota_requestor=true' {out}/efr32-brd4161a-light-with-ota-requestor - -# Generating efr32-brd4161a-lock -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4161A"' {out}/efr32-brd4161a-lock - -# Generating efr32-brd4161a-lock-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4161A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4161a-lock-rpc - -# Generating efr32-brd4161a-lock-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4161A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4161a-lock-rpc-with-ota-requestor - -# Generating efr32-brd4161a-lock-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4161A" chip_enable_ota_requestor=true' {out}/efr32-brd4161a-lock-with-ota-requestor - -# Generating efr32-brd4161a-switch -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4161A"' {out}/efr32-brd4161a-switch - -# Generating efr32-brd4161a-switch-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4161A" chip_enable_ota_requestor=true' {out}/efr32-brd4161a-switch-with-ota-requestor - -# Generating efr32-brd4161a-unit-test -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4161A"' {out}/efr32-brd4161a-unit-test - -# Generating efr32-brd4161a-unit-test-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4161A" chip_enable_ota_requestor=true' {out}/efr32-brd4161a-unit-test-with-ota-requestor - -# Generating efr32-brd4161a-window-covering -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4161A"' {out}/efr32-brd4161a-window-covering - -# Generating efr32-brd4161a-window-covering-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4161A" chip_enable_ota_requestor=true' {out}/efr32-brd4161a-window-covering-with-ota-requestor - -# Generating efr32-brd4163a-light -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4163A"' {out}/efr32-brd4163a-light - -# Generating efr32-brd4163a-light-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4163A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4163a-light-rpc - -# Generating efr32-brd4163a-light-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4163A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4163a-light-rpc-with-ota-requestor - -# Generating efr32-brd4163a-light-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4163A" chip_enable_ota_requestor=true' {out}/efr32-brd4163a-light-with-ota-requestor - -# Generating efr32-brd4163a-lock -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4163A"' {out}/efr32-brd4163a-lock - -# Generating efr32-brd4163a-lock-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4163A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4163a-lock-rpc - -# Generating efr32-brd4163a-lock-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4163A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4163a-lock-rpc-with-ota-requestor - -# Generating efr32-brd4163a-lock-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4163A" chip_enable_ota_requestor=true' {out}/efr32-brd4163a-lock-with-ota-requestor - -# Generating efr32-brd4163a-switch -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4163A"' {out}/efr32-brd4163a-switch - -# Generating efr32-brd4163a-switch-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4163A" chip_enable_ota_requestor=true' {out}/efr32-brd4163a-switch-with-ota-requestor - -# Generating efr32-brd4163a-unit-test -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4163A"' {out}/efr32-brd4163a-unit-test - -# Generating efr32-brd4163a-unit-test-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4163A" chip_enable_ota_requestor=true' {out}/efr32-brd4163a-unit-test-with-ota-requestor - -# Generating efr32-brd4163a-window-covering -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4163A"' {out}/efr32-brd4163a-window-covering - -# Generating efr32-brd4163a-window-covering-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4163A" chip_enable_ota_requestor=true' {out}/efr32-brd4163a-window-covering-with-ota-requestor - -# Generating efr32-brd4164a-light -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4164A"' {out}/efr32-brd4164a-light - -# Generating efr32-brd4164a-light-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4164A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4164a-light-rpc - -# Generating efr32-brd4164a-light-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4164A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4164a-light-rpc-with-ota-requestor - -# Generating efr32-brd4164a-light-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4164A" chip_enable_ota_requestor=true' {out}/efr32-brd4164a-light-with-ota-requestor - -# Generating efr32-brd4164a-lock -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4164A"' {out}/efr32-brd4164a-lock - -# Generating efr32-brd4164a-lock-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4164A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4164a-lock-rpc - -# Generating efr32-brd4164a-lock-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4164A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4164a-lock-rpc-with-ota-requestor - -# Generating efr32-brd4164a-lock-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4164A" chip_enable_ota_requestor=true' {out}/efr32-brd4164a-lock-with-ota-requestor - -# Generating efr32-brd4164a-switch -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4164A"' {out}/efr32-brd4164a-switch - -# Generating efr32-brd4164a-switch-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4164A" chip_enable_ota_requestor=true' {out}/efr32-brd4164a-switch-with-ota-requestor - -# Generating efr32-brd4164a-unit-test -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4164A"' {out}/efr32-brd4164a-unit-test - -# Generating efr32-brd4164a-unit-test-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4164A" chip_enable_ota_requestor=true' {out}/efr32-brd4164a-unit-test-with-ota-requestor - -# Generating efr32-brd4164a-window-covering -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4164A"' {out}/efr32-brd4164a-window-covering - -# Generating efr32-brd4164a-window-covering-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4164A" chip_enable_ota_requestor=true' {out}/efr32-brd4164a-window-covering-with-ota-requestor - -# Generating efr32-brd4166a-light -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4166A"' {out}/efr32-brd4166a-light - -# Generating efr32-brd4166a-light-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4166A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4166a-light-rpc - -# Generating efr32-brd4166a-light-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4166A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4166a-light-rpc-with-ota-requestor - -# Generating efr32-brd4166a-light-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4166A" chip_enable_ota_requestor=true' {out}/efr32-brd4166a-light-with-ota-requestor - -# Generating efr32-brd4166a-lock -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4166A"' {out}/efr32-brd4166a-lock - -# Generating efr32-brd4166a-lock-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4166A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4166a-lock-rpc - -# Generating efr32-brd4166a-lock-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4166A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4166a-lock-rpc-with-ota-requestor - -# Generating efr32-brd4166a-lock-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4166A" chip_enable_ota_requestor=true' {out}/efr32-brd4166a-lock-with-ota-requestor - -# Generating efr32-brd4166a-switch -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4166A"' {out}/efr32-brd4166a-switch - -# Generating efr32-brd4166a-switch-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4166A" chip_enable_ota_requestor=true' {out}/efr32-brd4166a-switch-with-ota-requestor - -# Generating efr32-brd4166a-unit-test -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4166A"' {out}/efr32-brd4166a-unit-test - -# Generating efr32-brd4166a-unit-test-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4166A" chip_enable_ota_requestor=true' {out}/efr32-brd4166a-unit-test-with-ota-requestor - -# Generating efr32-brd4166a-window-covering -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4166A"' {out}/efr32-brd4166a-window-covering - -# Generating efr32-brd4166a-window-covering-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4166A" chip_enable_ota_requestor=true' {out}/efr32-brd4166a-window-covering-with-ota-requestor - -# Generating efr32-brd4170a-light -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4170A"' {out}/efr32-brd4170a-light - -# Generating efr32-brd4170a-light-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4170A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4170a-light-rpc - -# Generating efr32-brd4170a-light-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4170A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4170a-light-rpc-with-ota-requestor - -# Generating efr32-brd4170a-light-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4170A" chip_enable_ota_requestor=true' {out}/efr32-brd4170a-light-with-ota-requestor - -# Generating efr32-brd4170a-lock -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4170A"' {out}/efr32-brd4170a-lock - -# Generating efr32-brd4170a-lock-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4170A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4170a-lock-rpc - -# Generating efr32-brd4170a-lock-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4170A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4170a-lock-rpc-with-ota-requestor - -# Generating efr32-brd4170a-lock-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4170A" chip_enable_ota_requestor=true' {out}/efr32-brd4170a-lock-with-ota-requestor - -# Generating efr32-brd4170a-switch -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4170A"' {out}/efr32-brd4170a-switch - -# Generating efr32-brd4170a-switch-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4170A" chip_enable_ota_requestor=true' {out}/efr32-brd4170a-switch-with-ota-requestor - -# Generating efr32-brd4170a-unit-test -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4170A"' {out}/efr32-brd4170a-unit-test - -# Generating efr32-brd4170a-unit-test-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4170A" chip_enable_ota_requestor=true' {out}/efr32-brd4170a-unit-test-with-ota-requestor - -# Generating efr32-brd4170a-window-covering -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4170A"' {out}/efr32-brd4170a-window-covering - -# Generating efr32-brd4170a-window-covering-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4170A" chip_enable_ota_requestor=true' {out}/efr32-brd4170a-window-covering-with-ota-requestor - -# Generating efr32-brd4186a-light -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4186A"' {out}/efr32-brd4186a-light - -# Generating efr32-brd4186a-light-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4186A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4186a-light-rpc - -# Generating efr32-brd4186a-light-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4186A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4186a-light-rpc-with-ota-requestor - -# Generating efr32-brd4186a-light-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4186A" chip_enable_ota_requestor=true' {out}/efr32-brd4186a-light-with-ota-requestor - -# Generating efr32-brd4186a-lock -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4186A"' {out}/efr32-brd4186a-lock - -# Generating efr32-brd4186a-lock-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4186A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4186a-lock-rpc - -# Generating efr32-brd4186a-lock-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4186A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4186a-lock-rpc-with-ota-requestor - -# Generating efr32-brd4186a-lock-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4186A" chip_enable_ota_requestor=true' {out}/efr32-brd4186a-lock-with-ota-requestor - -# Generating efr32-brd4186a-switch -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4186A"' {out}/efr32-brd4186a-switch - -# Generating efr32-brd4186a-switch-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4186A" chip_enable_ota_requestor=true' {out}/efr32-brd4186a-switch-with-ota-requestor - -# Generating efr32-brd4186a-unit-test -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4186A"' {out}/efr32-brd4186a-unit-test - -# Generating efr32-brd4186a-unit-test-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4186A" chip_enable_ota_requestor=true' {out}/efr32-brd4186a-unit-test-with-ota-requestor - -# Generating efr32-brd4186a-window-covering -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4186A"' {out}/efr32-brd4186a-window-covering - -# Generating efr32-brd4186a-window-covering-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4186A" chip_enable_ota_requestor=true' {out}/efr32-brd4186a-window-covering-with-ota-requestor - -# Generating efr32-brd4187a-light -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4187A"' {out}/efr32-brd4187a-light - -# Generating efr32-brd4187a-light-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4187A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4187a-light-rpc - -# Generating efr32-brd4187a-light-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4187A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4187a-light-rpc-with-ota-requestor - -# Generating efr32-brd4187a-light-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4187A" chip_enable_ota_requestor=true' {out}/efr32-brd4187a-light-with-ota-requestor - -# Generating efr32-brd4187a-lock -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4187A"' {out}/efr32-brd4187a-lock - -# Generating efr32-brd4187a-lock-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4187A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4187a-lock-rpc - -# Generating efr32-brd4187a-lock-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4187A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4187a-lock-rpc-with-ota-requestor - -# Generating efr32-brd4187a-lock-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4187A" chip_enable_ota_requestor=true' {out}/efr32-brd4187a-lock-with-ota-requestor - -# Generating efr32-brd4187a-switch -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4187A"' {out}/efr32-brd4187a-switch - -# Generating efr32-brd4187a-switch-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4187A" chip_enable_ota_requestor=true' {out}/efr32-brd4187a-switch-with-ota-requestor - -# Generating efr32-brd4187a-unit-test -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4187A"' {out}/efr32-brd4187a-unit-test - -# Generating efr32-brd4187a-unit-test-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4187A" chip_enable_ota_requestor=true' {out}/efr32-brd4187a-unit-test-with-ota-requestor - -# Generating efr32-brd4187a-window-covering -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4187A"' {out}/efr32-brd4187a-window-covering - -# Generating efr32-brd4187a-window-covering-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4187A" chip_enable_ota_requestor=true' {out}/efr32-brd4187a-window-covering-with-ota-requestor - -# Generating efr32-brd4187c-light -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4187C"' {out}/efr32-brd4187c-light - -# Generating efr32-brd4187c-light-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4187C" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4187c-light-rpc - -# Generating efr32-brd4187c-light-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4187C" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4187c-light-rpc-with-ota-requestor - -# Generating efr32-brd4187c-light-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4187C" chip_enable_ota_requestor=true' {out}/efr32-brd4187c-light-with-ota-requestor - -# Generating efr32-brd4187c-lock -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4187C"' {out}/efr32-brd4187c-lock - -# Generating efr32-brd4187c-lock-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4187C" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4187c-lock-rpc - -# Generating efr32-brd4187c-lock-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4187C" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4187c-lock-rpc-with-ota-requestor - -# Generating efr32-brd4187c-lock-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4187C" chip_enable_ota_requestor=true' {out}/efr32-brd4187c-lock-with-ota-requestor - -# Generating efr32-brd4187c-switch -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4187C"' {out}/efr32-brd4187c-switch - -# Generating efr32-brd4187c-switch-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4187C" chip_enable_ota_requestor=true' {out}/efr32-brd4187c-switch-with-ota-requestor - -# Generating efr32-brd4187c-unit-test -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4187C"' {out}/efr32-brd4187c-unit-test - -# Generating efr32-brd4187c-unit-test-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4187C" chip_enable_ota_requestor=true' {out}/efr32-brd4187c-unit-test-with-ota-requestor - -# Generating efr32-brd4187c-window-covering -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4187C"' {out}/efr32-brd4187c-window-covering - -# Generating efr32-brd4187c-window-covering-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4187C" chip_enable_ota_requestor=true' {out}/efr32-brd4187c-window-covering-with-ota-requestor - -# Generating efr32-brd4304a-light -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4304A"' {out}/efr32-brd4304a-light - -# Generating efr32-brd4304a-light-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4304A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4304a-light-rpc - -# Generating efr32-brd4304a-light-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4304A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4304a-light-rpc-with-ota-requestor - -# Generating efr32-brd4304a-light-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4304A" chip_enable_ota_requestor=true' {out}/efr32-brd4304a-light-with-ota-requestor - -# Generating efr32-brd4304a-lock -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4304A"' {out}/efr32-brd4304a-lock - -# Generating efr32-brd4304a-lock-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4304A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4304a-lock-rpc - -# Generating efr32-brd4304a-lock-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4304A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4304a-lock-rpc-with-ota-requestor - -# Generating efr32-brd4304a-lock-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4304A" chip_enable_ota_requestor=true' {out}/efr32-brd4304a-lock-with-ota-requestor - -# Generating efr32-brd4304a-switch -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4304A"' {out}/efr32-brd4304a-switch - -# Generating efr32-brd4304a-switch-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4304A" chip_enable_ota_requestor=true' {out}/efr32-brd4304a-switch-with-ota-requestor - -# Generating efr32-brd4304a-unit-test -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4304A"' {out}/efr32-brd4304a-unit-test - -# Generating efr32-brd4304a-unit-test-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4304A" chip_enable_ota_requestor=true' {out}/efr32-brd4304a-unit-test-with-ota-requestor - -# Generating efr32-brd4304a-window-covering -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4304A"' {out}/efr32-brd4304a-window-covering - -# Generating efr32-brd4304a-window-covering-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4304A" chip_enable_ota_requestor=true' {out}/efr32-brd4304a-window-covering-with-ota-requestor - -# Generating esp32-c3devkit-all-clusters -mkdir -p {out}/esp32-c3devkit-all-clusters - -cp examples/all-clusters-app/esp32/sdkconfig_c3devkit.defaults {out}/esp32-c3devkit-all-clusters/sdkconfig.defaults - -rm -f examples/all-clusters-app/esp32/sdkconfig - -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-c3devkit-all-clusters/sdkconfig.defaults -idf.py -C examples/all-clusters-app/esp32 -B {out}/esp32-c3devkit-all-clusters reconfigure' - -# Generating esp32-c3devkit-all-clusters-minimal -mkdir -p {out}/esp32-c3devkit-all-clusters-minimal - -cp examples/all-clusters-minimal-app/esp32/sdkconfig_c3devkit.defaults {out}/esp32-c3devkit-all-clusters-minimal/sdkconfig.defaults - -rm -f examples/all-clusters-minimal-app/esp32/sdkconfig - -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-c3devkit-all-clusters-minimal/sdkconfig.defaults -idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-c3devkit-all-clusters-minimal reconfigure' - -# Generating esp32-devkitc-all-clusters -mkdir -p {out}/esp32-devkitc-all-clusters - -cp examples/all-clusters-app/esp32/sdkconfig.defaults {out}/esp32-devkitc-all-clusters/sdkconfig.defaults - -rm -f examples/all-clusters-app/esp32/sdkconfig - -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-all-clusters/sdkconfig.defaults -idf.py -C examples/all-clusters-app/esp32 -B {out}/esp32-devkitc-all-clusters reconfigure' - -# Generating esp32-devkitc-all-clusters-ipv6only -mkdir -p {out}/esp32-devkitc-all-clusters-ipv6only - -cp examples/all-clusters-app/esp32/sdkconfig.defaults {out}/esp32-devkitc-all-clusters-ipv6only/sdkconfig.defaults - -rm -f examples/all-clusters-app/esp32/sdkconfig - -bash -c 'echo -e "\nCONFIG_DISABLE_IPV4=y\n" >>{out}/esp32-devkitc-all-clusters-ipv6only/sdkconfig.defaults' - -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-all-clusters-ipv6only/sdkconfig.defaults -idf.py -C examples/all-clusters-app/esp32 -B {out}/esp32-devkitc-all-clusters-ipv6only reconfigure' - -# Generating esp32-devkitc-all-clusters-minimal -mkdir -p {out}/esp32-devkitc-all-clusters-minimal - -cp examples/all-clusters-minimal-app/esp32/sdkconfig.defaults {out}/esp32-devkitc-all-clusters-minimal/sdkconfig.defaults - -rm -f examples/all-clusters-minimal-app/esp32/sdkconfig - -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-all-clusters-minimal/sdkconfig.defaults -idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-devkitc-all-clusters-minimal reconfigure' - -# Generating esp32-devkitc-all-clusters-minimal-ipv6only -mkdir -p {out}/esp32-devkitc-all-clusters-minimal-ipv6only - -cp examples/all-clusters-minimal-app/esp32/sdkconfig.defaults {out}/esp32-devkitc-all-clusters-minimal-ipv6only/sdkconfig.defaults - -rm -f examples/all-clusters-minimal-app/esp32/sdkconfig - -bash -c 'echo -e "\nCONFIG_DISABLE_IPV4=y\n" >>{out}/esp32-devkitc-all-clusters-minimal-ipv6only/sdkconfig.defaults' - -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-all-clusters-minimal-ipv6only/sdkconfig.defaults -idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-devkitc-all-clusters-minimal-ipv6only reconfigure' - -# Generating esp32-devkitc-bridge -mkdir -p {out}/esp32-devkitc-bridge - -cp examples/bridge-app/esp32/sdkconfig.defaults {out}/esp32-devkitc-bridge/sdkconfig.defaults - -rm -f examples/bridge-app/esp32/sdkconfig - -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-bridge/sdkconfig.defaults -idf.py -C examples/bridge-app/esp32 -B {out}/esp32-devkitc-bridge reconfigure' - -# Generating esp32-devkitc-light -mkdir -p {out}/esp32-devkitc-light - -cp examples/lighting-app/esp32/sdkconfig.defaults {out}/esp32-devkitc-light/sdkconfig.defaults - -rm -f examples/lighting-app/esp32/sdkconfig - -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-light/sdkconfig.defaults -idf.py -C examples/lighting-app/esp32 -B {out}/esp32-devkitc-light reconfigure' - -# Generating esp32-devkitc-light-rpc -mkdir -p {out}/esp32-devkitc-light-rpc - -cp examples/lighting-app/esp32/sdkconfig_rpc.defaults {out}/esp32-devkitc-light-rpc/sdkconfig.defaults - -rm -f examples/lighting-app/esp32/sdkconfig - -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-light-rpc/sdkconfig.defaults -idf.py -C examples/lighting-app/esp32 -B {out}/esp32-devkitc-light-rpc reconfigure' - -# Generating esp32-devkitc-lock -mkdir -p {out}/esp32-devkitc-lock - -cp examples/lock-app/esp32/sdkconfig.defaults {out}/esp32-devkitc-lock/sdkconfig.defaults - -rm -f examples/lock-app/esp32/sdkconfig - -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-lock/sdkconfig.defaults -idf.py -C examples/lock-app/esp32 -B {out}/esp32-devkitc-lock reconfigure' - -# Generating esp32-devkitc-ota-requestor -mkdir -p {out}/esp32-devkitc-ota-requestor - -cp examples/ota-requestor-app/esp32/sdkconfig.defaults {out}/esp32-devkitc-ota-requestor/sdkconfig.defaults - -rm -f examples/ota-requestor-app/esp32/sdkconfig - -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-ota-requestor/sdkconfig.defaults -idf.py -C examples/ota-requestor-app/esp32 -B {out}/esp32-devkitc-ota-requestor reconfigure' - -# Generating esp32-devkitc-ota-requestor-rpc -mkdir -p {out}/esp32-devkitc-ota-requestor-rpc - -cp examples/ota-requestor-app/esp32/sdkconfig_rpc.defaults {out}/esp32-devkitc-ota-requestor-rpc/sdkconfig.defaults - -rm -f examples/ota-requestor-app/esp32/sdkconfig - -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-ota-requestor-rpc/sdkconfig.defaults -idf.py -C examples/ota-requestor-app/esp32 -B {out}/esp32-devkitc-ota-requestor-rpc reconfigure' - -# Generating esp32-devkitc-shell -mkdir -p {out}/esp32-devkitc-shell - -cp examples/shell/esp32/sdkconfig.defaults {out}/esp32-devkitc-shell/sdkconfig.defaults - -rm -f examples/shell/esp32/sdkconfig - -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-shell/sdkconfig.defaults -idf.py -C examples/shell/esp32 -B {out}/esp32-devkitc-shell reconfigure' - -# Generating esp32-devkitc-temperature-measurement -mkdir -p {out}/esp32-devkitc-temperature-measurement - -cp examples/temperature-measurement-app/esp32/sdkconfig.defaults {out}/esp32-devkitc-temperature-measurement/sdkconfig.defaults - -rm -f examples/temperature-measurement-app/esp32/sdkconfig - -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-temperature-measurement/sdkconfig.defaults -idf.py -C examples/temperature-measurement-app/esp32 -B {out}/esp32-devkitc-temperature-measurement reconfigure' - -# Generating esp32-devkitc-temperature-measurement-rpc -mkdir -p {out}/esp32-devkitc-temperature-measurement-rpc - -cp examples/temperature-measurement-app/esp32/sdkconfig_rpc.defaults {out}/esp32-devkitc-temperature-measurement-rpc/sdkconfig.defaults - -rm -f examples/temperature-measurement-app/esp32/sdkconfig - -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-temperature-measurement-rpc/sdkconfig.defaults -idf.py -C examples/temperature-measurement-app/esp32 -B {out}/esp32-devkitc-temperature-measurement-rpc reconfigure' - -# Generating esp32-m5stack-all-clusters -mkdir -p {out}/esp32-m5stack-all-clusters - -cp examples/all-clusters-app/esp32/sdkconfig_m5stack.defaults {out}/esp32-m5stack-all-clusters/sdkconfig.defaults - -rm -f examples/all-clusters-app/esp32/sdkconfig - -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-all-clusters/sdkconfig.defaults -idf.py -C examples/all-clusters-app/esp32 -B {out}/esp32-m5stack-all-clusters reconfigure' - -# Generating esp32-m5stack-all-clusters-ipv6only -mkdir -p {out}/esp32-m5stack-all-clusters-ipv6only - -cp examples/all-clusters-app/esp32/sdkconfig_m5stack.defaults {out}/esp32-m5stack-all-clusters-ipv6only/sdkconfig.defaults - -rm -f examples/all-clusters-app/esp32/sdkconfig - -bash -c 'echo -e "\nCONFIG_DISABLE_IPV4=y\n" >>{out}/esp32-m5stack-all-clusters-ipv6only/sdkconfig.defaults' - -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-all-clusters-ipv6only/sdkconfig.defaults -idf.py -C examples/all-clusters-app/esp32 -B {out}/esp32-m5stack-all-clusters-ipv6only reconfigure' - -# Generating esp32-m5stack-all-clusters-minimal -mkdir -p {out}/esp32-m5stack-all-clusters-minimal - -cp examples/all-clusters-minimal-app/esp32/sdkconfig_m5stack.defaults {out}/esp32-m5stack-all-clusters-minimal/sdkconfig.defaults - -rm -f examples/all-clusters-minimal-app/esp32/sdkconfig - -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-all-clusters-minimal/sdkconfig.defaults -idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-m5stack-all-clusters-minimal reconfigure' - -# Generating esp32-m5stack-all-clusters-minimal-ipv6only -mkdir -p {out}/esp32-m5stack-all-clusters-minimal-ipv6only - -cp examples/all-clusters-minimal-app/esp32/sdkconfig_m5stack.defaults {out}/esp32-m5stack-all-clusters-minimal-ipv6only/sdkconfig.defaults - -rm -f examples/all-clusters-minimal-app/esp32/sdkconfig - -bash -c 'echo -e "\nCONFIG_DISABLE_IPV4=y\n" >>{out}/esp32-m5stack-all-clusters-minimal-ipv6only/sdkconfig.defaults' - -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-all-clusters-minimal-ipv6only/sdkconfig.defaults -idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-m5stack-all-clusters-minimal-ipv6only reconfigure' - -# Generating esp32-m5stack-all-clusters-minimal-rpc -mkdir -p {out}/esp32-m5stack-all-clusters-minimal-rpc - -cp examples/all-clusters-minimal-app/esp32/sdkconfig_m5stack_rpc.defaults {out}/esp32-m5stack-all-clusters-minimal-rpc/sdkconfig.defaults - -rm -f examples/all-clusters-minimal-app/esp32/sdkconfig - -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-all-clusters-minimal-rpc/sdkconfig.defaults -idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-m5stack-all-clusters-minimal-rpc reconfigure' - -# Generating esp32-m5stack-all-clusters-minimal-rpc-ipv6only -mkdir -p {out}/esp32-m5stack-all-clusters-minimal-rpc-ipv6only - -cp examples/all-clusters-minimal-app/esp32/sdkconfig_m5stack_rpc.defaults {out}/esp32-m5stack-all-clusters-minimal-rpc-ipv6only/sdkconfig.defaults - -rm -f examples/all-clusters-minimal-app/esp32/sdkconfig - -bash -c 'echo -e "\nCONFIG_DISABLE_IPV4=y\n" >>{out}/esp32-m5stack-all-clusters-minimal-rpc-ipv6only/sdkconfig.defaults' - -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-all-clusters-minimal-rpc-ipv6only/sdkconfig.defaults -idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-m5stack-all-clusters-minimal-rpc-ipv6only reconfigure' - -# Generating esp32-m5stack-all-clusters-rpc -mkdir -p {out}/esp32-m5stack-all-clusters-rpc - -cp examples/all-clusters-app/esp32/sdkconfig_m5stack_rpc.defaults {out}/esp32-m5stack-all-clusters-rpc/sdkconfig.defaults - -rm -f examples/all-clusters-app/esp32/sdkconfig - -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-all-clusters-rpc/sdkconfig.defaults -idf.py -C examples/all-clusters-app/esp32 -B {out}/esp32-m5stack-all-clusters-rpc reconfigure' - -# Generating esp32-m5stack-all-clusters-rpc-ipv6only -mkdir -p {out}/esp32-m5stack-all-clusters-rpc-ipv6only - -cp examples/all-clusters-app/esp32/sdkconfig_m5stack_rpc.defaults {out}/esp32-m5stack-all-clusters-rpc-ipv6only/sdkconfig.defaults - -rm -f examples/all-clusters-app/esp32/sdkconfig - -bash -c 'echo -e "\nCONFIG_DISABLE_IPV4=y\n" >>{out}/esp32-m5stack-all-clusters-rpc-ipv6only/sdkconfig.defaults' - -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-all-clusters-rpc-ipv6only/sdkconfig.defaults -idf.py -C examples/all-clusters-app/esp32 -B {out}/esp32-m5stack-all-clusters-rpc-ipv6only reconfigure' - -# Generating esp32-m5stack-ota-requestor -mkdir -p {out}/esp32-m5stack-ota-requestor - -cp examples/ota-requestor-app/esp32/sdkconfig_m5stack.defaults {out}/esp32-m5stack-ota-requestor/sdkconfig.defaults - -rm -f examples/ota-requestor-app/esp32/sdkconfig - -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-ota-requestor/sdkconfig.defaults -idf.py -C examples/ota-requestor-app/esp32 -B {out}/esp32-m5stack-ota-requestor reconfigure' - -# Generating esp32-m5stack-ota-requestor-rpc -mkdir -p {out}/esp32-m5stack-ota-requestor-rpc - -cp examples/ota-requestor-app/esp32/sdkconfig_m5stack_rpc.defaults {out}/esp32-m5stack-ota-requestor-rpc/sdkconfig.defaults - -rm -f examples/ota-requestor-app/esp32/sdkconfig - -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-ota-requestor-rpc/sdkconfig.defaults -idf.py -C examples/ota-requestor-app/esp32 -B {out}/esp32-m5stack-ota-requestor-rpc reconfigure' - -# Generating esp32-qemu-tests -mkdir -p {out}/esp32-qemu-tests - -cp src/test_driver/esp32/sdkconfig_qemu.defaults {out}/esp32-qemu-tests/sdkconfig.defaults - -rm -f src/test_driver/esp32/sdkconfig - -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-qemu-tests/sdkconfig.defaults -idf.py -C src/test_driver/esp32 -B {out}/esp32-qemu-tests reconfigure' - -# Generating genio-lighting-app -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/genio {out}/genio-lighting-app - -# Generating imx-all-clusters-app -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/linux '--args=treat_warnings_as_errors=false target_os="linux" target_cpu="arm64" arm_arch="armv8-a" import("//build_overrides/build.gni") custom_toolchain="${build_root}/toolchain/custom" sysroot="IMX_SDK_ROOT/sysroots/cortexa53-crypto-poky-linux" target_cflags=[ "-DCHIP_DEVICE_CONFIG_WIFI_STATION_IF_NAME=\"mlan0\"", "-DCHIP_DEVICE_CONFIG_LINUX_DHCPC_CMD=\"udhcpc -b -i %s \"" ] target_cc="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc" target_cxx="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++" target_ar="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-ar" optimize_debug=true' {out}/imx-all-clusters-app - -# Generating imx-all-clusters-app-release -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/linux '--args=treat_warnings_as_errors=false target_os="linux" target_cpu="arm64" arm_arch="armv8-a" import("//build_overrides/build.gni") custom_toolchain="${build_root}/toolchain/custom" sysroot="IMX_SDK_ROOT/sysroots/cortexa53-crypto-poky-linux" target_cflags=[ "-DCHIP_DEVICE_CONFIG_WIFI_STATION_IF_NAME=\"mlan0\"", "-DCHIP_DEVICE_CONFIG_LINUX_DHCPC_CMD=\"udhcpc -b -i %s \"" ] target_cc="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc" target_cxx="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++" target_ar="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-ar" is_debug=false' {out}/imx-all-clusters-app-release - -# Generating imx-all-clusters-minimal-app -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/linux '--args=treat_warnings_as_errors=false target_os="linux" target_cpu="arm64" arm_arch="armv8-a" import("//build_overrides/build.gni") custom_toolchain="${build_root}/toolchain/custom" sysroot="IMX_SDK_ROOT/sysroots/cortexa53-crypto-poky-linux" target_cflags=[ "-DCHIP_DEVICE_CONFIG_WIFI_STATION_IF_NAME=\"mlan0\"", "-DCHIP_DEVICE_CONFIG_LINUX_DHCPC_CMD=\"udhcpc -b -i %s \"" ] target_cc="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc" target_cxx="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++" target_ar="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-ar" optimize_debug=true' {out}/imx-all-clusters-minimal-app - -# Generating imx-all-clusters-minimal-app-release -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/linux '--args=treat_warnings_as_errors=false target_os="linux" target_cpu="arm64" arm_arch="armv8-a" import("//build_overrides/build.gni") custom_toolchain="${build_root}/toolchain/custom" sysroot="IMX_SDK_ROOT/sysroots/cortexa53-crypto-poky-linux" target_cflags=[ "-DCHIP_DEVICE_CONFIG_WIFI_STATION_IF_NAME=\"mlan0\"", "-DCHIP_DEVICE_CONFIG_LINUX_DHCPC_CMD=\"udhcpc -b -i %s \"" ] target_cc="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc" target_cxx="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++" target_ar="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-ar" is_debug=false' {out}/imx-all-clusters-minimal-app-release - -# Generating imx-chip-tool -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/chip-tool '--args=treat_warnings_as_errors=false target_os="linux" target_cpu="arm64" arm_arch="armv8-a" import("//build_overrides/build.gni") custom_toolchain="${build_root}/toolchain/custom" sysroot="IMX_SDK_ROOT/sysroots/cortexa53-crypto-poky-linux" target_cflags=[ "-DCHIP_DEVICE_CONFIG_WIFI_STATION_IF_NAME=\"mlan0\"", "-DCHIP_DEVICE_CONFIG_LINUX_DHCPC_CMD=\"udhcpc -b -i %s \"" ] target_cc="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc" target_cxx="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++" target_ar="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-ar" optimize_debug=true' {out}/imx-chip-tool - -# Generating imx-chip-tool-release -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/chip-tool '--args=treat_warnings_as_errors=false target_os="linux" target_cpu="arm64" arm_arch="armv8-a" import("//build_overrides/build.gni") custom_toolchain="${build_root}/toolchain/custom" sysroot="IMX_SDK_ROOT/sysroots/cortexa53-crypto-poky-linux" target_cflags=[ "-DCHIP_DEVICE_CONFIG_WIFI_STATION_IF_NAME=\"mlan0\"", "-DCHIP_DEVICE_CONFIG_LINUX_DHCPC_CMD=\"udhcpc -b -i %s \"" ] target_cc="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc" target_cxx="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++" target_ar="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-ar" is_debug=false' {out}/imx-chip-tool-release - -# Generating imx-lighting-app -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/linux '--args=treat_warnings_as_errors=false target_os="linux" target_cpu="arm64" arm_arch="armv8-a" import("//build_overrides/build.gni") custom_toolchain="${build_root}/toolchain/custom" sysroot="IMX_SDK_ROOT/sysroots/cortexa53-crypto-poky-linux" target_cflags=[ "-DCHIP_DEVICE_CONFIG_WIFI_STATION_IF_NAME=\"mlan0\"", "-DCHIP_DEVICE_CONFIG_LINUX_DHCPC_CMD=\"udhcpc -b -i %s \"" ] target_cc="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc" target_cxx="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++" target_ar="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-ar" optimize_debug=true' {out}/imx-lighting-app - -# Generating imx-lighting-app-release -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/linux '--args=treat_warnings_as_errors=false target_os="linux" target_cpu="arm64" arm_arch="armv8-a" import("//build_overrides/build.gni") custom_toolchain="${build_root}/toolchain/custom" sysroot="IMX_SDK_ROOT/sysroots/cortexa53-crypto-poky-linux" target_cflags=[ "-DCHIP_DEVICE_CONFIG_WIFI_STATION_IF_NAME=\"mlan0\"", "-DCHIP_DEVICE_CONFIG_LINUX_DHCPC_CMD=\"udhcpc -b -i %s \"" ] target_cc="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc" target_cxx="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++" target_ar="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-ar" is_debug=false' {out}/imx-lighting-app-release - -# Generating imx-ota-provider-app -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/ota-provider-app/linux '--args=treat_warnings_as_errors=false target_os="linux" target_cpu="arm64" arm_arch="armv8-a" import("//build_overrides/build.gni") custom_toolchain="${build_root}/toolchain/custom" sysroot="IMX_SDK_ROOT/sysroots/cortexa53-crypto-poky-linux" target_cflags=[ "-DCHIP_DEVICE_CONFIG_WIFI_STATION_IF_NAME=\"mlan0\"", "-DCHIP_DEVICE_CONFIG_LINUX_DHCPC_CMD=\"udhcpc -b -i %s \"" ] target_cc="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc" target_cxx="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++" target_ar="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-ar" optimize_debug=true' {out}/imx-ota-provider-app - -# Generating imx-ota-provider-app-release -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/ota-provider-app/linux '--args=treat_warnings_as_errors=false target_os="linux" target_cpu="arm64" arm_arch="armv8-a" import("//build_overrides/build.gni") custom_toolchain="${build_root}/toolchain/custom" sysroot="IMX_SDK_ROOT/sysroots/cortexa53-crypto-poky-linux" target_cflags=[ "-DCHIP_DEVICE_CONFIG_WIFI_STATION_IF_NAME=\"mlan0\"", "-DCHIP_DEVICE_CONFIG_LINUX_DHCPC_CMD=\"udhcpc -b -i %s \"" ] target_cc="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc" target_cxx="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++" target_ar="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-ar" is_debug=false' {out}/imx-ota-provider-app-release - -# Generating imx-thermostat -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/thermostat/linux '--args=treat_warnings_as_errors=false target_os="linux" target_cpu="arm64" arm_arch="armv8-a" import("//build_overrides/build.gni") custom_toolchain="${build_root}/toolchain/custom" sysroot="IMX_SDK_ROOT/sysroots/cortexa53-crypto-poky-linux" target_cflags=[ "-DCHIP_DEVICE_CONFIG_WIFI_STATION_IF_NAME=\"mlan0\"", "-DCHIP_DEVICE_CONFIG_LINUX_DHCPC_CMD=\"udhcpc -b -i %s \"" ] target_cc="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc" target_cxx="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++" target_ar="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-ar" optimize_debug=true' {out}/imx-thermostat - -# Generating imx-thermostat-release -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/thermostat/linux '--args=treat_warnings_as_errors=false target_os="linux" target_cpu="arm64" arm_arch="armv8-a" import("//build_overrides/build.gni") custom_toolchain="${build_root}/toolchain/custom" sysroot="IMX_SDK_ROOT/sysroots/cortexa53-crypto-poky-linux" target_cflags=[ "-DCHIP_DEVICE_CONFIG_WIFI_STATION_IF_NAME=\"mlan0\"", "-DCHIP_DEVICE_CONFIG_LINUX_DHCPC_CMD=\"udhcpc -b -i %s \"" ] target_cc="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc" target_cxx="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++" target_ar="IMX_SDK_ROOT/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-ar" is_debug=false' {out}/imx-thermostat-release - -# Generating infineon-psoc6-all-clusters -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012"' {out}/infineon-psoc6-all-clusters - -# Generating infineon-psoc6-all-clusters-minimal -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012"' {out}/infineon-psoc6-all-clusters-minimal - -# Generating infineon-psoc6-all-clusters-minimal-ota -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true' {out}/infineon-psoc6-all-clusters-minimal-ota - -# Generating infineon-psoc6-all-clusters-minimal-ota-updateimage -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true build_update_image=true' {out}/infineon-psoc6-all-clusters-minimal-ota-updateimage - -# Generating infineon-psoc6-all-clusters-minimal-updateimage -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012" build_update_image=true' {out}/infineon-psoc6-all-clusters-minimal-updateimage - -# Generating infineon-psoc6-all-clusters-ota -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true' {out}/infineon-psoc6-all-clusters-ota - -# Generating infineon-psoc6-all-clusters-ota-updateimage -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true build_update_image=true' {out}/infineon-psoc6-all-clusters-ota-updateimage - -# Generating infineon-psoc6-all-clusters-updateimage -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012" build_update_image=true' {out}/infineon-psoc6-all-clusters-updateimage - -# Generating infineon-psoc6-light -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012"' {out}/infineon-psoc6-light - -# Generating infineon-psoc6-light-ota -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true' {out}/infineon-psoc6-light-ota - -# Generating infineon-psoc6-light-ota-updateimage -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true build_update_image=true' {out}/infineon-psoc6-light-ota-updateimage - -# Generating infineon-psoc6-light-updateimage -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012" build_update_image=true' {out}/infineon-psoc6-light-updateimage - -# Generating infineon-psoc6-lock -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012"' {out}/infineon-psoc6-lock - -# Generating infineon-psoc6-lock-ota -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true' {out}/infineon-psoc6-lock-ota - -# Generating infineon-psoc6-lock-ota-updateimage -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true build_update_image=true' {out}/infineon-psoc6-lock-ota-updateimage - -# Generating infineon-psoc6-lock-updateimage -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/infineon/psoc6 '--args=psoc6_board="CY8CKIT-062S2-43012" build_update_image=true' {out}/infineon-psoc6-lock-updateimage - -{root}/third_party/nxp/k32w0_sdk/sdk_fixes/patch_k32w_sdk.sh - -# Generating k32w-contact-low-power-release -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/contact-sensor-app/nxp/k32w/k32w0 '--args=k32w0_sdk_root="TEST_NXP_K32W0_SDK_ROOT" chip_with_low_power=1 chip_pw_tokenizer_logging=true is_debug=false chip_logging=false chip_crypto="tinycrypt" mbedtls_repo="//third_party/connectedhomeip/third_party/nxp/libs/mbedtls"' {out}/k32w-contact-low-power-release - -{root}/third_party/nxp/k32w0_sdk/sdk_fixes/patch_k32w_sdk.sh - -# Generating k32w-contact-release -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/contact-sensor-app/nxp/k32w/k32w0 '--args=k32w0_sdk_root="TEST_NXP_K32W0_SDK_ROOT" chip_with_low_power=0 chip_pw_tokenizer_logging=true is_debug=false chip_crypto="tinycrypt" mbedtls_repo="//third_party/connectedhomeip/third_party/nxp/libs/mbedtls"' {out}/k32w-contact-release - -{root}/third_party/nxp/k32w0_sdk/sdk_fixes/patch_k32w_sdk.sh - -# Generating k32w-light-ota-se -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/nxp/k32w/k32w0 '--args=k32w0_sdk_root="TEST_NXP_K32W0_SDK_ROOT" chip_with_low_power=0 is_debug=false chip_enable_ble=false chip_with_se05x=true' {out}/k32w-light-ota-se - -{root}/third_party/nxp/k32w0_sdk/sdk_fixes/patch_k32w_sdk.sh - -# Generating k32w-light-release-no-ota -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/nxp/k32w/k32w0 '--args=k32w0_sdk_root="TEST_NXP_K32W0_SDK_ROOT" chip_with_low_power=0 chip_pw_tokenizer_logging=true is_debug=false chip_enable_ota_requestor=false chip_crypto="tinycrypt" mbedtls_repo="//third_party/connectedhomeip/third_party/nxp/libs/mbedtls"' {out}/k32w-light-release-no-ota - -{root}/third_party/nxp/k32w0_sdk/sdk_fixes/patch_k32w_sdk.sh - -# Generating k32w-lock-low-power-release -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/nxp/k32w/k32w0 '--args=k32w0_sdk_root="TEST_NXP_K32W0_SDK_ROOT" chip_with_low_power=1 is_debug=false chip_logging=false' {out}/k32w-lock-low-power-release - -{root}/third_party/nxp/k32w0_sdk/sdk_fixes/patch_k32w_sdk.sh - -# Generating k32w-lock-release -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/nxp/k32w/k32w0 '--args=k32w0_sdk_root="TEST_NXP_K32W0_SDK_ROOT" chip_with_low_power=0 is_debug=false' {out}/k32w-lock-release - -{root}/third_party/nxp/k32w0_sdk/sdk_fixes/patch_k32w_sdk.sh - -# Generating k32w-shell-release -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/shell/nxp/k32w/k32w0 '--args=k32w0_sdk_root="TEST_NXP_K32W0_SDK_ROOT" chip_with_low_power=0 is_debug=false chip_logging=false' {out}/k32w-shell-release - -# Generating config mbed-CY8CPROTO_062_4343W-all-clusters-debug -mbed-tools configure -t GCC_ARM -m CY8CPROTO_062_4343W -p {root}/examples/all-clusters-app/mbed -o {out}/mbed-CY8CPROTO_062_4343W-all-clusters-debug --mbed-os-path {root}/third_party/mbed-os/repo - -# Generating mbed-CY8CPROTO_062_4343W-all-clusters-debug -cmake -S {root}/examples/all-clusters-app/mbed -B {out}/mbed-CY8CPROTO_062_4343W-all-clusters-debug -GNinja -DCMAKE_BUILD_TYPE=debug -DMBED_OS_PATH={root}/third_party/mbed-os/repo -DMBED_OS_POSIX_SOCKET_PATH={root}/third_party/mbed-os-posix-socket/repo - -# Generating config mbed-CY8CPROTO_062_4343W-all-clusters-develop -mbed-tools configure -t GCC_ARM -m CY8CPROTO_062_4343W -p {root}/examples/all-clusters-app/mbed -o {out}/mbed-CY8CPROTO_062_4343W-all-clusters-develop --mbed-os-path {root}/third_party/mbed-os/repo - -# Generating mbed-CY8CPROTO_062_4343W-all-clusters-develop -cmake -S {root}/examples/all-clusters-app/mbed -B {out}/mbed-CY8CPROTO_062_4343W-all-clusters-develop -GNinja -DCMAKE_BUILD_TYPE=develop -DMBED_OS_PATH={root}/third_party/mbed-os/repo -DMBED_OS_POSIX_SOCKET_PATH={root}/third_party/mbed-os-posix-socket/repo - -# Generating config mbed-CY8CPROTO_062_4343W-all-clusters-minimal-debug -mbed-tools configure -t GCC_ARM -m CY8CPROTO_062_4343W -p {root}/examples/all-clusters-minimal-app/mbed -o {out}/mbed-CY8CPROTO_062_4343W-all-clusters-minimal-debug --mbed-os-path {root}/third_party/mbed-os/repo - -# Generating mbed-CY8CPROTO_062_4343W-all-clusters-minimal-debug -cmake -S {root}/examples/all-clusters-minimal-app/mbed -B {out}/mbed-CY8CPROTO_062_4343W-all-clusters-minimal-debug -GNinja -DCMAKE_BUILD_TYPE=debug -DMBED_OS_PATH={root}/third_party/mbed-os/repo -DMBED_OS_POSIX_SOCKET_PATH={root}/third_party/mbed-os-posix-socket/repo - -# Generating config mbed-CY8CPROTO_062_4343W-all-clusters-minimal-develop -mbed-tools configure -t GCC_ARM -m CY8CPROTO_062_4343W -p {root}/examples/all-clusters-minimal-app/mbed -o {out}/mbed-CY8CPROTO_062_4343W-all-clusters-minimal-develop --mbed-os-path {root}/third_party/mbed-os/repo - -# Generating mbed-CY8CPROTO_062_4343W-all-clusters-minimal-develop -cmake -S {root}/examples/all-clusters-minimal-app/mbed -B {out}/mbed-CY8CPROTO_062_4343W-all-clusters-minimal-develop -GNinja -DCMAKE_BUILD_TYPE=develop -DMBED_OS_PATH={root}/third_party/mbed-os/repo -DMBED_OS_POSIX_SOCKET_PATH={root}/third_party/mbed-os-posix-socket/repo - -# Generating config mbed-CY8CPROTO_062_4343W-all-clusters-minimal-release -mbed-tools configure -t GCC_ARM -m CY8CPROTO_062_4343W -p {root}/examples/all-clusters-minimal-app/mbed -o {out}/mbed-CY8CPROTO_062_4343W-all-clusters-minimal-release --mbed-os-path {root}/third_party/mbed-os/repo - -# Generating mbed-CY8CPROTO_062_4343W-all-clusters-minimal-release -cmake -S {root}/examples/all-clusters-minimal-app/mbed -B {out}/mbed-CY8CPROTO_062_4343W-all-clusters-minimal-release -GNinja -DCMAKE_BUILD_TYPE=release -DMBED_OS_PATH={root}/third_party/mbed-os/repo -DMBED_OS_POSIX_SOCKET_PATH={root}/third_party/mbed-os-posix-socket/repo - -# Generating config mbed-CY8CPROTO_062_4343W-all-clusters-release -mbed-tools configure -t GCC_ARM -m CY8CPROTO_062_4343W -p {root}/examples/all-clusters-app/mbed -o {out}/mbed-CY8CPROTO_062_4343W-all-clusters-release --mbed-os-path {root}/third_party/mbed-os/repo - -# Generating mbed-CY8CPROTO_062_4343W-all-clusters-release -cmake -S {root}/examples/all-clusters-app/mbed -B {out}/mbed-CY8CPROTO_062_4343W-all-clusters-release -GNinja -DCMAKE_BUILD_TYPE=release -DMBED_OS_PATH={root}/third_party/mbed-os/repo -DMBED_OS_POSIX_SOCKET_PATH={root}/third_party/mbed-os-posix-socket/repo - -# Generating config mbed-CY8CPROTO_062_4343W-light-debug -mbed-tools configure -t GCC_ARM -m CY8CPROTO_062_4343W -p {root}/examples/lighting-app/mbed -o {out}/mbed-CY8CPROTO_062_4343W-light-debug --mbed-os-path {root}/third_party/mbed-os/repo - -# Generating mbed-CY8CPROTO_062_4343W-light-debug -cmake -S {root}/examples/lighting-app/mbed -B {out}/mbed-CY8CPROTO_062_4343W-light-debug -GNinja -DCMAKE_BUILD_TYPE=debug -DMBED_OS_PATH={root}/third_party/mbed-os/repo -DMBED_OS_POSIX_SOCKET_PATH={root}/third_party/mbed-os-posix-socket/repo - -# Generating config mbed-CY8CPROTO_062_4343W-light-develop -mbed-tools configure -t GCC_ARM -m CY8CPROTO_062_4343W -p {root}/examples/lighting-app/mbed -o {out}/mbed-CY8CPROTO_062_4343W-light-develop --mbed-os-path {root}/third_party/mbed-os/repo - -# Generating mbed-CY8CPROTO_062_4343W-light-develop -cmake -S {root}/examples/lighting-app/mbed -B {out}/mbed-CY8CPROTO_062_4343W-light-develop -GNinja -DCMAKE_BUILD_TYPE=develop -DMBED_OS_PATH={root}/third_party/mbed-os/repo -DMBED_OS_POSIX_SOCKET_PATH={root}/third_party/mbed-os-posix-socket/repo - -# Generating config mbed-CY8CPROTO_062_4343W-light-release -mbed-tools configure -t GCC_ARM -m CY8CPROTO_062_4343W -p {root}/examples/lighting-app/mbed -o {out}/mbed-CY8CPROTO_062_4343W-light-release --mbed-os-path {root}/third_party/mbed-os/repo - -# Generating mbed-CY8CPROTO_062_4343W-light-release -cmake -S {root}/examples/lighting-app/mbed -B {out}/mbed-CY8CPROTO_062_4343W-light-release -GNinja -DCMAKE_BUILD_TYPE=release -DMBED_OS_PATH={root}/third_party/mbed-os/repo -DMBED_OS_POSIX_SOCKET_PATH={root}/third_party/mbed-os-posix-socket/repo - -# Generating config mbed-CY8CPROTO_062_4343W-lock-debug -mbed-tools configure -t GCC_ARM -m CY8CPROTO_062_4343W -p {root}/examples/lock-app/mbed -o {out}/mbed-CY8CPROTO_062_4343W-lock-debug --mbed-os-path {root}/third_party/mbed-os/repo - -# Generating mbed-CY8CPROTO_062_4343W-lock-debug -cmake -S {root}/examples/lock-app/mbed -B {out}/mbed-CY8CPROTO_062_4343W-lock-debug -GNinja -DCMAKE_BUILD_TYPE=debug -DMBED_OS_PATH={root}/third_party/mbed-os/repo -DMBED_OS_POSIX_SOCKET_PATH={root}/third_party/mbed-os-posix-socket/repo - -# Generating config mbed-CY8CPROTO_062_4343W-lock-develop -mbed-tools configure -t GCC_ARM -m CY8CPROTO_062_4343W -p {root}/examples/lock-app/mbed -o {out}/mbed-CY8CPROTO_062_4343W-lock-develop --mbed-os-path {root}/third_party/mbed-os/repo - -# Generating mbed-CY8CPROTO_062_4343W-lock-develop -cmake -S {root}/examples/lock-app/mbed -B {out}/mbed-CY8CPROTO_062_4343W-lock-develop -GNinja -DCMAKE_BUILD_TYPE=develop -DMBED_OS_PATH={root}/third_party/mbed-os/repo -DMBED_OS_POSIX_SOCKET_PATH={root}/third_party/mbed-os-posix-socket/repo - -# Generating config mbed-CY8CPROTO_062_4343W-lock-release -mbed-tools configure -t GCC_ARM -m CY8CPROTO_062_4343W -p {root}/examples/lock-app/mbed -o {out}/mbed-CY8CPROTO_062_4343W-lock-release --mbed-os-path {root}/third_party/mbed-os/repo - -# Generating mbed-CY8CPROTO_062_4343W-lock-release -cmake -S {root}/examples/lock-app/mbed -B {out}/mbed-CY8CPROTO_062_4343W-lock-release -GNinja -DCMAKE_BUILD_TYPE=release -DMBED_OS_PATH={root}/third_party/mbed-os/repo -DMBED_OS_POSIX_SOCKET_PATH={root}/third_party/mbed-os-posix-socket/repo - -# Generating config mbed-CY8CPROTO_062_4343W-pigweed-debug -mbed-tools configure -t GCC_ARM -m CY8CPROTO_062_4343W -p {root}/examples/pigweed-app/mbed -o {out}/mbed-CY8CPROTO_062_4343W-pigweed-debug --mbed-os-path {root}/third_party/mbed-os/repo - -# Generating mbed-CY8CPROTO_062_4343W-pigweed-debug -cmake -S {root}/examples/pigweed-app/mbed -B {out}/mbed-CY8CPROTO_062_4343W-pigweed-debug -GNinja -DCMAKE_BUILD_TYPE=debug -DMBED_OS_PATH={root}/third_party/mbed-os/repo -DMBED_OS_POSIX_SOCKET_PATH={root}/third_party/mbed-os-posix-socket/repo - -# Generating config mbed-CY8CPROTO_062_4343W-pigweed-develop -mbed-tools configure -t GCC_ARM -m CY8CPROTO_062_4343W -p {root}/examples/pigweed-app/mbed -o {out}/mbed-CY8CPROTO_062_4343W-pigweed-develop --mbed-os-path {root}/third_party/mbed-os/repo - -# Generating mbed-CY8CPROTO_062_4343W-pigweed-develop -cmake -S {root}/examples/pigweed-app/mbed -B {out}/mbed-CY8CPROTO_062_4343W-pigweed-develop -GNinja -DCMAKE_BUILD_TYPE=develop -DMBED_OS_PATH={root}/third_party/mbed-os/repo -DMBED_OS_POSIX_SOCKET_PATH={root}/third_party/mbed-os-posix-socket/repo - -# Generating config mbed-CY8CPROTO_062_4343W-pigweed-release -mbed-tools configure -t GCC_ARM -m CY8CPROTO_062_4343W -p {root}/examples/pigweed-app/mbed -o {out}/mbed-CY8CPROTO_062_4343W-pigweed-release --mbed-os-path {root}/third_party/mbed-os/repo - -# Generating mbed-CY8CPROTO_062_4343W-pigweed-release -cmake -S {root}/examples/pigweed-app/mbed -B {out}/mbed-CY8CPROTO_062_4343W-pigweed-release -GNinja -DCMAKE_BUILD_TYPE=release -DMBED_OS_PATH={root}/third_party/mbed-os/repo -DMBED_OS_POSIX_SOCKET_PATH={root}/third_party/mbed-os-posix-socket/repo - -# Generating config mbed-CY8CPROTO_062_4343W-shell-debug -mbed-tools configure -t GCC_ARM -m CY8CPROTO_062_4343W -p {root}/examples/shell/mbed -o {out}/mbed-CY8CPROTO_062_4343W-shell-debug --mbed-os-path {root}/third_party/mbed-os/repo - -# Generating mbed-CY8CPROTO_062_4343W-shell-debug -cmake -S {root}/examples/shell/mbed -B {out}/mbed-CY8CPROTO_062_4343W-shell-debug -GNinja -DCMAKE_BUILD_TYPE=debug -DMBED_OS_PATH={root}/third_party/mbed-os/repo -DMBED_OS_POSIX_SOCKET_PATH={root}/third_party/mbed-os-posix-socket/repo - -# Generating config mbed-CY8CPROTO_062_4343W-shell-develop -mbed-tools configure -t GCC_ARM -m CY8CPROTO_062_4343W -p {root}/examples/shell/mbed -o {out}/mbed-CY8CPROTO_062_4343W-shell-develop --mbed-os-path {root}/third_party/mbed-os/repo - -# Generating mbed-CY8CPROTO_062_4343W-shell-develop -cmake -S {root}/examples/shell/mbed -B {out}/mbed-CY8CPROTO_062_4343W-shell-develop -GNinja -DCMAKE_BUILD_TYPE=develop -DMBED_OS_PATH={root}/third_party/mbed-os/repo -DMBED_OS_POSIX_SOCKET_PATH={root}/third_party/mbed-os-posix-socket/repo - -# Generating config mbed-CY8CPROTO_062_4343W-shell-release -mbed-tools configure -t GCC_ARM -m CY8CPROTO_062_4343W -p {root}/examples/shell/mbed -o {out}/mbed-CY8CPROTO_062_4343W-shell-release --mbed-os-path {root}/third_party/mbed-os/repo - -# Generating mbed-CY8CPROTO_062_4343W-shell-release -cmake -S {root}/examples/shell/mbed -B {out}/mbed-CY8CPROTO_062_4343W-shell-release -GNinja -DCMAKE_BUILD_TYPE=release -DMBED_OS_PATH={root}/third_party/mbed-os/repo -DMBED_OS_POSIX_SOCKET_PATH={root}/third_party/mbed-os-posix-socket/repo - -# Generating mw320-all-clusters-app -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/nxp/mw320 {out}/mw320-all-clusters-app - -# Generating nrf-native-posix-64-tests -bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; -export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; -west build --cmake-only -d {out}/nrf-native-posix-64-tests -b native_posix_64 {root}/src/test_driver/nrfconnect' - -# Generating nrf-nrf52840dk-all-clusters -bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; -export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; -west build --cmake-only -d {out}/nrf-nrf52840dk-all-clusters -b nrf52840dk_nrf52840 {root}/examples/all-clusters-app/nrfconnect' - -# Generating nrf-nrf52840dk-all-clusters-minimal -bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; -export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; -west build --cmake-only -d {out}/nrf-nrf52840dk-all-clusters-minimal -b nrf52840dk_nrf52840 {root}/examples/all-clusters-minimal-app/nrfconnect' - -# Generating nrf-nrf52840dk-light -bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; -export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; -west build --cmake-only -d {out}/nrf-nrf52840dk-light -b nrf52840dk_nrf52840 {root}/examples/lighting-app/nrfconnect' - -# Generating nrf-nrf52840dk-light-rpc -bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; -export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; -west build --cmake-only -d {out}/nrf-nrf52840dk-light-rpc -b nrf52840dk_nrf52840 {root}/examples/lighting-app/nrfconnect -- -DOVERLAY_CONFIG=rpc.overlay' - -# Generating nrf-nrf52840dk-lock -bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; -export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; -west build --cmake-only -d {out}/nrf-nrf52840dk-lock -b nrf52840dk_nrf52840 {root}/examples/lock-app/nrfconnect' - -# Generating nrf-nrf52840dk-pump -bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; -export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; -west build --cmake-only -d {out}/nrf-nrf52840dk-pump -b nrf52840dk_nrf52840 {root}/examples/pump-app/nrfconnect' - -# Generating nrf-nrf52840dk-pump-controller -bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; -export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; -west build --cmake-only -d {out}/nrf-nrf52840dk-pump-controller -b nrf52840dk_nrf52840 {root}/examples/pump-controller-app/nrfconnect' - -# Generating nrf-nrf52840dk-shell -bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; -export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; -west build --cmake-only -d {out}/nrf-nrf52840dk-shell -b nrf52840dk_nrf52840 {root}/examples/shell/nrfconnect' - -# Generating nrf-nrf52840dongle-all-clusters -bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; -export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; -west build --cmake-only -d {out}/nrf-nrf52840dongle-all-clusters -b nrf52840dongle_nrf52840 {root}/examples/all-clusters-app/nrfconnect' - -# Generating nrf-nrf52840dongle-all-clusters-minimal -bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; -export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; -west build --cmake-only -d {out}/nrf-nrf52840dongle-all-clusters-minimal -b nrf52840dongle_nrf52840 {root}/examples/all-clusters-minimal-app/nrfconnect' - -# Generating nrf-nrf52840dongle-light -bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; -export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; -west build --cmake-only -d {out}/nrf-nrf52840dongle-light -b nrf52840dongle_nrf52840 {root}/examples/lighting-app/nrfconnect -- -DCONF_FILE=prj_no_dfu.conf' - -# Generating nrf-nrf5340dk-all-clusters -bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; -export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; -west build --cmake-only -d {out}/nrf-nrf5340dk-all-clusters -b nrf5340dk_nrf5340_cpuapp {root}/examples/all-clusters-app/nrfconnect' - -# Generating nrf-nrf5340dk-all-clusters-minimal -bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; -export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; -west build --cmake-only -d {out}/nrf-nrf5340dk-all-clusters-minimal -b nrf5340dk_nrf5340_cpuapp {root}/examples/all-clusters-minimal-app/nrfconnect' - -# Generating nrf-nrf5340dk-light -bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; -export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; -west build --cmake-only -d {out}/nrf-nrf5340dk-light -b nrf5340dk_nrf5340_cpuapp {root}/examples/lighting-app/nrfconnect' - -# Generating nrf-nrf5340dk-light-rpc -bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; -export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; -west build --cmake-only -d {out}/nrf-nrf5340dk-light-rpc -b nrf5340dk_nrf5340_cpuapp {root}/examples/lighting-app/nrfconnect -- -DOVERLAY_CONFIG=rpc.overlay' - -# Generating nrf-nrf5340dk-lock -bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; -export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; -west build --cmake-only -d {out}/nrf-nrf5340dk-lock -b nrf5340dk_nrf5340_cpuapp {root}/examples/lock-app/nrfconnect' - -# Generating nrf-nrf5340dk-pump -bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; -export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; -west build --cmake-only -d {out}/nrf-nrf5340dk-pump -b nrf5340dk_nrf5340_cpuapp {root}/examples/pump-app/nrfconnect' - -# Generating nrf-nrf5340dk-pump-controller -bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; -export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; -west build --cmake-only -d {out}/nrf-nrf5340dk-pump-controller -b nrf5340dk_nrf5340_cpuapp {root}/examples/pump-controller-app/nrfconnect' - -# Generating nrf-nrf5340dk-shell -bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; -export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; -west build --cmake-only -d {out}/nrf-nrf5340dk-shell -b nrf5340dk_nrf5340_cpuapp {root}/examples/shell/nrfconnect' - -# Generating qpg-light -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/qpg '--args=qpg_target_ic="qpg6105"' {out}/qpg-light - -# Generating qpg-lock -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/qpg '--args=qpg_target_ic="qpg6105"' {out}/qpg-lock - -# Generating qpg-persistent-storage -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/persistent-storage/qpg '--args=qpg_target_ic="qpg6105"' {out}/qpg-persistent-storage - -# Generating qpg-shell -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/shell/qpg '--args=qpg_target_ic="qpg6105"' {out}/qpg-shell - -# Generating telink-tlsr9518adk80d-light -bash -c 'export ZEPHYR_TOOLCHAIN_VARIANT=zephyr -export ZEPHYR_BASE="$TELINK_ZEPHYR_BASE" -export ZEPHYR_SDK_INSTALL_DIR="$TELINK_ZEPHYR_SDK_DIR" -source "$ZEPHYR_BASE/zephyr-env.sh"; -west build --cmake-only -d {out}/telink-tlsr9518adk80d-light -b tlsr9518adk80d {root}/examples/lighting-app/telink' - -# Generating telink-tlsr9518adk80d-light-switch -bash -c 'export ZEPHYR_TOOLCHAIN_VARIANT=zephyr -export ZEPHYR_BASE="$TELINK_ZEPHYR_BASE" -export ZEPHYR_SDK_INSTALL_DIR="$TELINK_ZEPHYR_SDK_DIR" -source "$ZEPHYR_BASE/zephyr-env.sh"; -west build --cmake-only -d {out}/telink-tlsr9518adk80d-light-switch -b tlsr9518adk80d {root}/examples/light-switch-app/telink' - -# Generating telink-tlsr9518adk80d-ota-requestor -bash -c 'export ZEPHYR_TOOLCHAIN_VARIANT=zephyr -export ZEPHYR_BASE="$TELINK_ZEPHYR_BASE" -export ZEPHYR_SDK_INSTALL_DIR="$TELINK_ZEPHYR_SDK_DIR" -source "$ZEPHYR_BASE/zephyr-env.sh"; -west build --cmake-only -d {out}/telink-tlsr9518adk80d-ota-requestor -b tlsr9518adk80d {root}/examples/ota-requestor-app/telink' - -# Generating tizen-arm-all-clusters -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/tizen '--args=target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-all-clusters - -# Generating tizen-arm-all-clusters-asan -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/tizen '--args=is_asan=true target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-all-clusters-asan - -# Generating tizen-arm-all-clusters-minimal -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/tizen '--args=target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-all-clusters-minimal - -# Generating tizen-arm-all-clusters-minimal-asan -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/tizen '--args=is_asan=true target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-all-clusters-minimal-asan - -# Generating tizen-arm-all-clusters-minimal-no-ble -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/tizen '--args=chip_config_network_layer_ble=false target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-all-clusters-minimal-no-ble - -# Generating tizen-arm-all-clusters-minimal-no-ble-asan -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/tizen '--args=chip_config_network_layer_ble=false is_asan=true target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-all-clusters-minimal-no-ble-asan - -# Generating tizen-arm-all-clusters-minimal-no-ble-no-wifi -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/tizen '--args=chip_config_network_layer_ble=false chip_enable_wifi=false target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-all-clusters-minimal-no-ble-no-wifi - -# Generating tizen-arm-all-clusters-minimal-no-ble-no-wifi-asan -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/tizen '--args=chip_config_network_layer_ble=false chip_enable_wifi=false is_asan=true target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-all-clusters-minimal-no-ble-no-wifi-asan - -# Generating tizen-arm-all-clusters-minimal-no-wifi -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/tizen '--args=chip_enable_wifi=false target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-all-clusters-minimal-no-wifi - -# Generating tizen-arm-all-clusters-minimal-no-wifi-asan -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/tizen '--args=chip_enable_wifi=false is_asan=true target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-all-clusters-minimal-no-wifi-asan - -# Generating tizen-arm-all-clusters-no-ble -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/tizen '--args=chip_config_network_layer_ble=false target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-all-clusters-no-ble - -# Generating tizen-arm-all-clusters-no-ble-asan -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/tizen '--args=chip_config_network_layer_ble=false is_asan=true target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-all-clusters-no-ble-asan - -# Generating tizen-arm-all-clusters-no-ble-no-wifi -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/tizen '--args=chip_config_network_layer_ble=false chip_enable_wifi=false target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-all-clusters-no-ble-no-wifi - -# Generating tizen-arm-all-clusters-no-ble-no-wifi-asan -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/tizen '--args=chip_config_network_layer_ble=false chip_enable_wifi=false is_asan=true target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-all-clusters-no-ble-no-wifi-asan - -# Generating tizen-arm-all-clusters-no-wifi -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/tizen '--args=chip_enable_wifi=false target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-all-clusters-no-wifi - -# Generating tizen-arm-all-clusters-no-wifi-asan -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/tizen '--args=chip_enable_wifi=false is_asan=true target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-all-clusters-no-wifi-asan - -# Generating tizen-arm-chip-tool -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/chip-tool '--args=target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-chip-tool - -# Generating tizen-arm-chip-tool-asan -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/chip-tool '--args=is_asan=true target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-chip-tool-asan - -# Generating tizen-arm-chip-tool-no-ble -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/chip-tool '--args=chip_config_network_layer_ble=false target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-chip-tool-no-ble - -# Generating tizen-arm-chip-tool-no-ble-asan -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/chip-tool '--args=chip_config_network_layer_ble=false is_asan=true target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-chip-tool-no-ble-asan - -# Generating tizen-arm-chip-tool-no-ble-no-wifi -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/chip-tool '--args=chip_config_network_layer_ble=false chip_enable_wifi=false target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-chip-tool-no-ble-no-wifi - -# Generating tizen-arm-chip-tool-no-ble-no-wifi-asan -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/chip-tool '--args=chip_config_network_layer_ble=false chip_enable_wifi=false is_asan=true target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-chip-tool-no-ble-no-wifi-asan - -# Generating tizen-arm-chip-tool-no-wifi -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/chip-tool '--args=chip_enable_wifi=false target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-chip-tool-no-wifi - -# Generating tizen-arm-chip-tool-no-wifi-asan -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/chip-tool '--args=chip_enable_wifi=false is_asan=true target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-chip-tool-no-wifi-asan - -# Generating tizen-arm-light -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/tizen '--args=target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-light - -# Generating tizen-arm-light-asan -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/tizen '--args=is_asan=true target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-light-asan - -# Generating tizen-arm-light-no-ble -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/tizen '--args=chip_config_network_layer_ble=false target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-light-no-ble - -# Generating tizen-arm-light-no-ble-asan -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/tizen '--args=chip_config_network_layer_ble=false is_asan=true target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-light-no-ble-asan - -# Generating tizen-arm-light-no-ble-no-wifi -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/tizen '--args=chip_config_network_layer_ble=false chip_enable_wifi=false target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-light-no-ble-no-wifi - -# Generating tizen-arm-light-no-ble-no-wifi-asan -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/tizen '--args=chip_config_network_layer_ble=false chip_enable_wifi=false is_asan=true target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-light-no-ble-no-wifi-asan - -# Generating tizen-arm-light-no-wifi -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/tizen '--args=chip_enable_wifi=false target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-light-no-wifi - -# Generating tizen-arm-light-no-wifi-asan -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/tizen '--args=chip_enable_wifi=false is_asan=true target_os="tizen" target_cpu="arm" tizen_sdk_root="TEST_TIZEN_SDK_ROOT" tizen_sdk_sysroot="TEST_TIZEN_SDK_SYSROOT"' {out}/tizen-arm-light-no-wifi-asan - -# Building ameba-amebad-all-clusters -ninja -C {out}/ameba-amebad-all-clusters - -# Building ameba-amebad-all-clusters-minimal -ninja -C {out}/ameba-amebad-all-clusters-minimal - -# Building ameba-amebad-light -ninja -C {out}/ameba-amebad-light - -# Building ameba-amebad-pigweed -ninja -C {out}/ameba-amebad-pigweed - -# Building APP android-androidstudio-arm-chip-tool -{root}/examples/android/CHIPTool/gradlew -p {root}/examples/android/CHIPTool -PmatterBuildSrcDir={out}/android-androidstudio-arm-chip-tool -PmatterSdkSourceBuild=true -PmatterSourceBuildAbiFilters=armeabi-v7a assembleDebug - -# Building APP android-androidstudio-arm64-chip-tool -{root}/examples/android/CHIPTool/gradlew -p {root}/examples/android/CHIPTool -PmatterBuildSrcDir={out}/android-androidstudio-arm64-chip-tool -PmatterSdkSourceBuild=true -PmatterSourceBuildAbiFilters=arm64-v8a assembleDebug - -# Building APP android-androidstudio-x64-chip-tool -{root}/examples/android/CHIPTool/gradlew -p {root}/examples/android/CHIPTool -PmatterBuildSrcDir={out}/android-androidstudio-x64-chip-tool -PmatterSdkSourceBuild=true -PmatterSourceBuildAbiFilters=x86_64 assembleDebug - -# Building APP android-androidstudio-x86-chip-tool -{root}/examples/android/CHIPTool/gradlew -p {root}/examples/android/CHIPTool -PmatterBuildSrcDir={out}/android-androidstudio-x86-chip-tool -PmatterSdkSourceBuild=true -PmatterSourceBuildAbiFilters=x86 assembleDebug - -# Building JNI android-arm-chip-tool -ninja -C {out}/android-arm-chip-tool - -# Prepare Native libs android-arm-chip-tool -mkdir -p {root}/examples/android/CHIPTool/app/libs/jniLibs/armeabi-v7a - -cp {out}/android-arm-chip-tool/lib/jni/armeabi-v7a/libSetupPayloadParser.so {root}/examples/android/CHIPTool/app/libs/jniLibs/armeabi-v7a/libSetupPayloadParser.so - -cp {out}/android-arm-chip-tool/lib/jni/armeabi-v7a/libCHIPController.so {root}/examples/android/CHIPTool/app/libs/jniLibs/armeabi-v7a/libCHIPController.so - -cp {out}/android-arm-chip-tool/lib/jni/armeabi-v7a/libc++_shared.so {root}/examples/android/CHIPTool/app/libs/jniLibs/armeabi-v7a/libc++_shared.so - -cp {out}/android-arm-chip-tool/lib/src/controller/java/CHIPController.jar {root}/examples/android/CHIPTool/app/libs/CHIPController.jar - -cp {out}/android-arm-chip-tool/lib/src/setup_payload/java/SetupPayloadParser.jar {root}/examples/android/CHIPTool/app/libs/SetupPayloadParser.jar - -cp {out}/android-arm-chip-tool/lib/src/platform/android/AndroidPlatform.jar {root}/examples/android/CHIPTool/app/libs/AndroidPlatform.jar - -# Building APP android-arm-chip-tool -{root}/examples/android/CHIPTool/gradlew -p {root}/examples/android/CHIPTool -PmatterBuildSrcDir={out}/android-arm-chip-tool -PmatterSdkSourceBuild=false -PbuildDir={out}/android-arm-chip-tool assembleDebug - -# Building JNI android-arm-tv-casting-app -ninja -C {out}/android-arm-tv-casting-app - -# Prepare Native libs android-arm-tv-casting-app -mkdir -p {root}/examples/tv-casting-app/android/App/app/libs/jniLibs/armeabi-v7a - -cp {out}/android-arm-tv-casting-app/lib/jni/armeabi-v7a/libc++_shared.so {root}/examples/tv-casting-app/android/App/app/libs/jniLibs/armeabi-v7a/libc++_shared.so - -cp {out}/android-arm-tv-casting-app/lib/jni/armeabi-v7a/libTvCastingApp.so {root}/examples/tv-casting-app/android/App/app/libs/jniLibs/armeabi-v7a/libTvCastingApp.so - -cp {out}/android-arm-tv-casting-app/lib/third_party/connectedhomeip/src/platform/android/AndroidPlatform.jar {root}/examples/tv-casting-app/android/App/app/libs/AndroidPlatform.jar - -cp {out}/android-arm-tv-casting-app/lib/third_party/connectedhomeip/src/app/server/java/CHIPAppServer.jar {root}/examples/tv-casting-app/android/App/app/libs/CHIPAppServer.jar - -cp {out}/android-arm-tv-casting-app/lib/TvCastingApp.jar {root}/examples/tv-casting-app/android/App/app/libs/TvCastingApp.jar - -# Building Example android-arm-tv-casting-app -{root}/examples/tv-casting-app/android/App/gradlew -p {root}/examples/tv-casting-app/android/App/ -PmatterBuildSrcDir={out}/android-arm-tv-casting-app -PmatterSdkSourceBuild=false -PbuildDir={out}/android-arm-tv-casting-app assembleDebug - -# Building JNI android-arm-tv-server -ninja -C {out}/android-arm-tv-server - -# Prepare Native libs android-arm-tv-server -mkdir -p {root}/examples/tv-app/android/App/app/libs/jniLibs/armeabi-v7a - -cp {out}/android-arm-tv-server/lib/jni/armeabi-v7a/libSetupPayloadParser.so {root}/examples/tv-app/android/App/app/libs/jniLibs/armeabi-v7a/libSetupPayloadParser.so - -cp {out}/android-arm-tv-server/lib/jni/armeabi-v7a/libc++_shared.so {root}/examples/tv-app/android/App/app/libs/jniLibs/armeabi-v7a/libc++_shared.so - -cp {out}/android-arm-tv-server/lib/jni/armeabi-v7a/libTvApp.so {root}/examples/tv-app/android/App/app/libs/jniLibs/armeabi-v7a/libTvApp.so - -cp {out}/android-arm-tv-server/lib/third_party/connectedhomeip/src/setup_payload/java/SetupPayloadParser.jar {root}/examples/tv-app/android/App/app/libs/SetupPayloadParser.jar - -cp {out}/android-arm-tv-server/lib/third_party/connectedhomeip/src/platform/android/AndroidPlatform.jar {root}/examples/tv-app/android/App/app/libs/AndroidPlatform.jar - -cp {out}/android-arm-tv-server/lib/third_party/connectedhomeip/src/app/server/java/CHIPAppServer.jar {root}/examples/tv-app/android/App/app/libs/CHIPAppServer.jar - -cp {out}/android-arm-tv-server/lib/TvApp.jar {root}/examples/tv-app/android/App/app/libs/TvApp.jar - -# Building Example android-arm-tv-server, module platform-app -{root}/examples/tv-app/android/App/gradlew -p {root}/examples/tv-app/android/App/ -PmatterBuildSrcDir={out}/android-arm-tv-server -PmatterSdkSourceBuild=false -PbuildDir={out}/android-arm-tv-server/platform-app :platform-app:assembleDebug - -# Building Example android-arm-tv-server, module content-app -{root}/examples/tv-app/android/App/gradlew -p {root}/examples/tv-app/android/App/ -PmatterBuildSrcDir={out}/android-arm-tv-server -PmatterSdkSourceBuild=false -PbuildDir={out}/android-arm-tv-server/content-app :content-app:assembleDebug - -# Building JNI android-arm64-chip-test -ninja -C {out}/android-arm64-chip-test - -# Prepare Native libs android-arm64-chip-test -mkdir -p {root}/examples/android/CHIPTest/app/libs/jniLibs/arm64-v8a - -cp {out}/android-arm64-chip-test/lib/jni/arm64-v8a/libSetupPayloadParser.so {root}/examples/android/CHIPTest/app/libs/jniLibs/arm64-v8a/libSetupPayloadParser.so - -cp {out}/android-arm64-chip-test/lib/jni/arm64-v8a/libCHIPController.so {root}/examples/android/CHIPTest/app/libs/jniLibs/arm64-v8a/libCHIPController.so - -cp {out}/android-arm64-chip-test/lib/jni/arm64-v8a/libc++_shared.so {root}/examples/android/CHIPTest/app/libs/jniLibs/arm64-v8a/libc++_shared.so - -cp {out}/android-arm64-chip-test/lib/src/controller/java/CHIPController.jar {root}/examples/android/CHIPTest/app/libs/CHIPController.jar - -cp {out}/android-arm64-chip-test/lib/src/setup_payload/java/SetupPayloadParser.jar {root}/examples/android/CHIPTest/app/libs/SetupPayloadParser.jar - -cp {out}/android-arm64-chip-test/lib/src/platform/android/AndroidPlatform.jar {root}/examples/android/CHIPTest/app/libs/AndroidPlatform.jar - -# Building APP android-arm64-chip-test -{root}/examples/android/CHIPTest/gradlew -p {root}/examples/android/CHIPTest -PmatterBuildSrcDir={out}/android-arm64-chip-test -PmatterSdkSourceBuild=false -PbuildDir={out}/android-arm64-chip-test assembleDebug - -# Building JNI android-arm64-chip-tool -ninja -C {out}/android-arm64-chip-tool - -# Prepare Native libs android-arm64-chip-tool -mkdir -p {root}/examples/android/CHIPTool/app/libs/jniLibs/arm64-v8a - -cp {out}/android-arm64-chip-tool/lib/jni/arm64-v8a/libSetupPayloadParser.so {root}/examples/android/CHIPTool/app/libs/jniLibs/arm64-v8a/libSetupPayloadParser.so - -cp {out}/android-arm64-chip-tool/lib/jni/arm64-v8a/libCHIPController.so {root}/examples/android/CHIPTool/app/libs/jniLibs/arm64-v8a/libCHIPController.so - -cp {out}/android-arm64-chip-tool/lib/jni/arm64-v8a/libc++_shared.so {root}/examples/android/CHIPTool/app/libs/jniLibs/arm64-v8a/libc++_shared.so - -cp {out}/android-arm64-chip-tool/lib/src/controller/java/CHIPController.jar {root}/examples/android/CHIPTool/app/libs/CHIPController.jar - -cp {out}/android-arm64-chip-tool/lib/src/setup_payload/java/SetupPayloadParser.jar {root}/examples/android/CHIPTool/app/libs/SetupPayloadParser.jar - -cp {out}/android-arm64-chip-tool/lib/src/platform/android/AndroidPlatform.jar {root}/examples/android/CHIPTool/app/libs/AndroidPlatform.jar - -# Building APP android-arm64-chip-tool -{root}/examples/android/CHIPTool/gradlew -p {root}/examples/android/CHIPTool -PmatterBuildSrcDir={out}/android-arm64-chip-tool -PmatterSdkSourceBuild=false -PbuildDir={out}/android-arm64-chip-tool assembleDebug - -# Building JNI android-arm64-tv-casting-app -ninja -C {out}/android-arm64-tv-casting-app - -# Prepare Native libs android-arm64-tv-casting-app -mkdir -p {root}/examples/tv-casting-app/android/App/app/libs/jniLibs/arm64-v8a - -cp {out}/android-arm64-tv-casting-app/lib/jni/arm64-v8a/libc++_shared.so {root}/examples/tv-casting-app/android/App/app/libs/jniLibs/arm64-v8a/libc++_shared.so - -cp {out}/android-arm64-tv-casting-app/lib/jni/arm64-v8a/libTvCastingApp.so {root}/examples/tv-casting-app/android/App/app/libs/jniLibs/arm64-v8a/libTvCastingApp.so - -cp {out}/android-arm64-tv-casting-app/lib/third_party/connectedhomeip/src/platform/android/AndroidPlatform.jar {root}/examples/tv-casting-app/android/App/app/libs/AndroidPlatform.jar - -cp {out}/android-arm64-tv-casting-app/lib/third_party/connectedhomeip/src/app/server/java/CHIPAppServer.jar {root}/examples/tv-casting-app/android/App/app/libs/CHIPAppServer.jar - -cp {out}/android-arm64-tv-casting-app/lib/TvCastingApp.jar {root}/examples/tv-casting-app/android/App/app/libs/TvCastingApp.jar - -# Building Example android-arm64-tv-casting-app -{root}/examples/tv-casting-app/android/App/gradlew -p {root}/examples/tv-casting-app/android/App/ -PmatterBuildSrcDir={out}/android-arm64-tv-casting-app -PmatterSdkSourceBuild=false -PbuildDir={out}/android-arm64-tv-casting-app assembleDebug - -# Building JNI android-arm64-tv-server -ninja -C {out}/android-arm64-tv-server - -# Prepare Native libs android-arm64-tv-server -mkdir -p {root}/examples/tv-app/android/App/app/libs/jniLibs/arm64-v8a - -cp {out}/android-arm64-tv-server/lib/jni/arm64-v8a/libSetupPayloadParser.so {root}/examples/tv-app/android/App/app/libs/jniLibs/arm64-v8a/libSetupPayloadParser.so - -cp {out}/android-arm64-tv-server/lib/jni/arm64-v8a/libc++_shared.so {root}/examples/tv-app/android/App/app/libs/jniLibs/arm64-v8a/libc++_shared.so - -cp {out}/android-arm64-tv-server/lib/jni/arm64-v8a/libTvApp.so {root}/examples/tv-app/android/App/app/libs/jniLibs/arm64-v8a/libTvApp.so - -cp {out}/android-arm64-tv-server/lib/third_party/connectedhomeip/src/setup_payload/java/SetupPayloadParser.jar {root}/examples/tv-app/android/App/app/libs/SetupPayloadParser.jar - -cp {out}/android-arm64-tv-server/lib/third_party/connectedhomeip/src/platform/android/AndroidPlatform.jar {root}/examples/tv-app/android/App/app/libs/AndroidPlatform.jar - -cp {out}/android-arm64-tv-server/lib/third_party/connectedhomeip/src/app/server/java/CHIPAppServer.jar {root}/examples/tv-app/android/App/app/libs/CHIPAppServer.jar - -cp {out}/android-arm64-tv-server/lib/TvApp.jar {root}/examples/tv-app/android/App/app/libs/TvApp.jar - -# Building Example android-arm64-tv-server, module platform-app -{root}/examples/tv-app/android/App/gradlew -p {root}/examples/tv-app/android/App/ -PmatterBuildSrcDir={out}/android-arm64-tv-server -PmatterSdkSourceBuild=false -PbuildDir={out}/android-arm64-tv-server/platform-app :platform-app:assembleDebug - -# Building Example android-arm64-tv-server, module content-app -{root}/examples/tv-app/android/App/gradlew -p {root}/examples/tv-app/android/App/ -PmatterBuildSrcDir={out}/android-arm64-tv-server -PmatterSdkSourceBuild=false -PbuildDir={out}/android-arm64-tv-server/content-app :content-app:assembleDebug - -# Building JNI android-x64-chip-tool -ninja -C {out}/android-x64-chip-tool - -# Prepare Native libs android-x64-chip-tool -mkdir -p {root}/examples/android/CHIPTool/app/libs/jniLibs/x86_64 - -cp {out}/android-x64-chip-tool/lib/jni/x86_64/libSetupPayloadParser.so {root}/examples/android/CHIPTool/app/libs/jniLibs/x86_64/libSetupPayloadParser.so - -cp {out}/android-x64-chip-tool/lib/jni/x86_64/libCHIPController.so {root}/examples/android/CHIPTool/app/libs/jniLibs/x86_64/libCHIPController.so - -cp {out}/android-x64-chip-tool/lib/jni/x86_64/libc++_shared.so {root}/examples/android/CHIPTool/app/libs/jniLibs/x86_64/libc++_shared.so - -cp {out}/android-x64-chip-tool/lib/src/controller/java/CHIPController.jar {root}/examples/android/CHIPTool/app/libs/CHIPController.jar - -cp {out}/android-x64-chip-tool/lib/src/setup_payload/java/SetupPayloadParser.jar {root}/examples/android/CHIPTool/app/libs/SetupPayloadParser.jar - -cp {out}/android-x64-chip-tool/lib/src/platform/android/AndroidPlatform.jar {root}/examples/android/CHIPTool/app/libs/AndroidPlatform.jar - -# Building APP android-x64-chip-tool -{root}/examples/android/CHIPTool/gradlew -p {root}/examples/android/CHIPTool -PmatterBuildSrcDir={out}/android-x64-chip-tool -PmatterSdkSourceBuild=false -PbuildDir={out}/android-x64-chip-tool assembleDebug - -# Building JNI android-x64-tv-server -ninja -C {out}/android-x64-tv-server - -# Prepare Native libs android-x64-tv-server -mkdir -p {root}/examples/tv-app/android/App/app/libs/jniLibs/x86_64 - -cp {out}/android-x64-tv-server/lib/jni/x86_64/libSetupPayloadParser.so {root}/examples/tv-app/android/App/app/libs/jniLibs/x86_64/libSetupPayloadParser.so - -cp {out}/android-x64-tv-server/lib/jni/x86_64/libc++_shared.so {root}/examples/tv-app/android/App/app/libs/jniLibs/x86_64/libc++_shared.so - -cp {out}/android-x64-tv-server/lib/jni/x86_64/libTvApp.so {root}/examples/tv-app/android/App/app/libs/jniLibs/x86_64/libTvApp.so - -cp {out}/android-x64-tv-server/lib/third_party/connectedhomeip/src/setup_payload/java/SetupPayloadParser.jar {root}/examples/tv-app/android/App/app/libs/SetupPayloadParser.jar - -cp {out}/android-x64-tv-server/lib/third_party/connectedhomeip/src/platform/android/AndroidPlatform.jar {root}/examples/tv-app/android/App/app/libs/AndroidPlatform.jar - -cp {out}/android-x64-tv-server/lib/third_party/connectedhomeip/src/app/server/java/CHIPAppServer.jar {root}/examples/tv-app/android/App/app/libs/CHIPAppServer.jar - -cp {out}/android-x64-tv-server/lib/TvApp.jar {root}/examples/tv-app/android/App/app/libs/TvApp.jar - -# Building Example android-x64-tv-server, module platform-app -{root}/examples/tv-app/android/App/gradlew -p {root}/examples/tv-app/android/App/ -PmatterBuildSrcDir={out}/android-x64-tv-server -PmatterSdkSourceBuild=false -PbuildDir={out}/android-x64-tv-server/platform-app :platform-app:assembleDebug - -# Building Example android-x64-tv-server, module content-app -{root}/examples/tv-app/android/App/gradlew -p {root}/examples/tv-app/android/App/ -PmatterBuildSrcDir={out}/android-x64-tv-server -PmatterSdkSourceBuild=false -PbuildDir={out}/android-x64-tv-server/content-app :content-app:assembleDebug - -# Building JNI android-x86-chip-tool -ninja -C {out}/android-x86-chip-tool - -# Prepare Native libs android-x86-chip-tool -mkdir -p {root}/examples/android/CHIPTool/app/libs/jniLibs/x86 - -cp {out}/android-x86-chip-tool/lib/jni/x86/libSetupPayloadParser.so {root}/examples/android/CHIPTool/app/libs/jniLibs/x86/libSetupPayloadParser.so - -cp {out}/android-x86-chip-tool/lib/jni/x86/libCHIPController.so {root}/examples/android/CHIPTool/app/libs/jniLibs/x86/libCHIPController.so - -cp {out}/android-x86-chip-tool/lib/jni/x86/libc++_shared.so {root}/examples/android/CHIPTool/app/libs/jniLibs/x86/libc++_shared.so - -cp {out}/android-x86-chip-tool/lib/src/controller/java/CHIPController.jar {root}/examples/android/CHIPTool/app/libs/CHIPController.jar - -cp {out}/android-x86-chip-tool/lib/src/setup_payload/java/SetupPayloadParser.jar {root}/examples/android/CHIPTool/app/libs/SetupPayloadParser.jar - -cp {out}/android-x86-chip-tool/lib/src/platform/android/AndroidPlatform.jar {root}/examples/android/CHIPTool/app/libs/AndroidPlatform.jar - -# Building APP android-x86-chip-tool -{root}/examples/android/CHIPTool/gradlew -p {root}/examples/android/CHIPTool -PmatterBuildSrcDir={out}/android-x86-chip-tool -PmatterSdkSourceBuild=false -PbuildDir={out}/android-x86-chip-tool assembleDebug - -# Building JNI android-x86-tv-server -ninja -C {out}/android-x86-tv-server - -# Prepare Native libs android-x86-tv-server -mkdir -p {root}/examples/tv-app/android/App/app/libs/jniLibs/x86 - -cp {out}/android-x86-tv-server/lib/jni/x86/libSetupPayloadParser.so {root}/examples/tv-app/android/App/app/libs/jniLibs/x86/libSetupPayloadParser.so - -cp {out}/android-x86-tv-server/lib/jni/x86/libc++_shared.so {root}/examples/tv-app/android/App/app/libs/jniLibs/x86/libc++_shared.so - -cp {out}/android-x86-tv-server/lib/jni/x86/libTvApp.so {root}/examples/tv-app/android/App/app/libs/jniLibs/x86/libTvApp.so - -cp {out}/android-x86-tv-server/lib/third_party/connectedhomeip/src/setup_payload/java/SetupPayloadParser.jar {root}/examples/tv-app/android/App/app/libs/SetupPayloadParser.jar - -cp {out}/android-x86-tv-server/lib/third_party/connectedhomeip/src/platform/android/AndroidPlatform.jar {root}/examples/tv-app/android/App/app/libs/AndroidPlatform.jar - -cp {out}/android-x86-tv-server/lib/third_party/connectedhomeip/src/app/server/java/CHIPAppServer.jar {root}/examples/tv-app/android/App/app/libs/CHIPAppServer.jar - -cp {out}/android-x86-tv-server/lib/TvApp.jar {root}/examples/tv-app/android/App/app/libs/TvApp.jar - -# Building Example android-x86-tv-server, module platform-app -{root}/examples/tv-app/android/App/gradlew -p {root}/examples/tv-app/android/App/ -PmatterBuildSrcDir={out}/android-x86-tv-server -PmatterSdkSourceBuild=false -PbuildDir={out}/android-x86-tv-server/platform-app :platform-app:assembleDebug - -# Building Example android-x86-tv-server, module content-app -{root}/examples/tv-app/android/App/gradlew -p {root}/examples/tv-app/android/App/ -PmatterBuildSrcDir={out}/android-x86-tv-server -PmatterSdkSourceBuild=false -PbuildDir={out}/android-x86-tv-server/content-app :content-app:assembleDebug - -# Building bl602-light -ninja -C {out}/bl602-light - -# Building bouffalolab-BL706-IoT-DVK-light -ninja -C {out}/bouffalolab-BL706-IoT-DVK-light - -# Building bouffalolab-BL706-IoT-DVK-light-rpc -ninja -C {out}/bouffalolab-BL706-IoT-DVK-light-rpc - -# Building bouffalolab-BL706-NIGHT-LIGHT-light -ninja -C {out}/bouffalolab-BL706-NIGHT-LIGHT-light - -# Building cc13x2x7_26x2x7-all-clusters -ninja -C {out}/cc13x2x7_26x2x7-all-clusters - -# Building cc13x2x7_26x2x7-all-clusters-minimal -ninja -C {out}/cc13x2x7_26x2x7-all-clusters-minimal - -# Building cc13x2x7_26x2x7-lock-ftd -ninja -C {out}/cc13x2x7_26x2x7-lock-ftd - -# Building cc13x2x7_26x2x7-lock-mtd -ninja -C {out}/cc13x2x7_26x2x7-lock-mtd - -# Building cc13x2x7_26x2x7-pump -ninja -C {out}/cc13x2x7_26x2x7-pump - -# Building cc13x2x7_26x2x7-pump-controller -ninja -C {out}/cc13x2x7_26x2x7-pump-controller - -# Building cc13x2x7_26x2x7-shell -ninja -C {out}/cc13x2x7_26x2x7-shell - -# Building cyw30739-cyw930739m2evb_01-light -ninja -C {out}/cyw30739-cyw930739m2evb_01-light - -# Building cyw30739-cyw930739m2evb_01-lock -ninja -C {out}/cyw30739-cyw930739m2evb_01-lock - -# Building cyw30739-cyw930739m2evb_01-ota-requestor -ninja -C {out}/cyw30739-cyw930739m2evb_01-ota-requestor - -# Building cyw30739-cyw930739m2evb_01-ota-requestor-no-progress-logging -ninja -C {out}/cyw30739-cyw930739m2evb_01-ota-requestor-no-progress-logging - -# Building efr32-brd4161a-light -ninja -C {out}/efr32-brd4161a-light - -# Building efr32-brd4161a-light-rpc -ninja -C {out}/efr32-brd4161a-light-rpc - -# Building efr32-brd4161a-light-rpc-with-ota-requestor -ninja -C {out}/efr32-brd4161a-light-rpc-with-ota-requestor - -# Building efr32-brd4161a-light-with-ota-requestor -ninja -C {out}/efr32-brd4161a-light-with-ota-requestor - -# Building efr32-brd4161a-lock -ninja -C {out}/efr32-brd4161a-lock - -# Building efr32-brd4161a-lock-rpc -ninja -C {out}/efr32-brd4161a-lock-rpc - -# Building efr32-brd4161a-lock-rpc-with-ota-requestor -ninja -C {out}/efr32-brd4161a-lock-rpc-with-ota-requestor - -# Building efr32-brd4161a-lock-with-ota-requestor -ninja -C {out}/efr32-brd4161a-lock-with-ota-requestor - -# Building efr32-brd4161a-switch -ninja -C {out}/efr32-brd4161a-switch - -# Building efr32-brd4161a-switch-with-ota-requestor -ninja -C {out}/efr32-brd4161a-switch-with-ota-requestor - -# Building efr32-brd4161a-unit-test -ninja -C {out}/efr32-brd4161a-unit-test - -# Building efr32-brd4161a-unit-test-with-ota-requestor -ninja -C {out}/efr32-brd4161a-unit-test-with-ota-requestor - -# Building efr32-brd4161a-window-covering -ninja -C {out}/efr32-brd4161a-window-covering - -# Building efr32-brd4161a-window-covering-with-ota-requestor -ninja -C {out}/efr32-brd4161a-window-covering-with-ota-requestor - -# Building efr32-brd4163a-light -ninja -C {out}/efr32-brd4163a-light - -# Building efr32-brd4163a-light-rpc -ninja -C {out}/efr32-brd4163a-light-rpc - -# Building efr32-brd4163a-light-rpc-with-ota-requestor -ninja -C {out}/efr32-brd4163a-light-rpc-with-ota-requestor - -# Building efr32-brd4163a-light-with-ota-requestor -ninja -C {out}/efr32-brd4163a-light-with-ota-requestor - -# Building efr32-brd4163a-lock -ninja -C {out}/efr32-brd4163a-lock - -# Building efr32-brd4163a-lock-rpc -ninja -C {out}/efr32-brd4163a-lock-rpc - -# Building efr32-brd4163a-lock-rpc-with-ota-requestor -ninja -C {out}/efr32-brd4163a-lock-rpc-with-ota-requestor - -# Building efr32-brd4163a-lock-with-ota-requestor -ninja -C {out}/efr32-brd4163a-lock-with-ota-requestor - -# Building efr32-brd4163a-switch -ninja -C {out}/efr32-brd4163a-switch - -# Building efr32-brd4163a-switch-with-ota-requestor -ninja -C {out}/efr32-brd4163a-switch-with-ota-requestor - -# Building efr32-brd4163a-unit-test -ninja -C {out}/efr32-brd4163a-unit-test - -# Building efr32-brd4163a-unit-test-with-ota-requestor -ninja -C {out}/efr32-brd4163a-unit-test-with-ota-requestor - -# Building efr32-brd4163a-window-covering -ninja -C {out}/efr32-brd4163a-window-covering - -# Building efr32-brd4163a-window-covering-with-ota-requestor -ninja -C {out}/efr32-brd4163a-window-covering-with-ota-requestor - -# Building efr32-brd4164a-light -ninja -C {out}/efr32-brd4164a-light - -# Building efr32-brd4164a-light-rpc -ninja -C {out}/efr32-brd4164a-light-rpc - -# Building efr32-brd4164a-light-rpc-with-ota-requestor -ninja -C {out}/efr32-brd4164a-light-rpc-with-ota-requestor - -# Building efr32-brd4164a-light-with-ota-requestor -ninja -C {out}/efr32-brd4164a-light-with-ota-requestor - -# Building efr32-brd4164a-lock -ninja -C {out}/efr32-brd4164a-lock - -# Building efr32-brd4164a-lock-rpc -ninja -C {out}/efr32-brd4164a-lock-rpc - -# Building efr32-brd4164a-lock-rpc-with-ota-requestor -ninja -C {out}/efr32-brd4164a-lock-rpc-with-ota-requestor - -# Building efr32-brd4164a-lock-with-ota-requestor -ninja -C {out}/efr32-brd4164a-lock-with-ota-requestor - -# Building efr32-brd4164a-switch -ninja -C {out}/efr32-brd4164a-switch - -# Building efr32-brd4164a-switch-with-ota-requestor -ninja -C {out}/efr32-brd4164a-switch-with-ota-requestor - -# Building efr32-brd4164a-unit-test -ninja -C {out}/efr32-brd4164a-unit-test - -# Building efr32-brd4164a-unit-test-with-ota-requestor -ninja -C {out}/efr32-brd4164a-unit-test-with-ota-requestor - -# Building efr32-brd4164a-window-covering -ninja -C {out}/efr32-brd4164a-window-covering - -# Building efr32-brd4164a-window-covering-with-ota-requestor -ninja -C {out}/efr32-brd4164a-window-covering-with-ota-requestor - -# Building efr32-brd4166a-light -ninja -C {out}/efr32-brd4166a-light - -# Building efr32-brd4166a-light-rpc -ninja -C {out}/efr32-brd4166a-light-rpc - -# Building efr32-brd4166a-light-rpc-with-ota-requestor -ninja -C {out}/efr32-brd4166a-light-rpc-with-ota-requestor - -# Building efr32-brd4166a-light-with-ota-requestor -ninja -C {out}/efr32-brd4166a-light-with-ota-requestor - -# Building efr32-brd4166a-lock -ninja -C {out}/efr32-brd4166a-lock - -# Building efr32-brd4166a-lock-rpc -ninja -C {out}/efr32-brd4166a-lock-rpc - -# Building efr32-brd4166a-lock-rpc-with-ota-requestor -ninja -C {out}/efr32-brd4166a-lock-rpc-with-ota-requestor - -# Building efr32-brd4166a-lock-with-ota-requestor -ninja -C {out}/efr32-brd4166a-lock-with-ota-requestor - -# Building efr32-brd4166a-switch -ninja -C {out}/efr32-brd4166a-switch - -# Building efr32-brd4166a-switch-with-ota-requestor -ninja -C {out}/efr32-brd4166a-switch-with-ota-requestor - -# Building efr32-brd4166a-unit-test -ninja -C {out}/efr32-brd4166a-unit-test - -# Building efr32-brd4166a-unit-test-with-ota-requestor -ninja -C {out}/efr32-brd4166a-unit-test-with-ota-requestor - -# Building efr32-brd4166a-window-covering -ninja -C {out}/efr32-brd4166a-window-covering - -# Building efr32-brd4166a-window-covering-with-ota-requestor -ninja -C {out}/efr32-brd4166a-window-covering-with-ota-requestor - -# Building efr32-brd4170a-light -ninja -C {out}/efr32-brd4170a-light - -# Building efr32-brd4170a-light-rpc -ninja -C {out}/efr32-brd4170a-light-rpc - -# Building efr32-brd4170a-light-rpc-with-ota-requestor -ninja -C {out}/efr32-brd4170a-light-rpc-with-ota-requestor - -# Building efr32-brd4170a-light-with-ota-requestor -ninja -C {out}/efr32-brd4170a-light-with-ota-requestor - -# Building efr32-brd4170a-lock -ninja -C {out}/efr32-brd4170a-lock - -# Building efr32-brd4170a-lock-rpc -ninja -C {out}/efr32-brd4170a-lock-rpc - -# Building efr32-brd4170a-lock-rpc-with-ota-requestor -ninja -C {out}/efr32-brd4170a-lock-rpc-with-ota-requestor - -# Building efr32-brd4170a-lock-with-ota-requestor -ninja -C {out}/efr32-brd4170a-lock-with-ota-requestor - -# Building efr32-brd4170a-switch -ninja -C {out}/efr32-brd4170a-switch - -# Building efr32-brd4170a-switch-with-ota-requestor -ninja -C {out}/efr32-brd4170a-switch-with-ota-requestor - -# Building efr32-brd4170a-unit-test -ninja -C {out}/efr32-brd4170a-unit-test - -# Building efr32-brd4170a-unit-test-with-ota-requestor -ninja -C {out}/efr32-brd4170a-unit-test-with-ota-requestor - -# Building efr32-brd4170a-window-covering -ninja -C {out}/efr32-brd4170a-window-covering - -# Building efr32-brd4170a-window-covering-with-ota-requestor -ninja -C {out}/efr32-brd4170a-window-covering-with-ota-requestor - -# Building efr32-brd4186a-light -ninja -C {out}/efr32-brd4186a-light - -# Building efr32-brd4186a-light-rpc -ninja -C {out}/efr32-brd4186a-light-rpc - -# Building efr32-brd4186a-light-rpc-with-ota-requestor -ninja -C {out}/efr32-brd4186a-light-rpc-with-ota-requestor - -# Building efr32-brd4186a-light-with-ota-requestor -ninja -C {out}/efr32-brd4186a-light-with-ota-requestor - -# Building efr32-brd4186a-lock -ninja -C {out}/efr32-brd4186a-lock - -# Building efr32-brd4186a-lock-rpc -ninja -C {out}/efr32-brd4186a-lock-rpc - -# Building efr32-brd4186a-lock-rpc-with-ota-requestor -ninja -C {out}/efr32-brd4186a-lock-rpc-with-ota-requestor - -# Building efr32-brd4186a-lock-with-ota-requestor -ninja -C {out}/efr32-brd4186a-lock-with-ota-requestor - -# Building efr32-brd4186a-switch -ninja -C {out}/efr32-brd4186a-switch - -# Building efr32-brd4186a-switch-with-ota-requestor -ninja -C {out}/efr32-brd4186a-switch-with-ota-requestor - -# Building efr32-brd4186a-unit-test -ninja -C {out}/efr32-brd4186a-unit-test - -# Building efr32-brd4186a-unit-test-with-ota-requestor -ninja -C {out}/efr32-brd4186a-unit-test-with-ota-requestor - -# Building efr32-brd4186a-window-covering -ninja -C {out}/efr32-brd4186a-window-covering - -# Building efr32-brd4186a-window-covering-with-ota-requestor -ninja -C {out}/efr32-brd4186a-window-covering-with-ota-requestor - -# Building efr32-brd4187a-light -ninja -C {out}/efr32-brd4187a-light - -# Building efr32-brd4187a-light-rpc -ninja -C {out}/efr32-brd4187a-light-rpc - -# Building efr32-brd4187a-light-rpc-with-ota-requestor -ninja -C {out}/efr32-brd4187a-light-rpc-with-ota-requestor - -# Building efr32-brd4187a-light-with-ota-requestor -ninja -C {out}/efr32-brd4187a-light-with-ota-requestor - -# Building efr32-brd4187a-lock -ninja -C {out}/efr32-brd4187a-lock - -# Building efr32-brd4187a-lock-rpc -ninja -C {out}/efr32-brd4187a-lock-rpc - -# Building efr32-brd4187a-lock-rpc-with-ota-requestor -ninja -C {out}/efr32-brd4187a-lock-rpc-with-ota-requestor - -# Building efr32-brd4187a-lock-with-ota-requestor -ninja -C {out}/efr32-brd4187a-lock-with-ota-requestor - -# Building efr32-brd4187a-switch -ninja -C {out}/efr32-brd4187a-switch - -# Building efr32-brd4187a-switch-with-ota-requestor -ninja -C {out}/efr32-brd4187a-switch-with-ota-requestor - -# Building efr32-brd4187a-unit-test -ninja -C {out}/efr32-brd4187a-unit-test - -# Building efr32-brd4187a-unit-test-with-ota-requestor -ninja -C {out}/efr32-brd4187a-unit-test-with-ota-requestor - -# Building efr32-brd4187a-window-covering -ninja -C {out}/efr32-brd4187a-window-covering - -# Building efr32-brd4187a-window-covering-with-ota-requestor -ninja -C {out}/efr32-brd4187a-window-covering-with-ota-requestor - -# Building efr32-brd4187c-light -ninja -C {out}/efr32-brd4187c-light - -# Building efr32-brd4187c-light-rpc -ninja -C {out}/efr32-brd4187c-light-rpc - -# Building efr32-brd4187c-light-rpc-with-ota-requestor -ninja -C {out}/efr32-brd4187c-light-rpc-with-ota-requestor - -# Building efr32-brd4187c-light-with-ota-requestor -ninja -C {out}/efr32-brd4187c-light-with-ota-requestor - -# Building efr32-brd4187c-lock -ninja -C {out}/efr32-brd4187c-lock - -# Building efr32-brd4187c-lock-rpc -ninja -C {out}/efr32-brd4187c-lock-rpc - -# Building efr32-brd4187c-lock-rpc-with-ota-requestor -ninja -C {out}/efr32-brd4187c-lock-rpc-with-ota-requestor - -# Building efr32-brd4187c-lock-with-ota-requestor -ninja -C {out}/efr32-brd4187c-lock-with-ota-requestor - -# Building efr32-brd4187c-switch -ninja -C {out}/efr32-brd4187c-switch - -# Building efr32-brd4187c-switch-with-ota-requestor -ninja -C {out}/efr32-brd4187c-switch-with-ota-requestor - -# Building efr32-brd4187c-unit-test -ninja -C {out}/efr32-brd4187c-unit-test - -# Building efr32-brd4187c-unit-test-with-ota-requestor -ninja -C {out}/efr32-brd4187c-unit-test-with-ota-requestor - -# Building efr32-brd4187c-window-covering -ninja -C {out}/efr32-brd4187c-window-covering - -# Building efr32-brd4187c-window-covering-with-ota-requestor -ninja -C {out}/efr32-brd4187c-window-covering-with-ota-requestor - -# Building efr32-brd4304a-light -ninja -C {out}/efr32-brd4304a-light - -# Building efr32-brd4304a-light-rpc -ninja -C {out}/efr32-brd4304a-light-rpc - -# Building efr32-brd4304a-light-rpc-with-ota-requestor -ninja -C {out}/efr32-brd4304a-light-rpc-with-ota-requestor - -# Building efr32-brd4304a-light-with-ota-requestor -ninja -C {out}/efr32-brd4304a-light-with-ota-requestor - -# Building efr32-brd4304a-lock -ninja -C {out}/efr32-brd4304a-lock - -# Building efr32-brd4304a-lock-rpc -ninja -C {out}/efr32-brd4304a-lock-rpc - -# Building efr32-brd4304a-lock-rpc-with-ota-requestor -ninja -C {out}/efr32-brd4304a-lock-rpc-with-ota-requestor - -# Building efr32-brd4304a-lock-with-ota-requestor -ninja -C {out}/efr32-brd4304a-lock-with-ota-requestor - -# Building efr32-brd4304a-switch -ninja -C {out}/efr32-brd4304a-switch - -# Building efr32-brd4304a-switch-with-ota-requestor -ninja -C {out}/efr32-brd4304a-switch-with-ota-requestor - -# Building efr32-brd4304a-unit-test -ninja -C {out}/efr32-brd4304a-unit-test - -# Building efr32-brd4304a-unit-test-with-ota-requestor -ninja -C {out}/efr32-brd4304a-unit-test-with-ota-requestor - -# Building efr32-brd4304a-window-covering -ninja -C {out}/efr32-brd4304a-window-covering - -# Building efr32-brd4304a-window-covering-with-ota-requestor -ninja -C {out}/efr32-brd4304a-window-covering-with-ota-requestor - -rm -f examples/all-clusters-app/esp32/sdkconfig - -# Building esp32-c3devkit-all-clusters -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-c3devkit-all-clusters/sdkconfig.defaults -idf.py -C examples/all-clusters-app/esp32 -B {out}/esp32-c3devkit-all-clusters build' - -rm -f examples/all-clusters-minimal-app/esp32/sdkconfig - -# Building esp32-c3devkit-all-clusters-minimal -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-c3devkit-all-clusters-minimal/sdkconfig.defaults -idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-c3devkit-all-clusters-minimal build' - -rm -f examples/all-clusters-app/esp32/sdkconfig - -# Building esp32-devkitc-all-clusters -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-all-clusters/sdkconfig.defaults -idf.py -C examples/all-clusters-app/esp32 -B {out}/esp32-devkitc-all-clusters build' - -rm -f examples/all-clusters-app/esp32/sdkconfig - -# Building esp32-devkitc-all-clusters-ipv6only -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-all-clusters-ipv6only/sdkconfig.defaults -idf.py -C examples/all-clusters-app/esp32 -B {out}/esp32-devkitc-all-clusters-ipv6only build' - -rm -f examples/all-clusters-minimal-app/esp32/sdkconfig - -# Building esp32-devkitc-all-clusters-minimal -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-all-clusters-minimal/sdkconfig.defaults -idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-devkitc-all-clusters-minimal build' - -rm -f examples/all-clusters-minimal-app/esp32/sdkconfig - -# Building esp32-devkitc-all-clusters-minimal-ipv6only -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-all-clusters-minimal-ipv6only/sdkconfig.defaults -idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-devkitc-all-clusters-minimal-ipv6only build' - -rm -f examples/bridge-app/esp32/sdkconfig - -# Building esp32-devkitc-bridge -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-bridge/sdkconfig.defaults -idf.py -C examples/bridge-app/esp32 -B {out}/esp32-devkitc-bridge build' - -rm -f examples/lighting-app/esp32/sdkconfig - -# Building esp32-devkitc-light -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-light/sdkconfig.defaults -idf.py -C examples/lighting-app/esp32 -B {out}/esp32-devkitc-light build' - -rm -f examples/lighting-app/esp32/sdkconfig - -# Building esp32-devkitc-light-rpc -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-light-rpc/sdkconfig.defaults -idf.py -C examples/lighting-app/esp32 -B {out}/esp32-devkitc-light-rpc build' - -rm -f examples/lock-app/esp32/sdkconfig - -# Building esp32-devkitc-lock -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-lock/sdkconfig.defaults -idf.py -C examples/lock-app/esp32 -B {out}/esp32-devkitc-lock build' - -rm -f examples/ota-requestor-app/esp32/sdkconfig - -# Building esp32-devkitc-ota-requestor -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-ota-requestor/sdkconfig.defaults -idf.py -C examples/ota-requestor-app/esp32 -B {out}/esp32-devkitc-ota-requestor build' - -rm -f examples/ota-requestor-app/esp32/sdkconfig - -# Building esp32-devkitc-ota-requestor-rpc -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-ota-requestor-rpc/sdkconfig.defaults -idf.py -C examples/ota-requestor-app/esp32 -B {out}/esp32-devkitc-ota-requestor-rpc build' - -rm -f examples/shell/esp32/sdkconfig - -# Building esp32-devkitc-shell -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-shell/sdkconfig.defaults -idf.py -C examples/shell/esp32 -B {out}/esp32-devkitc-shell build' - -rm -f examples/temperature-measurement-app/esp32/sdkconfig - -# Building esp32-devkitc-temperature-measurement -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-temperature-measurement/sdkconfig.defaults -idf.py -C examples/temperature-measurement-app/esp32 -B {out}/esp32-devkitc-temperature-measurement build' - -rm -f examples/temperature-measurement-app/esp32/sdkconfig - -# Building esp32-devkitc-temperature-measurement-rpc -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-temperature-measurement-rpc/sdkconfig.defaults -idf.py -C examples/temperature-measurement-app/esp32 -B {out}/esp32-devkitc-temperature-measurement-rpc build' - -rm -f examples/all-clusters-app/esp32/sdkconfig - -# Building esp32-m5stack-all-clusters -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-all-clusters/sdkconfig.defaults -idf.py -C examples/all-clusters-app/esp32 -B {out}/esp32-m5stack-all-clusters build' - -rm -f examples/all-clusters-app/esp32/sdkconfig - -# Building esp32-m5stack-all-clusters-ipv6only -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-all-clusters-ipv6only/sdkconfig.defaults -idf.py -C examples/all-clusters-app/esp32 -B {out}/esp32-m5stack-all-clusters-ipv6only build' - -rm -f examples/all-clusters-minimal-app/esp32/sdkconfig - -# Building esp32-m5stack-all-clusters-minimal -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-all-clusters-minimal/sdkconfig.defaults -idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-m5stack-all-clusters-minimal build' - -rm -f examples/all-clusters-minimal-app/esp32/sdkconfig - -# Building esp32-m5stack-all-clusters-minimal-ipv6only -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-all-clusters-minimal-ipv6only/sdkconfig.defaults -idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-m5stack-all-clusters-minimal-ipv6only build' - -rm -f examples/all-clusters-minimal-app/esp32/sdkconfig - -# Building esp32-m5stack-all-clusters-minimal-rpc -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-all-clusters-minimal-rpc/sdkconfig.defaults -idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-m5stack-all-clusters-minimal-rpc build' - -rm -f examples/all-clusters-minimal-app/esp32/sdkconfig - -# Building esp32-m5stack-all-clusters-minimal-rpc-ipv6only -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-all-clusters-minimal-rpc-ipv6only/sdkconfig.defaults -idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-m5stack-all-clusters-minimal-rpc-ipv6only build' - -rm -f examples/all-clusters-app/esp32/sdkconfig - -# Building esp32-m5stack-all-clusters-rpc -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-all-clusters-rpc/sdkconfig.defaults -idf.py -C examples/all-clusters-app/esp32 -B {out}/esp32-m5stack-all-clusters-rpc build' - -rm -f examples/all-clusters-app/esp32/sdkconfig - -# Building esp32-m5stack-all-clusters-rpc-ipv6only -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-all-clusters-rpc-ipv6only/sdkconfig.defaults -idf.py -C examples/all-clusters-app/esp32 -B {out}/esp32-m5stack-all-clusters-rpc-ipv6only build' - -rm -f examples/ota-requestor-app/esp32/sdkconfig - -# Building esp32-m5stack-ota-requestor -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-ota-requestor/sdkconfig.defaults -idf.py -C examples/ota-requestor-app/esp32 -B {out}/esp32-m5stack-ota-requestor build' - -rm -f examples/ota-requestor-app/esp32/sdkconfig - -# Building esp32-m5stack-ota-requestor-rpc -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-ota-requestor-rpc/sdkconfig.defaults -idf.py -C examples/ota-requestor-app/esp32 -B {out}/esp32-m5stack-ota-requestor-rpc build' - -rm -f src/test_driver/esp32/sdkconfig - -# Building esp32-qemu-tests -bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; -export SDKCONFIG_DEFAULTS={out}/esp32-qemu-tests/sdkconfig.defaults -idf.py -C src/test_driver/esp32 -B {out}/esp32-qemu-tests build' - -# Building genio-lighting-app -ninja -C {out}/genio-lighting-app - -# Building imx-all-clusters-app -ninja -C {out}/imx-all-clusters-app - -# Building imx-all-clusters-app-release -ninja -C {out}/imx-all-clusters-app-release - -# Building imx-all-clusters-minimal-app -ninja -C {out}/imx-all-clusters-minimal-app - -# Building imx-all-clusters-minimal-app-release -ninja -C {out}/imx-all-clusters-minimal-app-release - -# Building imx-chip-tool -ninja -C {out}/imx-chip-tool - -# Building imx-chip-tool-release -ninja -C {out}/imx-chip-tool-release - -# Building imx-lighting-app -ninja -C {out}/imx-lighting-app - -# Building imx-lighting-app-release -ninja -C {out}/imx-lighting-app-release - -# Building imx-ota-provider-app -ninja -C {out}/imx-ota-provider-app - -# Building imx-ota-provider-app-release -ninja -C {out}/imx-ota-provider-app-release - -# Building imx-thermostat -ninja -C {out}/imx-thermostat - -# Building imx-thermostat-release -ninja -C {out}/imx-thermostat-release - -# Building infineon-psoc6-all-clusters -ninja -C {out}/infineon-psoc6-all-clusters - -# Building infineon-psoc6-all-clusters-minimal -ninja -C {out}/infineon-psoc6-all-clusters-minimal - -# Building infineon-psoc6-all-clusters-minimal-ota -ninja -C {out}/infineon-psoc6-all-clusters-minimal-ota - -# Building infineon-psoc6-all-clusters-minimal-ota-updateimage -ninja -C {out}/infineon-psoc6-all-clusters-minimal-ota-updateimage - -# Building infineon-psoc6-all-clusters-minimal-updateimage -ninja -C {out}/infineon-psoc6-all-clusters-minimal-updateimage - -# Building infineon-psoc6-all-clusters-ota -ninja -C {out}/infineon-psoc6-all-clusters-ota - -# Building infineon-psoc6-all-clusters-ota-updateimage -ninja -C {out}/infineon-psoc6-all-clusters-ota-updateimage - -# Building infineon-psoc6-all-clusters-updateimage -ninja -C {out}/infineon-psoc6-all-clusters-updateimage - -# Building infineon-psoc6-light -ninja -C {out}/infineon-psoc6-light - -# Building infineon-psoc6-light-ota -ninja -C {out}/infineon-psoc6-light-ota - -# Building infineon-psoc6-light-ota-updateimage -ninja -C {out}/infineon-psoc6-light-ota-updateimage - -# Building infineon-psoc6-light-updateimage -ninja -C {out}/infineon-psoc6-light-updateimage - -# Building infineon-psoc6-lock -ninja -C {out}/infineon-psoc6-lock - -# Building infineon-psoc6-lock-ota -ninja -C {out}/infineon-psoc6-lock-ota - -# Building infineon-psoc6-lock-ota-updateimage -ninja -C {out}/infineon-psoc6-lock-ota-updateimage - -# Building infineon-psoc6-lock-updateimage -ninja -C {out}/infineon-psoc6-lock-updateimage - -# Building k32w-contact-low-power-release -ninja -C {out}/k32w-contact-low-power-release - -# Building k32w-contact-release -ninja -C {out}/k32w-contact-release - -# Building k32w-light-ota-se -ninja -C {out}/k32w-light-ota-se - -# Building k32w-light-release-no-ota -ninja -C {out}/k32w-light-release-no-ota - -# Building k32w-lock-low-power-release -ninja -C {out}/k32w-lock-low-power-release - -# Building k32w-lock-release -ninja -C {out}/k32w-lock-release - -# Building k32w-shell-release -ninja -C {out}/k32w-shell-release - -# Remove old artifacts mbed-CY8CPROTO_062_4343W-all-clusters-debug -bash -c 'rm -rf {out}/mbed-CY8CPROTO_062_4343W-all-clusters-debug/chip-*' - -# Building mbed-CY8CPROTO_062_4343W-all-clusters-debug -cmake --build {out}/mbed-CY8CPROTO_062_4343W-all-clusters-debug - -# Remove old artifacts mbed-CY8CPROTO_062_4343W-all-clusters-develop -bash -c 'rm -rf {out}/mbed-CY8CPROTO_062_4343W-all-clusters-develop/chip-*' - -# Building mbed-CY8CPROTO_062_4343W-all-clusters-develop -cmake --build {out}/mbed-CY8CPROTO_062_4343W-all-clusters-develop - -# Remove old artifacts mbed-CY8CPROTO_062_4343W-all-clusters-minimal-debug -bash -c 'rm -rf {out}/mbed-CY8CPROTO_062_4343W-all-clusters-minimal-debug/chip-*' - -# Building mbed-CY8CPROTO_062_4343W-all-clusters-minimal-debug -cmake --build {out}/mbed-CY8CPROTO_062_4343W-all-clusters-minimal-debug - -# Remove old artifacts mbed-CY8CPROTO_062_4343W-all-clusters-minimal-develop -bash -c 'rm -rf {out}/mbed-CY8CPROTO_062_4343W-all-clusters-minimal-develop/chip-*' - -# Building mbed-CY8CPROTO_062_4343W-all-clusters-minimal-develop -cmake --build {out}/mbed-CY8CPROTO_062_4343W-all-clusters-minimal-develop - -# Remove old artifacts mbed-CY8CPROTO_062_4343W-all-clusters-minimal-release -bash -c 'rm -rf {out}/mbed-CY8CPROTO_062_4343W-all-clusters-minimal-release/chip-*' - -# Building mbed-CY8CPROTO_062_4343W-all-clusters-minimal-release -cmake --build {out}/mbed-CY8CPROTO_062_4343W-all-clusters-minimal-release - -# Remove old artifacts mbed-CY8CPROTO_062_4343W-all-clusters-release -bash -c 'rm -rf {out}/mbed-CY8CPROTO_062_4343W-all-clusters-release/chip-*' - -# Building mbed-CY8CPROTO_062_4343W-all-clusters-release -cmake --build {out}/mbed-CY8CPROTO_062_4343W-all-clusters-release - -# Remove old artifacts mbed-CY8CPROTO_062_4343W-light-debug -bash -c 'rm -rf {out}/mbed-CY8CPROTO_062_4343W-light-debug/chip-*' - -# Building mbed-CY8CPROTO_062_4343W-light-debug -cmake --build {out}/mbed-CY8CPROTO_062_4343W-light-debug - -# Remove old artifacts mbed-CY8CPROTO_062_4343W-light-develop -bash -c 'rm -rf {out}/mbed-CY8CPROTO_062_4343W-light-develop/chip-*' - -# Building mbed-CY8CPROTO_062_4343W-light-develop -cmake --build {out}/mbed-CY8CPROTO_062_4343W-light-develop - -# Remove old artifacts mbed-CY8CPROTO_062_4343W-light-release -bash -c 'rm -rf {out}/mbed-CY8CPROTO_062_4343W-light-release/chip-*' - -# Building mbed-CY8CPROTO_062_4343W-light-release -cmake --build {out}/mbed-CY8CPROTO_062_4343W-light-release - -# Remove old artifacts mbed-CY8CPROTO_062_4343W-lock-debug -bash -c 'rm -rf {out}/mbed-CY8CPROTO_062_4343W-lock-debug/chip-*' - -# Building mbed-CY8CPROTO_062_4343W-lock-debug -cmake --build {out}/mbed-CY8CPROTO_062_4343W-lock-debug - -# Remove old artifacts mbed-CY8CPROTO_062_4343W-lock-develop -bash -c 'rm -rf {out}/mbed-CY8CPROTO_062_4343W-lock-develop/chip-*' - -# Building mbed-CY8CPROTO_062_4343W-lock-develop -cmake --build {out}/mbed-CY8CPROTO_062_4343W-lock-develop - -# Remove old artifacts mbed-CY8CPROTO_062_4343W-lock-release -bash -c 'rm -rf {out}/mbed-CY8CPROTO_062_4343W-lock-release/chip-*' - -# Building mbed-CY8CPROTO_062_4343W-lock-release -cmake --build {out}/mbed-CY8CPROTO_062_4343W-lock-release - -# Remove old artifacts mbed-CY8CPROTO_062_4343W-pigweed-debug -bash -c 'rm -rf {out}/mbed-CY8CPROTO_062_4343W-pigweed-debug/chip-*' - -# Building mbed-CY8CPROTO_062_4343W-pigweed-debug -cmake --build {out}/mbed-CY8CPROTO_062_4343W-pigweed-debug - -# Remove old artifacts mbed-CY8CPROTO_062_4343W-pigweed-develop -bash -c 'rm -rf {out}/mbed-CY8CPROTO_062_4343W-pigweed-develop/chip-*' - -# Building mbed-CY8CPROTO_062_4343W-pigweed-develop -cmake --build {out}/mbed-CY8CPROTO_062_4343W-pigweed-develop - -# Remove old artifacts mbed-CY8CPROTO_062_4343W-pigweed-release -bash -c 'rm -rf {out}/mbed-CY8CPROTO_062_4343W-pigweed-release/chip-*' - -# Building mbed-CY8CPROTO_062_4343W-pigweed-release -cmake --build {out}/mbed-CY8CPROTO_062_4343W-pigweed-release - -# Remove old artifacts mbed-CY8CPROTO_062_4343W-shell-debug -bash -c 'rm -rf {out}/mbed-CY8CPROTO_062_4343W-shell-debug/chip-*' - -# Building mbed-CY8CPROTO_062_4343W-shell-debug -cmake --build {out}/mbed-CY8CPROTO_062_4343W-shell-debug - -# Remove old artifacts mbed-CY8CPROTO_062_4343W-shell-develop -bash -c 'rm -rf {out}/mbed-CY8CPROTO_062_4343W-shell-develop/chip-*' - -# Building mbed-CY8CPROTO_062_4343W-shell-develop -cmake --build {out}/mbed-CY8CPROTO_062_4343W-shell-develop - -# Remove old artifacts mbed-CY8CPROTO_062_4343W-shell-release -bash -c 'rm -rf {out}/mbed-CY8CPROTO_062_4343W-shell-release/chip-*' - -# Building mbed-CY8CPROTO_062_4343W-shell-release -cmake --build {out}/mbed-CY8CPROTO_062_4343W-shell-release - -# Building mw320-all-clusters-app -ninja -C {out}/mw320-all-clusters-app - -# Building nrf-native-posix-64-tests -ninja -C {out}/nrf-native-posix-64-tests - -# Run Tests nrf-native-posix-64-tests -ctest --build-nocmake -V --output-on-failure --test-dir {out}/nrf-native-posix-64-tests - -# Building nrf-nrf52840dk-all-clusters -ninja -C {out}/nrf-nrf52840dk-all-clusters - -# Building nrf-nrf52840dk-all-clusters-minimal -ninja -C {out}/nrf-nrf52840dk-all-clusters-minimal - -# Building nrf-nrf52840dk-light -ninja -C {out}/nrf-nrf52840dk-light - -# Building nrf-nrf52840dk-light-rpc -ninja -C {out}/nrf-nrf52840dk-light-rpc - -# Building nrf-nrf52840dk-lock -ninja -C {out}/nrf-nrf52840dk-lock - -# Building nrf-nrf52840dk-pump -ninja -C {out}/nrf-nrf52840dk-pump - -# Building nrf-nrf52840dk-pump-controller -ninja -C {out}/nrf-nrf52840dk-pump-controller - -# Building nrf-nrf52840dk-shell -ninja -C {out}/nrf-nrf52840dk-shell - -# Building nrf-nrf52840dongle-all-clusters -ninja -C {out}/nrf-nrf52840dongle-all-clusters - -# Building nrf-nrf52840dongle-all-clusters-minimal -ninja -C {out}/nrf-nrf52840dongle-all-clusters-minimal - -# Building nrf-nrf52840dongle-light -ninja -C {out}/nrf-nrf52840dongle-light - -# Building nrf-nrf5340dk-all-clusters -ninja -C {out}/nrf-nrf5340dk-all-clusters - -# Building nrf-nrf5340dk-all-clusters-minimal -ninja -C {out}/nrf-nrf5340dk-all-clusters-minimal - -# Building nrf-nrf5340dk-light -ninja -C {out}/nrf-nrf5340dk-light - -# Building nrf-nrf5340dk-light-rpc -ninja -C {out}/nrf-nrf5340dk-light-rpc - -# Building nrf-nrf5340dk-lock -ninja -C {out}/nrf-nrf5340dk-lock - -# Building nrf-nrf5340dk-pump -ninja -C {out}/nrf-nrf5340dk-pump - -# Building nrf-nrf5340dk-pump-controller -ninja -C {out}/nrf-nrf5340dk-pump-controller - -# Building nrf-nrf5340dk-shell -ninja -C {out}/nrf-nrf5340dk-shell - -# Building qpg-light -ninja -C {out}/qpg-light - -# Building qpg-lock -ninja -C {out}/qpg-lock - -# Building qpg-persistent-storage -ninja -C {out}/qpg-persistent-storage - -# Building qpg-shell -ninja -C {out}/qpg-shell - -# Building telink-tlsr9518adk80d-light -bash -c 'export ZEPHYR_TOOLCHAIN_VARIANT=zephyr -export ZEPHYR_BASE="$TELINK_ZEPHYR_BASE" -export ZEPHYR_SDK_INSTALL_DIR="$TELINK_ZEPHYR_SDK_DIR" -ninja -C {out}/telink-tlsr9518adk80d-light' - -# Building telink-tlsr9518adk80d-light-switch -bash -c 'export ZEPHYR_TOOLCHAIN_VARIANT=zephyr -export ZEPHYR_BASE="$TELINK_ZEPHYR_BASE" -export ZEPHYR_SDK_INSTALL_DIR="$TELINK_ZEPHYR_SDK_DIR" -ninja -C {out}/telink-tlsr9518adk80d-light-switch' - -# Building telink-tlsr9518adk80d-ota-requestor -bash -c 'export ZEPHYR_TOOLCHAIN_VARIANT=zephyr -export ZEPHYR_BASE="$TELINK_ZEPHYR_BASE" -export ZEPHYR_SDK_INSTALL_DIR="$TELINK_ZEPHYR_SDK_DIR" -ninja -C {out}/telink-tlsr9518adk80d-ota-requestor' - -# Building tizen-arm-all-clusters -ninja -C {out}/tizen-arm-all-clusters - -# Building tizen-arm-all-clusters-asan -ninja -C {out}/tizen-arm-all-clusters-asan - -# Building tizen-arm-all-clusters-minimal -ninja -C {out}/tizen-arm-all-clusters-minimal - -# Building tizen-arm-all-clusters-minimal-asan -ninja -C {out}/tizen-arm-all-clusters-minimal-asan - -# Building tizen-arm-all-clusters-minimal-no-ble -ninja -C {out}/tizen-arm-all-clusters-minimal-no-ble - -# Building tizen-arm-all-clusters-minimal-no-ble-asan -ninja -C {out}/tizen-arm-all-clusters-minimal-no-ble-asan - -# Building tizen-arm-all-clusters-minimal-no-ble-no-wifi -ninja -C {out}/tizen-arm-all-clusters-minimal-no-ble-no-wifi - -# Building tizen-arm-all-clusters-minimal-no-ble-no-wifi-asan -ninja -C {out}/tizen-arm-all-clusters-minimal-no-ble-no-wifi-asan - -# Building tizen-arm-all-clusters-minimal-no-wifi -ninja -C {out}/tizen-arm-all-clusters-minimal-no-wifi - -# Building tizen-arm-all-clusters-minimal-no-wifi-asan -ninja -C {out}/tizen-arm-all-clusters-minimal-no-wifi-asan - -# Building tizen-arm-all-clusters-no-ble -ninja -C {out}/tizen-arm-all-clusters-no-ble - -# Building tizen-arm-all-clusters-no-ble-asan -ninja -C {out}/tizen-arm-all-clusters-no-ble-asan - -# Building tizen-arm-all-clusters-no-ble-no-wifi -ninja -C {out}/tizen-arm-all-clusters-no-ble-no-wifi - -# Building tizen-arm-all-clusters-no-ble-no-wifi-asan -ninja -C {out}/tizen-arm-all-clusters-no-ble-no-wifi-asan - -# Building tizen-arm-all-clusters-no-wifi -ninja -C {out}/tizen-arm-all-clusters-no-wifi - -# Building tizen-arm-all-clusters-no-wifi-asan -ninja -C {out}/tizen-arm-all-clusters-no-wifi-asan - -# Building tizen-arm-chip-tool -ninja -C {out}/tizen-arm-chip-tool - -# Building tizen-arm-chip-tool-asan -ninja -C {out}/tizen-arm-chip-tool-asan - -# Building tizen-arm-chip-tool-no-ble -ninja -C {out}/tizen-arm-chip-tool-no-ble - -# Building tizen-arm-chip-tool-no-ble-asan -ninja -C {out}/tizen-arm-chip-tool-no-ble-asan - -# Building tizen-arm-chip-tool-no-ble-no-wifi -ninja -C {out}/tizen-arm-chip-tool-no-ble-no-wifi - -# Building tizen-arm-chip-tool-no-ble-no-wifi-asan -ninja -C {out}/tizen-arm-chip-tool-no-ble-no-wifi-asan - -# Building tizen-arm-chip-tool-no-wifi -ninja -C {out}/tizen-arm-chip-tool-no-wifi - -# Building tizen-arm-chip-tool-no-wifi-asan -ninja -C {out}/tizen-arm-chip-tool-no-wifi-asan - -# Building tizen-arm-light -ninja -C {out}/tizen-arm-light - -# Building tizen-arm-light-asan -ninja -C {out}/tizen-arm-light-asan - -# Building tizen-arm-light-no-ble -ninja -C {out}/tizen-arm-light-no-ble - -# Building tizen-arm-light-no-ble-asan -ninja -C {out}/tizen-arm-light-no-ble-asan - -# Building tizen-arm-light-no-ble-no-wifi -ninja -C {out}/tizen-arm-light-no-ble-no-wifi - -# Building tizen-arm-light-no-ble-no-wifi-asan -ninja -C {out}/tizen-arm-light-no-ble-no-wifi-asan - -# Building tizen-arm-light-no-wifi -ninja -C {out}/tizen-arm-light-no-wifi - -# Building tizen-arm-light-no-wifi-asan -ninja -C {out}/tizen-arm-light-no-wifi-asan diff --git a/scripts/build/testdata/build_linux_on_x64.txt b/scripts/build/testdata/build_linux_on_x64.txt deleted file mode 100644 index 9f6255054ba7d5..00000000000000 --- a/scripts/build/testdata/build_linux_on_x64.txt +++ /dev/null @@ -1,674 +0,0 @@ -# Commands will be run in CHIP project root. -cd "{root}" - -# Generating linux-arm64-clang-all-clusters -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/linux '"'"'--args=is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-all-clusters' - -# Generating linux-arm64-clang-all-clusters-app-nodeps -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/linux '"'"'--args=chip_config_network_layer_ble=false chip_enable_wifi=false chip_enable_openthread=false is_clang=true chip_crypto="mbedtls" target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-all-clusters-app-nodeps' - -# Generating linux-arm64-clang-all-clusters-app-nodeps-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/linux '"'"'--args=chip_inet_config_enable_ipv4=false chip_config_network_layer_ble=false chip_enable_wifi=false chip_enable_openthread=false is_clang=true chip_crypto="mbedtls" target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-all-clusters-app-nodeps-ipv6only' - -# Generating linux-arm64-clang-all-clusters-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/linux '"'"'--args=chip_inet_config_enable_ipv4=false is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-all-clusters-ipv6only' - -# Generating linux-arm64-clang-all-clusters-minimal -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/linux '"'"'--args=is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-all-clusters-minimal' - -# Generating linux-arm64-clang-all-clusters-minimal-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/linux '"'"'--args=chip_inet_config_enable_ipv4=false is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-all-clusters-minimal-ipv6only' - -# Generating linux-arm64-clang-bridge -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/bridge-app/linux '"'"'--args=is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-bridge' - -# Generating linux-arm64-clang-bridge-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/bridge-app/linux '"'"'--args=chip_inet_config_enable_ipv4=false is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-bridge-ipv6only' - -# Generating linux-arm64-clang-chip-tool -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/chip-tool '"'"'--args=is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-chip-tool' - -# Generating linux-arm64-clang-chip-tool-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/chip-tool '"'"'--args=chip_inet_config_enable_ipv4=false is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-chip-tool-ipv6only' - -# Generating linux-arm64-clang-chip-tool-nodeps -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/chip-tool '"'"'--args=chip_config_network_layer_ble=false chip_enable_wifi=false chip_enable_openthread=false is_clang=true chip_crypto="mbedtls" target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-chip-tool-nodeps' - -# Generating linux-arm64-clang-chip-tool-nodeps-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/chip-tool '"'"'--args=chip_inet_config_enable_ipv4=false chip_config_network_layer_ble=false chip_enable_wifi=false chip_enable_openthread=false is_clang=true chip_crypto="mbedtls" target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-chip-tool-nodeps-ipv6only' - -# Generating linux-arm64-clang-dynamic-bridge -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/dynamic-bridge-app/linux '"'"'--args=is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-dynamic-bridge' - -# Generating linux-arm64-clang-dynamic-bridge-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/dynamic-bridge-app/linux '"'"'--args=chip_inet_config_enable_ipv4=false is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-dynamic-bridge-ipv6only' - -# Generating linux-arm64-clang-light -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/linux '"'"'--args=is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-light' - -# Generating linux-arm64-clang-light-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/linux '"'"'--args=chip_inet_config_enable_ipv4=false is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-light-ipv6only' - -# Generating linux-arm64-clang-light-rpc -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/linux '"'"'--args=import("//with_pw_rpc.gni") is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-light-rpc' - -# Generating linux-arm64-clang-light-rpc-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/linux '"'"'--args=import("//with_pw_rpc.gni") chip_inet_config_enable_ipv4=false is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-light-rpc-ipv6only' - -# Generating linux-arm64-clang-lock -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/linux '"'"'--args=is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-lock' - -# Generating linux-arm64-clang-lock-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/linux '"'"'--args=chip_inet_config_enable_ipv4=false is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-lock-ipv6only' - -# Generating linux-arm64-clang-minmdns -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/minimal-mdns '"'"'--args=is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-minmdns' - -# Generating linux-arm64-clang-minmdns-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/minimal-mdns '"'"'--args=chip_inet_config_enable_ipv4=false is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-minmdns-ipv6only' - -# Generating linux-arm64-clang-ota-provider -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/ota-provider-app/linux '"'"'--args=chip_config_network_layer_ble=false is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-ota-provider' - -# Generating linux-arm64-clang-ota-provider-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/ota-provider-app/linux '"'"'--args=chip_inet_config_enable_ipv4=false chip_config_network_layer_ble=false is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-ota-provider-ipv6only' - -# Generating linux-arm64-clang-ota-provider-nodeps -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/ota-provider-app/linux '"'"'--args=chip_config_network_layer_ble=false chip_enable_wifi=false chip_enable_openthread=false is_clang=true chip_crypto="mbedtls" target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-ota-provider-nodeps' - -# Generating linux-arm64-clang-ota-provider-nodeps-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/ota-provider-app/linux '"'"'--args=chip_inet_config_enable_ipv4=false chip_config_network_layer_ble=false chip_enable_wifi=false chip_enable_openthread=false is_clang=true chip_crypto="mbedtls" target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-ota-provider-nodeps-ipv6only' - -# Generating linux-arm64-clang-ota-requestor -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/ota-requestor-app/linux '"'"'--args=chip_config_network_layer_ble=false is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-ota-requestor' - -# Generating linux-arm64-clang-ota-requestor-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/ota-requestor-app/linux '"'"'--args=chip_inet_config_enable_ipv4=false chip_config_network_layer_ble=false is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-ota-requestor-ipv6only' - -# Generating linux-arm64-clang-ota-requestor-nodeps -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/ota-requestor-app/linux '"'"'--args=chip_config_network_layer_ble=false chip_enable_wifi=false chip_enable_openthread=false is_clang=true chip_crypto="mbedtls" target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-ota-requestor-nodeps' - -# Generating linux-arm64-clang-ota-requestor-nodeps-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/ota-requestor-app/linux '"'"'--args=chip_inet_config_enable_ipv4=false chip_config_network_layer_ble=false chip_enable_wifi=false chip_enable_openthread=false is_clang=true chip_crypto="mbedtls" target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-ota-requestor-nodeps-ipv6only' - -# Generating linux-arm64-clang-python-bindings -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root} '"'"'--args=is_clang=true enable_rtti=false chip_project_config_include_dirs=["//config/python"] target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-python-bindings' - -# Generating linux-arm64-clang-shell -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/shell/standalone '"'"'--args=is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-shell' - -# Generating linux-arm64-clang-shell-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/shell/standalone '"'"'--args=chip_inet_config_enable_ipv4=false is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-shell-ipv6only' - -# Generating linux-arm64-clang-thermostat -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/thermostat/linux '"'"'--args=is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-thermostat' - -# Generating linux-arm64-clang-thermostat-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/thermostat/linux '"'"'--args=chip_inet_config_enable_ipv4=false is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-thermostat-ipv6only' - -# Generating linux-arm64-clang-tv-app -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/tv-app/linux '"'"'--args=is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-tv-app' - -# Generating linux-arm64-clang-tv-app-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/tv-app/linux '"'"'--args=chip_inet_config_enable_ipv4=false is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-tv-app-ipv6only' - -# Generating linux-arm64-clang-tv-casting-app -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/tv-casting-app/linux '"'"'--args=is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-tv-casting-app' - -# Generating linux-arm64-clang-tv-casting-app-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/tv-casting-app/linux '"'"'--args=chip_inet_config_enable_ipv4=false is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-clang-tv-casting-app-ipv6only' - -# Generating linux-fake-tests -gn gen --check --fail-on-unused-args --export-compile-commands --root={root} '--args=chip_build_tests=true custom_toolchain="//build/toolchain/fake:fake_x64_gcc" chip_link_tests=true chip_device_platform="fake" chip_fake_platform=true' {out}/linux-fake-tests - -# Generating linux-x64-address-resolve-tool -gn gen --check --fail-on-unused-args --export-compile-commands --root={root} {out}/linux-x64-address-resolve-tool - -# Generating linux-x64-all-clusters -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/linux {out}/linux-x64-all-clusters - -# Generating linux-x64-all-clusters-app-nodeps -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/linux '--args=chip_config_network_layer_ble=false chip_enable_wifi=false chip_enable_openthread=false is_clang=true chip_crypto="mbedtls"' {out}/linux-x64-all-clusters-app-nodeps - -# Generating linux-x64-all-clusters-app-nodeps-ipv6only -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/linux '--args=chip_inet_config_enable_ipv4=false chip_config_network_layer_ble=false chip_enable_wifi=false chip_enable_openthread=false is_clang=true chip_crypto="mbedtls"' {out}/linux-x64-all-clusters-app-nodeps-ipv6only - -# Generating linux-x64-all-clusters-coverage -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/linux --args=use_coverage=true {out}/linux-x64-all-clusters-coverage - -# Generating linux-x64-all-clusters-ipv6only -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/linux --args=chip_inet_config_enable_ipv4=false {out}/linux-x64-all-clusters-ipv6only - -# Generating linux-x64-all-clusters-minimal -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/linux {out}/linux-x64-all-clusters-minimal - -# Generating linux-x64-all-clusters-minimal-ipv6only -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/linux --args=chip_inet_config_enable_ipv4=false {out}/linux-x64-all-clusters-minimal-ipv6only - -# Generating linux-x64-bridge -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/bridge-app/linux {out}/linux-x64-bridge - -# Generating linux-x64-bridge-ipv6only -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/bridge-app/linux --args=chip_inet_config_enable_ipv4=false {out}/linux-x64-bridge-ipv6only - -# Generating linux-x64-chip-cert -gn gen --check --fail-on-unused-args --export-compile-commands --root={root} {out}/linux-x64-chip-cert - -# Generating linux-x64-chip-tool -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/chip-tool {out}/linux-x64-chip-tool - -# Generating linux-x64-chip-tool-coverage -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/chip-tool --args=use_coverage=true {out}/linux-x64-chip-tool-coverage - -# Generating linux-x64-chip-tool-ipv6only -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/chip-tool --args=chip_inet_config_enable_ipv4=false {out}/linux-x64-chip-tool-ipv6only - -# Generating linux-x64-chip-tool-nodeps -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/chip-tool '--args=chip_config_network_layer_ble=false chip_enable_wifi=false chip_enable_openthread=false is_clang=true chip_crypto="mbedtls"' {out}/linux-x64-chip-tool-nodeps - -# Generating linux-x64-chip-tool-nodeps-ipv6only -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/chip-tool '--args=chip_inet_config_enable_ipv4=false chip_config_network_layer_ble=false chip_enable_wifi=false chip_enable_openthread=false is_clang=true chip_crypto="mbedtls"' {out}/linux-x64-chip-tool-nodeps-ipv6only - -# Generating linux-x64-dynamic-bridge -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/dynamic-bridge-app/linux {out}/linux-x64-dynamic-bridge - -# Generating linux-x64-dynamic-bridge-ipv6only -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/dynamic-bridge-app/linux --args=chip_inet_config_enable_ipv4=false {out}/linux-x64-dynamic-bridge-ipv6only - -# Generating linux-x64-light -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/linux {out}/linux-x64-light - -# Generating linux-x64-light-ipv6only -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/linux --args=chip_inet_config_enable_ipv4=false {out}/linux-x64-light-ipv6only - -# Generating linux-x64-light-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/linux '--args=import("//with_pw_rpc.gni")' {out}/linux-x64-light-rpc - -# Generating linux-x64-light-rpc-ipv6only -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/linux '--args=import("//with_pw_rpc.gni") chip_inet_config_enable_ipv4=false' {out}/linux-x64-light-rpc-ipv6only - -# Generating linux-x64-lock -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/linux {out}/linux-x64-lock - -# Generating linux-x64-lock-ipv6only -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/linux --args=chip_inet_config_enable_ipv4=false {out}/linux-x64-lock-ipv6only - -# Generating linux-x64-minmdns -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/minimal-mdns {out}/linux-x64-minmdns - -# Generating linux-x64-minmdns-ipv6only -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/minimal-mdns --args=chip_inet_config_enable_ipv4=false {out}/linux-x64-minmdns-ipv6only - -# Generating linux-x64-nl-test-runner -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4161A"' {out}/linux-x64-nl-test-runner - -# Generating linux-x64-ota-provider -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/ota-provider-app/linux --args=chip_config_network_layer_ble=false {out}/linux-x64-ota-provider - -# Generating linux-x64-ota-provider-ipv6only -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/ota-provider-app/linux '--args=chip_inet_config_enable_ipv4=false chip_config_network_layer_ble=false' {out}/linux-x64-ota-provider-ipv6only - -# Generating linux-x64-ota-provider-nodeps -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/ota-provider-app/linux '--args=chip_config_network_layer_ble=false chip_enable_wifi=false chip_enable_openthread=false is_clang=true chip_crypto="mbedtls"' {out}/linux-x64-ota-provider-nodeps - -# Generating linux-x64-ota-provider-nodeps-ipv6only -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/ota-provider-app/linux '--args=chip_inet_config_enable_ipv4=false chip_config_network_layer_ble=false chip_enable_wifi=false chip_enable_openthread=false is_clang=true chip_crypto="mbedtls"' {out}/linux-x64-ota-provider-nodeps-ipv6only - -# Generating linux-x64-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/ota-requestor-app/linux --args=chip_config_network_layer_ble=false {out}/linux-x64-ota-requestor - -# Generating linux-x64-ota-requestor-ipv6only -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/ota-requestor-app/linux '--args=chip_inet_config_enable_ipv4=false chip_config_network_layer_ble=false' {out}/linux-x64-ota-requestor-ipv6only - -# Generating linux-x64-ota-requestor-nodeps -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/ota-requestor-app/linux '--args=chip_config_network_layer_ble=false chip_enable_wifi=false chip_enable_openthread=false is_clang=true chip_crypto="mbedtls"' {out}/linux-x64-ota-requestor-nodeps - -# Generating linux-x64-ota-requestor-nodeps-ipv6only -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/ota-requestor-app/linux '--args=chip_inet_config_enable_ipv4=false chip_config_network_layer_ble=false chip_enable_wifi=false chip_enable_openthread=false is_clang=true chip_crypto="mbedtls"' {out}/linux-x64-ota-requestor-nodeps-ipv6only - -# Generating linux-x64-python-bindings -gn gen --check --fail-on-unused-args --export-compile-commands --root={root} '--args=enable_rtti=false chip_project_config_include_dirs=["//config/python"]' {out}/linux-x64-python-bindings - -# Generating linux-x64-rpc-console -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/common/pigweed/rpc_console {out}/linux-x64-rpc-console - -# Generating linux-x64-shell -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/shell/standalone {out}/linux-x64-shell - -# Generating linux-x64-shell-ipv6only -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/shell/standalone --args=chip_inet_config_enable_ipv4=false {out}/linux-x64-shell-ipv6only - -# Generating linux-x64-tests -gn gen --check --fail-on-unused-args --export-compile-commands --root={root} --args=chip_build_tests=true {out}/linux-x64-tests - -# Generating linux-x64-thermostat -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/thermostat/linux {out}/linux-x64-thermostat - -# Generating linux-x64-thermostat-ipv6only -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/thermostat/linux --args=chip_inet_config_enable_ipv4=false {out}/linux-x64-thermostat-ipv6only - -# Generating linux-x64-tv-app -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/tv-app/linux {out}/linux-x64-tv-app - -# Generating linux-x64-tv-app-ipv6only -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/tv-app/linux --args=chip_inet_config_enable_ipv4=false {out}/linux-x64-tv-app-ipv6only - -# Generating linux-x64-tv-casting-app -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/tv-casting-app/linux {out}/linux-x64-tv-casting-app - -# Generating linux-x64-tv-casting-app-ipv6only -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/tv-casting-app/linux --args=chip_inet_config_enable_ipv4=false {out}/linux-x64-tv-casting-app-ipv6only - -# Building linux-arm64-clang-all-clusters -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-all-clusters' - -# Building linux-arm64-clang-all-clusters-app-nodeps -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-all-clusters-app-nodeps' - -# Building linux-arm64-clang-all-clusters-app-nodeps-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-all-clusters-app-nodeps-ipv6only' - -# Building linux-arm64-clang-all-clusters-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-all-clusters-ipv6only' - -# Building linux-arm64-clang-all-clusters-minimal -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-all-clusters-minimal' - -# Building linux-arm64-clang-all-clusters-minimal-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-all-clusters-minimal-ipv6only' - -# Building linux-arm64-clang-bridge -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-bridge' - -# Building linux-arm64-clang-bridge-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-bridge-ipv6only' - -# Building linux-arm64-clang-chip-tool -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-chip-tool' - -# Building linux-arm64-clang-chip-tool-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-chip-tool-ipv6only' - -# Building linux-arm64-clang-chip-tool-nodeps -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-chip-tool-nodeps' - -# Building linux-arm64-clang-chip-tool-nodeps-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-chip-tool-nodeps-ipv6only' - -# Building linux-arm64-clang-dynamic-bridge -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-dynamic-bridge' - -# Building linux-arm64-clang-dynamic-bridge-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-dynamic-bridge-ipv6only' - -# Building linux-arm64-clang-light -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-light' - -# Building linux-arm64-clang-light-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-light-ipv6only' - -# Building linux-arm64-clang-light-rpc -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-light-rpc' - -# Building linux-arm64-clang-light-rpc-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-light-rpc-ipv6only' - -# Building linux-arm64-clang-lock -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-lock' - -# Building linux-arm64-clang-lock-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-lock-ipv6only' - -# Building linux-arm64-clang-minmdns -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-minmdns' - -# Building linux-arm64-clang-minmdns-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-minmdns-ipv6only' - -# Building linux-arm64-clang-ota-provider -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-ota-provider' - -# Building linux-arm64-clang-ota-provider-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-ota-provider-ipv6only' - -# Building linux-arm64-clang-ota-provider-nodeps -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-ota-provider-nodeps' - -# Building linux-arm64-clang-ota-provider-nodeps-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-ota-provider-nodeps-ipv6only' - -# Building linux-arm64-clang-ota-requestor -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-ota-requestor' - -# Building linux-arm64-clang-ota-requestor-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-ota-requestor-ipv6only' - -# Building linux-arm64-clang-ota-requestor-nodeps -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-ota-requestor-nodeps' - -# Building linux-arm64-clang-ota-requestor-nodeps-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-ota-requestor-nodeps-ipv6only' - -# Building linux-arm64-clang-python-bindings -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-python-bindings chip-repl' - -# Building linux-arm64-clang-shell -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-shell' - -# Building linux-arm64-clang-shell-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-shell-ipv6only' - -# Building linux-arm64-clang-thermostat -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-thermostat' - -# Building linux-arm64-clang-thermostat-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-thermostat-ipv6only' - -# Building linux-arm64-clang-tv-app -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-tv-app' - -# Building linux-arm64-clang-tv-app-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-tv-app-ipv6only' - -# Building linux-arm64-clang-tv-casting-app -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-tv-casting-app' - -# Building linux-arm64-clang-tv-casting-app-ipv6only -bash -c ' -PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ - ninja -C {out}/linux-arm64-clang-tv-casting-app-ipv6only' - -# Building linux-fake-tests -ninja -C {out}/linux-fake-tests check - -# Building linux-x64-address-resolve-tool -ninja -C {out}/linux-x64-address-resolve-tool src/lib/address_resolve:address-resolve-tool - -# Building linux-x64-all-clusters -ninja -C {out}/linux-x64-all-clusters - -# Building linux-x64-all-clusters-app-nodeps -ninja -C {out}/linux-x64-all-clusters-app-nodeps - -# Building linux-x64-all-clusters-app-nodeps-ipv6only -ninja -C {out}/linux-x64-all-clusters-app-nodeps-ipv6only - -# Building linux-x64-all-clusters-coverage -ninja -C {out}/linux-x64-all-clusters-coverage - -# Building linux-x64-all-clusters-ipv6only -ninja -C {out}/linux-x64-all-clusters-ipv6only - -# Building linux-x64-all-clusters-minimal -ninja -C {out}/linux-x64-all-clusters-minimal - -# Building linux-x64-all-clusters-minimal-ipv6only -ninja -C {out}/linux-x64-all-clusters-minimal-ipv6only - -# Building linux-x64-bridge -ninja -C {out}/linux-x64-bridge - -# Building linux-x64-bridge-ipv6only -ninja -C {out}/linux-x64-bridge-ipv6only - -# Building linux-x64-chip-cert -ninja -C {out}/linux-x64-chip-cert src/tools/chip-cert - -# Building linux-x64-chip-tool -ninja -C {out}/linux-x64-chip-tool - -# Building linux-x64-chip-tool-coverage -ninja -C {out}/linux-x64-chip-tool-coverage - -# Building linux-x64-chip-tool-ipv6only -ninja -C {out}/linux-x64-chip-tool-ipv6only - -# Building linux-x64-chip-tool-nodeps -ninja -C {out}/linux-x64-chip-tool-nodeps - -# Building linux-x64-chip-tool-nodeps-ipv6only -ninja -C {out}/linux-x64-chip-tool-nodeps-ipv6only - -# Building linux-x64-dynamic-bridge -ninja -C {out}/linux-x64-dynamic-bridge - -# Building linux-x64-dynamic-bridge-ipv6only -ninja -C {out}/linux-x64-dynamic-bridge-ipv6only - -# Building linux-x64-light -ninja -C {out}/linux-x64-light - -# Building linux-x64-light-ipv6only -ninja -C {out}/linux-x64-light-ipv6only - -# Building linux-x64-light-rpc -ninja -C {out}/linux-x64-light-rpc - -# Building linux-x64-light-rpc-ipv6only -ninja -C {out}/linux-x64-light-rpc-ipv6only - -# Building linux-x64-lock -ninja -C {out}/linux-x64-lock - -# Building linux-x64-lock-ipv6only -ninja -C {out}/linux-x64-lock-ipv6only - -# Building linux-x64-minmdns -ninja -C {out}/linux-x64-minmdns - -# Building linux-x64-minmdns-ipv6only -ninja -C {out}/linux-x64-minmdns-ipv6only - -# Building linux-x64-nl-test-runner -ninja -C {out}/linux-x64-nl-test-runner runner - -# Building linux-x64-ota-provider -ninja -C {out}/linux-x64-ota-provider - -# Building linux-x64-ota-provider-ipv6only -ninja -C {out}/linux-x64-ota-provider-ipv6only - -# Building linux-x64-ota-provider-nodeps -ninja -C {out}/linux-x64-ota-provider-nodeps - -# Building linux-x64-ota-provider-nodeps-ipv6only -ninja -C {out}/linux-x64-ota-provider-nodeps-ipv6only - -# Building linux-x64-ota-requestor -ninja -C {out}/linux-x64-ota-requestor - -# Building linux-x64-ota-requestor-ipv6only -ninja -C {out}/linux-x64-ota-requestor-ipv6only - -# Building linux-x64-ota-requestor-nodeps -ninja -C {out}/linux-x64-ota-requestor-nodeps - -# Building linux-x64-ota-requestor-nodeps-ipv6only -ninja -C {out}/linux-x64-ota-requestor-nodeps-ipv6only - -# Building linux-x64-python-bindings -ninja -C {out}/linux-x64-python-bindings chip-repl - -# Building linux-x64-rpc-console -ninja -C {out}/linux-x64-rpc-console - -# Building linux-x64-shell -ninja -C {out}/linux-x64-shell - -# Building linux-x64-shell-ipv6only -ninja -C {out}/linux-x64-shell-ipv6only - -# Building linux-x64-tests -ninja -C {out}/linux-x64-tests check - -# Building linux-x64-thermostat -ninja -C {out}/linux-x64-thermostat - -# Building linux-x64-thermostat-ipv6only -ninja -C {out}/linux-x64-thermostat-ipv6only - -# Building linux-x64-tv-app -ninja -C {out}/linux-x64-tv-app - -# Building linux-x64-tv-app-ipv6only -ninja -C {out}/linux-x64-tv-app-ipv6only - -# Building linux-x64-tv-casting-app -ninja -C {out}/linux-x64-tv-casting-app - -# Building linux-x64-tv-casting-app-ipv6only -ninja -C {out}/linux-x64-tv-casting-app-ipv6only diff --git a/scripts/build/testdata/dry_run_android-arm64-chip-tool.txt b/scripts/build/testdata/dry_run_android-arm64-chip-tool.txt new file mode 100644 index 00000000000000..c88cdc778386e4 --- /dev/null +++ b/scripts/build/testdata/dry_run_android-arm64-chip-tool.txt @@ -0,0 +1,32 @@ +# Commands will be run in CHIP project root. +cd "{root}" + +# Setting up Android deps through Gradle +python3 third_party/android_deps/set_up_android_deps.py + +# Generating android-arm64-chip-tool +gn gen --check --fail-on-unused-args {out}/android-arm64-chip-tool '--args=target_os="android" target_cpu="arm64" android_ndk_root="TEST_ANDROID_NDK_HOME" android_sdk_root="TEST_ANDROID_HOME" ' + +# Accepting NDK licenses @ tools +bash -c 'yes | TEST_ANDROID_HOME/tools/bin/sdkmanager --licenses >/dev/null' + +# Building JNI android-arm64-chip-tool +ninja -C {out}/android-arm64-chip-tool + +# Prepare Native libs android-arm64-chip-tool +mkdir -p {root}/examples/android/CHIPTool/app/libs/jniLibs/arm64-v8a + +cp {out}/android-arm64-chip-tool/lib/jni/arm64-v8a/libSetupPayloadParser.so {root}/examples/android/CHIPTool/app/libs/jniLibs/arm64-v8a/libSetupPayloadParser.so + +cp {out}/android-arm64-chip-tool/lib/jni/arm64-v8a/libCHIPController.so {root}/examples/android/CHIPTool/app/libs/jniLibs/arm64-v8a/libCHIPController.so + +cp {out}/android-arm64-chip-tool/lib/jni/arm64-v8a/libc++_shared.so {root}/examples/android/CHIPTool/app/libs/jniLibs/arm64-v8a/libc++_shared.so + +cp {out}/android-arm64-chip-tool/lib/src/controller/java/CHIPController.jar {root}/examples/android/CHIPTool/app/libs/CHIPController.jar + +cp {out}/android-arm64-chip-tool/lib/src/setup_payload/java/SetupPayloadParser.jar {root}/examples/android/CHIPTool/app/libs/SetupPayloadParser.jar + +cp {out}/android-arm64-chip-tool/lib/src/platform/android/AndroidPlatform.jar {root}/examples/android/CHIPTool/app/libs/AndroidPlatform.jar + +# Building APP android-arm64-chip-tool +{root}/examples/android/CHIPTool/gradlew -p {root}/examples/android/CHIPTool -PmatterBuildSrcDir={out}/android-arm64-chip-tool -PmatterSdkSourceBuild=false -PbuildDir={out}/android-arm64-chip-tool assembleDebug diff --git a/scripts/build/testdata/dry_run_efr32-brd4161a-light-rpc.txt b/scripts/build/testdata/dry_run_efr32-brd4161a-light-rpc.txt new file mode 100644 index 00000000000000..cfbf6ba319e1fd --- /dev/null +++ b/scripts/build/testdata/dry_run_efr32-brd4161a-light-rpc.txt @@ -0,0 +1,8 @@ +# Commands will be run in CHIP project root. +cd "{root}" + +# Generating efr32-brd4161a-light-rpc +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4161A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4161a-light-rpc + +# Building efr32-brd4161a-light-rpc +ninja -C {out}/efr32-brd4161a-light-rpc diff --git a/scripts/build/testdata/dry_run_esp32-devkitc-light-rpc.txt b/scripts/build/testdata/dry_run_esp32-devkitc-light-rpc.txt new file mode 100644 index 00000000000000..e949510f99de97 --- /dev/null +++ b/scripts/build/testdata/dry_run_esp32-devkitc-light-rpc.txt @@ -0,0 +1,20 @@ +# Commands will be run in CHIP project root. +cd "{root}" + +# Generating esp32-devkitc-light-rpc +mkdir -p {out}/esp32-devkitc-light-rpc + +cp examples/lighting-app/esp32/sdkconfig_rpc.defaults {out}/esp32-devkitc-light-rpc/sdkconfig.defaults + +rm -f examples/lighting-app/esp32/sdkconfig + +bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; +export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-light-rpc/sdkconfig.defaults +idf.py -C examples/lighting-app/esp32 -B {out}/esp32-devkitc-light-rpc reconfigure' + +rm -f examples/lighting-app/esp32/sdkconfig + +# Building esp32-devkitc-light-rpc +bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; +export SDKCONFIG_DEFAULTS={out}/esp32-devkitc-light-rpc/sdkconfig.defaults +idf.py -C examples/lighting-app/esp32 -B {out}/esp32-devkitc-light-rpc build' diff --git a/scripts/build/testdata/dry_run_esp32-m5stack-all-clusters-minimal-rpc-ipv6only.txt b/scripts/build/testdata/dry_run_esp32-m5stack-all-clusters-minimal-rpc-ipv6only.txt new file mode 100644 index 00000000000000..f82dd8a53e8a64 --- /dev/null +++ b/scripts/build/testdata/dry_run_esp32-m5stack-all-clusters-minimal-rpc-ipv6only.txt @@ -0,0 +1,22 @@ +# Commands will be run in CHIP project root. +cd "{root}" + +# Generating esp32-m5stack-all-clusters-minimal-rpc-ipv6only +mkdir -p {out}/esp32-m5stack-all-clusters-minimal-rpc-ipv6only + +cp examples/all-clusters-minimal-app/esp32/sdkconfig_m5stack_rpc.defaults {out}/esp32-m5stack-all-clusters-minimal-rpc-ipv6only/sdkconfig.defaults + +rm -f examples/all-clusters-minimal-app/esp32/sdkconfig + +bash -c 'echo -e "\nCONFIG_DISABLE_IPV4=y\n" >>{out}/esp32-m5stack-all-clusters-minimal-rpc-ipv6only/sdkconfig.defaults' + +bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; +export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-all-clusters-minimal-rpc-ipv6only/sdkconfig.defaults +idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-m5stack-all-clusters-minimal-rpc-ipv6only reconfigure' + +rm -f examples/all-clusters-minimal-app/esp32/sdkconfig + +# Building esp32-m5stack-all-clusters-minimal-rpc-ipv6only +bash -c 'source $IDF_PATH/export.sh; source scripts/activate.sh; +export SDKCONFIG_DEFAULTS={out}/esp32-m5stack-all-clusters-minimal-rpc-ipv6only/sdkconfig.defaults +idf.py -C examples/all-clusters-minimal-app/esp32 -B {out}/esp32-m5stack-all-clusters-minimal-rpc-ipv6only build' diff --git a/scripts/build/testdata/dry_run_linux-arm64-chip-tool-ipv6only-clang.txt b/scripts/build/testdata/dry_run_linux-arm64-chip-tool-ipv6only-clang.txt new file mode 100644 index 00000000000000..a92463b2cff716 --- /dev/null +++ b/scripts/build/testdata/dry_run_linux-arm64-chip-tool-ipv6only-clang.txt @@ -0,0 +1,12 @@ +# Commands will be run in CHIP project root. +cd "{root}" + +# Generating linux-arm64-chip-tool-ipv6only-clang +bash -c ' +PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ + gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/chip-tool '"'"'--args=chip_inet_config_enable_ipv4=false is_clang=true target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-chip-tool-ipv6only-clang' + +# Building linux-arm64-chip-tool-ipv6only-clang +bash -c ' +PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ + ninja -C {out}/linux-arm64-chip-tool-ipv6only-clang' diff --git a/scripts/build/testdata/dry_run_linux-arm64-ota-requestor-nodeps-ipv6only.txt b/scripts/build/testdata/dry_run_linux-arm64-ota-requestor-nodeps-ipv6only.txt new file mode 100644 index 00000000000000..aa6eb4dd3e8a31 --- /dev/null +++ b/scripts/build/testdata/dry_run_linux-arm64-ota-requestor-nodeps-ipv6only.txt @@ -0,0 +1,12 @@ +# Commands will be run in CHIP project root. +cd "{root}" + +# Generating linux-arm64-ota-requestor-nodeps-ipv6only +bash -c ' +PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ + gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/ota-requestor-app/linux '"'"'--args=chip_inet_config_enable_ipv4=false chip_config_network_layer_ble=false chip_enable_wifi=false chip_enable_openthread=false is_clang=true chip_crypto="mbedtls" target_cpu="arm64" sysroot="SYSROOT_AARCH64"'"'"' {out}/linux-arm64-ota-requestor-nodeps-ipv6only' + +# Building linux-arm64-ota-requestor-nodeps-ipv6only +bash -c ' +PKG_CONFIG_PATH="SYSROOT_AARCH64/lib/aarch64-linux-gnu/pkgconfig" \ + ninja -C {out}/linux-arm64-ota-requestor-nodeps-ipv6only' diff --git a/scripts/build/testdata/dry_run_linux-x64-all-clusters-coverage.txt b/scripts/build/testdata/dry_run_linux-x64-all-clusters-coverage.txt new file mode 100644 index 00000000000000..94e8686b31dcf9 --- /dev/null +++ b/scripts/build/testdata/dry_run_linux-x64-all-clusters-coverage.txt @@ -0,0 +1,8 @@ +# Commands will be run in CHIP project root. +cd "{root}" + +# Generating linux-x64-all-clusters-coverage +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/linux --args=use_coverage=true {out}/linux-x64-all-clusters-coverage + +# Building linux-x64-all-clusters-coverage +ninja -C {out}/linux-x64-all-clusters-coverage diff --git a/scripts/build/testdata/dry_run_nrf-nrf52840dk-pump.txt b/scripts/build/testdata/dry_run_nrf-nrf52840dk-pump.txt new file mode 100644 index 00000000000000..e0b4d31e73bb26 --- /dev/null +++ b/scripts/build/testdata/dry_run_nrf-nrf52840dk-pump.txt @@ -0,0 +1,10 @@ +# Commands will be run in CHIP project root. +cd "{root}" + +# Generating nrf-nrf52840dk-pump +bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; +export GNUARMEMB_TOOLCHAIN_PATH="$PW_ARM_CIPD_INSTALL_DIR"; +west build --cmake-only -d {out}/nrf-nrf52840dk-pump -b nrf52840dk_nrf52840 {root}/examples/pump-app/nrfconnect' + +# Building nrf-nrf52840dk-pump +ninja -C {out}/nrf-nrf52840dk-pump diff --git a/scripts/build/testdata/glob_star_targets_except_host.txt b/scripts/build/testdata/glob_star_targets_except_host.txt deleted file mode 100644 index 334b88c2e8dbfe..00000000000000 --- a/scripts/build/testdata/glob_star_targets_except_host.txt +++ /dev/null @@ -1,130 +0,0 @@ -ameba-amebad-all-clusters -ameba-amebad-all-clusters-minimal -ameba-amebad-light -ameba-amebad-pigweed -android-androidstudio-arm-chip-tool -android-androidstudio-arm64-chip-tool -android-androidstudio-x64-chip-tool -android-androidstudio-x86-chip-tool -android-arm-chip-tool -android-arm-tv-casting-app -android-arm-tv-server -android-arm64-chip-test -android-arm64-chip-tool -android-arm64-tv-casting-app -android-arm64-tv-server -android-x64-chip-tool -android-x64-tv-server -android-x86-chip-tool -android-x86-tv-server -bl602-light -bouffalolab-BL706-IoT-DVK-light -bouffalolab-BL706-IoT-DVK-light-rpc -bouffalolab-BL706-NIGHT-LIGHT-light -cc13x2x7_26x2x7-all-clusters -cc13x2x7_26x2x7-all-clusters-minimal -cc13x2x7_26x2x7-lock-ftd -cc13x2x7_26x2x7-lock-mtd -cc13x2x7_26x2x7-pump -cc13x2x7_26x2x7-pump-controller -cc13x2x7_26x2x7-shell -cyw30739-cyw930739m2evb_01-light -cyw30739-cyw930739m2evb_01-lock -cyw30739-cyw930739m2evb_01-ota-requestor-no-progress-logging -efr32-brd4161a-light -efr32-brd4161a-light-rpc -efr32-brd4161a-lock -efr32-brd4161a-lock-rpc -efr32-brd4161a-switch -efr32-brd4161a-unit-test -efr32-brd4161a-window-covering -efr32-brd4187c-light -efr32-brd4187c-light-rpc -efr32-brd4187c-lock -efr32-brd4187c-lock-rpc -efr32-brd4187c-switch -efr32-brd4187c-unit-test -efr32-brd4187c-window-covering -esp32-c3devkit-all-clusters -esp32-c3devkit-all-clusters-minimal -esp32-devkitc-all-clusters -esp32-devkitc-all-clusters-ipv6only -esp32-devkitc-all-clusters-minimal -esp32-devkitc-all-clusters-minimal-ipv6only -esp32-devkitc-bridge -esp32-devkitc-light -esp32-devkitc-light-rpc -esp32-devkitc-lock -esp32-devkitc-ota-requestor -esp32-devkitc-ota-requestor-rpc -esp32-devkitc-shell -esp32-devkitc-temperature-measurement -esp32-devkitc-temperature-measurement-rpc -esp32-m5stack-all-clusters -esp32-m5stack-all-clusters-ipv6only -esp32-m5stack-all-clusters-minimal -esp32-m5stack-all-clusters-minimal-ipv6only -esp32-m5stack-all-clusters-minimal-rpc -esp32-m5stack-all-clusters-minimal-rpc-ipv6only -esp32-m5stack-all-clusters-rpc -esp32-m5stack-all-clusters-rpc-ipv6only -esp32-m5stack-ota-requestor -esp32-m5stack-ota-requestor-rpc -esp32-qemu-tests -genio-lighting-app -imx-all-clusters-app -imx-all-clusters-app-release -imx-all-clusters-minimal-app -imx-all-clusters-minimal-app-release -imx-chip-tool -imx-chip-tool-release -imx-lighting-app -imx-lighting-app-release -imx-ota-provider-app -imx-ota-provider-app-release -imx-thermostat -imx-thermostat-release -infineon-psoc6-all-clusters -infineon-psoc6-all-clusters-minimal -infineon-psoc6-light -infineon-psoc6-lock -k32w-contact-release -k32w-light-release-no-ota -k32w-lock-release -k32w-shell-release -mbed-CY8CPROTO_062_4343W-all-clusters-minimal-release -mbed-CY8CPROTO_062_4343W-all-clusters-release -mbed-CY8CPROTO_062_4343W-light-release -mbed-CY8CPROTO_062_4343W-lock-release -mbed-CY8CPROTO_062_4343W-pigweed-release -mbed-CY8CPROTO_062_4343W-shell-release -mw320-all-clusters-app -nrf-native-posix-64-tests -nrf-nrf52840dk-all-clusters -nrf-nrf52840dk-all-clusters-minimal -nrf-nrf52840dk-light -nrf-nrf52840dk-light-rpc -nrf-nrf52840dk-lock -nrf-nrf52840dk-pump -nrf-nrf52840dk-pump-controller -nrf-nrf52840dk-shell -nrf-nrf52840dongle-all-clusters-minimal -nrf-nrf52840dongle-light -nrf-nrf5340dk-all-clusters -nrf-nrf5340dk-all-clusters-minimal -nrf-nrf5340dk-light -nrf-nrf5340dk-lock -nrf-nrf5340dk-pump -nrf-nrf5340dk-pump-controller -nrf-nrf5340dk-shell -qpg-light -qpg-lock -qpg-persistent-storage -qpg-shell -telink-tlsr9518adk80d-light -telink-tlsr9518adk80d-light-switch -telink-tlsr9518adk80d-ota-requestor -tizen-arm-all-clusters -tizen-arm-all-clusters-minimal -tizen-arm-chip-tool -tizen-arm-light diff --git a/src/test_driver/efr32/README.md b/src/test_driver/efr32/README.md index 5c9817b8da6948..d79aef59866578 100644 --- a/src/test_driver/efr32/README.md +++ b/src/test_driver/efr32/README.md @@ -98,7 +98,7 @@ Or build using build script from the root ``` cd - ./scripts/build/build_examples.py --target-glob '*nl-test-runner' build + ./scripts/build/build_examples.py --target linux-x64-nl-test-runner build ``` The runner will be installed into the venv and python wheels will be packaged in From 2a1cf85fc64ab0a99197079dfb0a8bb3db2bfcea Mon Sep 17 00:00:00 2001 From: Michael Sandstedt Date: Tue, 11 Oct 2022 13:40:44 -0500 Subject: [PATCH 09/15] Minor style and comment fixes for #23062 (#23110) Apply suggestions per bzbarsky-apple --- .../TestDefaultSessionResumptionStorage.cpp | 33 +++++++++---------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/src/protocols/secure_channel/tests/TestDefaultSessionResumptionStorage.cpp b/src/protocols/secure_channel/tests/TestDefaultSessionResumptionStorage.cpp index 334801ae98dc95..ca3d673b53fd14 100644 --- a/src/protocols/secure_channel/tests/TestDefaultSessionResumptionStorage.cpp +++ b/src/protocols/secure_channel/tests/TestDefaultSessionResumptionStorage.cpp @@ -15,6 +15,7 @@ * limitations under the License. */ +#include #include #include #include @@ -24,8 +25,6 @@ // Use SimpleSessionResumptionStorage, which extends it, to test. #include -#define ARRAY_SIZE(_array) ((sizeof(_array) / sizeof(_array[0]))) - void TestSave(nlTestSuite * inSuite, void * inContext) { chip::SimpleSessionResumptionStorage sessionStorage; @@ -40,7 +39,7 @@ void TestSave(nlTestSuite * inSuite, void * inContext) } vectors[CHIP_CONFIG_CASE_SESSION_RESUME_CACHE_SIZE + 1]; // Populate test vectors. - for (size_t i = 0; i < ARRAY_SIZE(vectors); ++i) + for (size_t i = 0; i < ArraySize(vectors); ++i) { NL_TEST_ASSERT( inSuite, CHIP_NO_ERROR == chip::Crypto::DRBG_get_bytes(vectors[i].resumptionId.data(), vectors[i].resumptionId.size())); @@ -70,7 +69,7 @@ void TestSave(nlTestSuite * inSuite, void * inContext) // If more sophisticated LRU behavior is implemented, this test // case should be modified to match. { - size_t last = ARRAY_SIZE(vectors) - 1; + size_t last = ArraySize(vectors) - 1; NL_TEST_ASSERT(inSuite, sessionStorage.Save(vectors[last].node, vectors[last].resumptionId, vectors[last].sharedSecret, vectors[last].cats) == CHIP_NO_ERROR); @@ -99,7 +98,7 @@ void TestSave(nlTestSuite * inSuite, void * inContext) NL_TEST_ASSERT(inSuite, vector.cats.values[1] == outCats.values[1]); NL_TEST_ASSERT(inSuite, vector.cats.values[2] == outCats.values[2]); - // Validate retreiveal by resumption ID. + // Validate retrieval by resumption ID. NL_TEST_ASSERT(inSuite, sessionStorage.FindByResumptionId(vector.resumptionId, outNode, outSharedSecret, outCats) == CHIP_NO_ERROR); NL_TEST_ASSERT(inSuite, vector.node == outNode); @@ -123,12 +122,12 @@ void TestInPlaceSave(nlTestSuite * inSuite, void * inContext) chip::CATValues cats; } vectors[CHIP_CONFIG_CASE_SESSION_RESUME_CACHE_SIZE + 10]; - // Construct only a few unique node identities to simiulate talking to a + // Construct only a few unique node identities to simulate talking to a // couple peers. chip::ScopedNodeId nodes[3]; - static_assert(ARRAY_SIZE(nodes) < CHIP_CONFIG_CASE_SESSION_RESUME_CACHE_SIZE, + static_assert(ArraySize(nodes) < CHIP_CONFIG_CASE_SESSION_RESUME_CACHE_SIZE, "must have fewer nodes than slots in session resumption storage"); - for (size_t i = 0; i < ARRAY_SIZE(nodes); ++i) + for (size_t i = 0; i < ArraySize(nodes); ++i) { do { @@ -137,7 +136,7 @@ void TestInPlaceSave(nlTestSuite * inSuite, void * inContext) } // Populate test vectors. - for (size_t i = 0; i < ARRAY_SIZE(vectors); ++i) + for (size_t i = 0; i < ArraySize(vectors); ++i) { NL_TEST_ASSERT( inSuite, CHIP_NO_ERROR == chip::Crypto::DRBG_get_bytes(vectors[i].resumptionId.data(), vectors[i].resumptionId.size())); @@ -147,14 +146,14 @@ void TestInPlaceSave(nlTestSuite * inSuite, void * inContext) NL_TEST_ASSERT(inSuite, CHIP_NO_ERROR == chip::Crypto::DRBG_get_bytes(vectors[i].sharedSecret.Bytes(), vectors[i].sharedSecret.Length())); - vectors[i].node = nodes[i % ARRAY_SIZE(nodes)]; + vectors[i].node = nodes[i % ArraySize(nodes)]; vectors[i].cats.values[0] = static_cast(rand()); vectors[i].cats.values[1] = static_cast(rand()); vectors[i].cats.values[2] = static_cast(rand()); } // Add one entry for each node. - for (size_t i = 0; i < ARRAY_SIZE(nodes); ++i) + for (size_t i = 0; i < ArraySize(nodes); ++i) { NL_TEST_ASSERT(inSuite, sessionStorage.Save(vectors[i].node, vectors[i].resumptionId, vectors[i].sharedSecret, vectors[i].cats) == @@ -162,7 +161,7 @@ void TestInPlaceSave(nlTestSuite * inSuite, void * inContext) } // Read back and verify values. - for (size_t i = 0; i < ARRAY_SIZE(nodes); ++i) + for (size_t i = 0; i < ArraySize(nodes); ++i) { chip::ScopedNodeId outNode; chip::SessionResumptionStorage::ResumptionIdStorage outResumptionId; @@ -180,7 +179,7 @@ void TestInPlaceSave(nlTestSuite * inSuite, void * inContext) NL_TEST_ASSERT(inSuite, vectors[i].cats.values[1] == outCats.values[1]); NL_TEST_ASSERT(inSuite, vectors[i].cats.values[2] == outCats.values[2]); - // Validate retreiveal by resumption ID. + // Validate retrieval by resumption ID. NL_TEST_ASSERT(inSuite, sessionStorage.FindByResumptionId(vectors[i].resumptionId, outNode, outSharedSecret, outCats) == CHIP_NO_ERROR); @@ -200,7 +199,7 @@ void TestInPlaceSave(nlTestSuite * inSuite, void * inContext) } // Read back and verify that only the last record for each node was retained. - for (size_t i = ARRAY_SIZE(vectors) - ARRAY_SIZE(nodes); i < ARRAY_SIZE(vectors); ++i) + for (size_t i = ArraySize(vectors) - ArraySize(nodes); i < ArraySize(vectors); ++i) { chip::ScopedNodeId outNode; chip::SessionResumptionStorage::ResumptionIdStorage outResumptionId; @@ -218,7 +217,7 @@ void TestInPlaceSave(nlTestSuite * inSuite, void * inContext) NL_TEST_ASSERT(inSuite, vectors[i].cats.values[1] == outCats.values[1]); NL_TEST_ASSERT(inSuite, vectors[i].cats.values[2] == outCats.values[2]); - // Validate retreiveal by resumption ID. + // Validate retrieval by resumption ID. NL_TEST_ASSERT(inSuite, sessionStorage.FindByResumptionId(vectors[i].resumptionId, outNode, outSharedSecret, outCats) == CHIP_NO_ERROR); @@ -290,7 +289,7 @@ void TestDelete(nlTestSuite * inSuite, void * inContext) NL_TEST_ASSERT(inSuite, CHIP_NO_ERROR == chip::Crypto::DRBG_get_bytes(sharedSecret.Bytes(), sharedSecret.Length())); // Populate test vectors. - for (size_t i = 0; i < ARRAY_SIZE(vectors); ++i) + for (size_t i = 0; i < ArraySize(vectors); ++i) { NL_TEST_ASSERT( inSuite, CHIP_NO_ERROR == chip::Crypto::DRBG_get_bytes(vectors[i].resumptionId.data(), vectors[i].resumptionId.size())); @@ -308,7 +307,7 @@ void TestDelete(nlTestSuite * inSuite, void * inContext) } // Delete values in turn from storage and verify they are removed. - for (size_t i = 0; i < ARRAY_SIZE(vectors); ++i) + for (size_t i = 0; i < ArraySize(vectors); ++i) { chip::ScopedNodeId outNode; chip::SessionResumptionStorage::ResumptionIdStorage outResumptionId; From b829121af113cbf55190de20dc56b807ee25e2cf Mon Sep 17 00:00:00 2001 From: Vivien Nicolas Date: Tue, 11 Oct 2022 21:47:07 +0200 Subject: [PATCH 10/15] [darwin-framework-tool] Make some parts of examples/darwin-framework-tool/BUILD.gn a bit more generic when it comes to SDKROOT variants (#23113) --- examples/darwin-framework-tool/BUILD.gn | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/examples/darwin-framework-tool/BUILD.gn b/examples/darwin-framework-tool/BUILD.gn index b64e8c840f1ea3..cd69f8fae84018 100644 --- a/examples/darwin-framework-tool/BUILD.gn +++ b/examples/darwin-framework-tool/BUILD.gn @@ -28,11 +28,12 @@ declare_args() { chip_codesign = current_os == "ios" } -if (current_os == "ios") { - output_sdk_type = "Debug-iphoneos" -} else { - output_sdk_type = "Debug" +sdk_build_dir_suffix = "" +if (getenv("SDKROOT") != "") { + sdk_root_parts = string_split(getenv("SDKROOT"), ".") + sdk_build_dir_suffix = "-${sdk_root_parts[0]}" } +output_sdk_type = "Debug${sdk_build_dir_suffix}" action("build-darwin-framework") { script = "${chip_root}/scripts/build/build_darwin_framework.py" From af09de09782afab0613cbc7a5b1ad8cca1bbcafb Mon Sep 17 00:00:00 2001 From: Vivien Nicolas Date: Tue, 11 Oct 2022 21:47:20 +0200 Subject: [PATCH 11/15] [darwin-framework-tool] Update some NSLog format to works properly for NSEnum/NSOptions (#23112) --- .../commands/pairing/DeviceControllerDelegateBridge.mm | 2 +- .../commands/payload/SetupPayloadParseCommand.mm | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/darwin-framework-tool/commands/pairing/DeviceControllerDelegateBridge.mm b/examples/darwin-framework-tool/commands/pairing/DeviceControllerDelegateBridge.mm index 9c0fff0984561e..dc53280b2d2553 100644 --- a/examples/darwin-framework-tool/commands/pairing/DeviceControllerDelegateBridge.mm +++ b/examples/darwin-framework-tool/commands/pairing/DeviceControllerDelegateBridge.mm @@ -25,7 +25,7 @@ @interface CHIPToolDeviceControllerDelegate () @implementation CHIPToolDeviceControllerDelegate - (void)onStatusUpdate:(MTRCommissioningStatus)status { - NSLog(@"Pairing Status Update: %lu", status); + NSLog(@"Pairing Status Update: %tu", status); switch (status) { case MTRCommissioningStatusSuccess: ChipLogProgress(chipTool, "Secure Pairing Success"); diff --git a/examples/darwin-framework-tool/commands/payload/SetupPayloadParseCommand.mm b/examples/darwin-framework-tool/commands/payload/SetupPayloadParseCommand.mm index 15be061b9308db..e1448eeaeceb5d 100644 --- a/examples/darwin-framework-tool/commands/payload/SetupPayloadParseCommand.mm +++ b/examples/darwin-framework-tool/commands/payload/SetupPayloadParseCommand.mm @@ -76,7 +76,7 @@ NSLog(@"Version: %@", payload.version); NSLog(@"VendorID: %@", payload.vendorID); NSLog(@"ProductID: %@", payload.productID); - NSLog(@"Custom flow: %lu (%@)", payload.commissioningFlow, CustomFlowString(payload.commissioningFlow)); + NSLog(@"Custom flow: %tu (%@)", payload.commissioningFlow, CustomFlowString(payload.commissioningFlow)); { if (payload.discoveryCapabilities == MTRDiscoveryCapabilitiesUnknown) { NSLog(@"Capabilities: UNKNOWN"); @@ -100,7 +100,7 @@ [humanFlags appendString:@"ON NETWORK"]; } - NSLog(@"Capabilities: 0x%02lX (%@)", value, humanFlags); + NSLog(@"Capabilities: 0x%02lX (%@)", static_cast(value), humanFlags); } } NSLog(@"Discriminator: %@", payload.discriminator); From f8703c74a3dc4d7919b443564f0d180d7c86e560 Mon Sep 17 00:00:00 2001 From: Andrei Litvin Date: Tue, 11 Oct 2022 16:48:19 -0400 Subject: [PATCH 12/15] Fix K32W build rules (ToT CI failure) (#23126) * Use Dict type instead of dict for more python compatibility * Add se05x and no-ble variants to k32w builds, make use of it in CI since otherwise we run out of flash --- .github/workflows/examples-k32w.yaml | 2 +- scripts/build/build/target.py | 4 ++-- scripts/build/build/targets.py | 2 ++ 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/examples-k32w.yaml b/.github/workflows/examples-k32w.yaml index d9142d73d72583..a2603519e0ae95 100644 --- a/.github/workflows/examples-k32w.yaml +++ b/.github/workflows/examples-k32w.yaml @@ -71,7 +71,7 @@ jobs: run: | scripts/run_in_build_env.sh "\ ./scripts/build/build_examples.py \ - --target k32w-light \ + --target k32w-light-no-ble-se05x \ --target k32w-light-no-ota \ --target k32w-lock-low-power-nologs \ --target k32w-contact-low-power-nologs \ diff --git a/scripts/build/build/target.py b/scripts/build/build/target.py index 9d7be75afceef3..1b7ca1626b66c6 100644 --- a/scripts/build/build/target.py +++ b/scripts/build/build/target.py @@ -45,7 +45,7 @@ from collections.abc import Iterable from dataclasses import dataclass -from typing import Any, Optional +from typing import Any, Dict, Optional @dataclass(init=False) @@ -54,7 +54,7 @@ class TargetPart: name: str # The build arguments to apply to a builder if this part is active - build_arguments: dict[str, Any] + build_arguments: Dict[str, Any] # Part should be included if and only if the final string MATCHES the # given regular expression diff --git a/scripts/build/build/targets.py b/scripts/build/build/targets.py index 48021ff270a395..7916a1089d3b1f 100755 --- a/scripts/build/build/targets.py +++ b/scripts/build/build/targets.py @@ -350,6 +350,8 @@ def BuildK32WTarget(): TargetPart('contact', app=K32WApp.CONTACT, release=True), ]) + target.AppendModifier(name="se05x", se05x=True) + target.AppendModifier(name="no-ble", disable_ble=True) target.AppendModifier(name="no-ota", disable_ota=True) target.AppendModifier(name="low-power", low_power=True).OnlyIfRe("-nologs") target.AppendModifier(name="nologs", disable_logs=True) From e193ab968f6ec290f39af1ded7bb90f1902d92b4 Mon Sep 17 00:00:00 2001 From: Andrei Litvin Date: Tue, 11 Oct 2022 16:52:40 -0400 Subject: [PATCH 13/15] Use `typing.List` instead of `list` for typing annodations (#23129) --- scripts/build/build/target.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/build/build/target.py b/scripts/build/build/target.py index 1b7ca1626b66c6..c90a603cddeb9e 100644 --- a/scripts/build/build/target.py +++ b/scripts/build/build/target.py @@ -45,7 +45,7 @@ from collections.abc import Iterable from dataclasses import dataclass -from typing import Any, Dict, Optional +from typing import Any, Dict, List, Optional @dataclass(init=False) @@ -117,7 +117,7 @@ def _HasVariantPrefix(value: str, prefix: str): return value[len(prefix)+1:] -def _StringIntoParts(full_input: str, remaining_input: str, fixed_targets: list[list[TargetPart]], modifiers: list[TargetPart]): +def _StringIntoParts(full_input: str, remaining_input: str, fixed_targets: List[List[TargetPart]], modifiers: List[TargetPart]): """Given an input string, process through all the input rules and return the underlying list of target parts for the input. @@ -191,13 +191,13 @@ def __init__(self, name, builder_class, **kwargs): # - esp32-devkitc-light is OK # - esp32-light is NOT ok # - esp32-m5stack is NOT ok - self.fixed_targets: list[list[TargetPart]] = [] + self.fixed_targets: List[List[TargetPart]] = [] # a list of all available modifiers for this build target # Modifiers can be combined in any way - self.modifiers: list[TargetPart] = [] + self.modifiers: List[TargetPart] = [] - def AppendFixedTargets(self, parts: list[TargetPart]): + def AppendFixedTargets(self, parts: List[TargetPart]): """Append a list of potential targets/variants. Example: From 61330ee456e55bc057ca6a1d067fca140503819a Mon Sep 17 00:00:00 2001 From: Andrei Litvin Date: Tue, 11 Oct 2022 18:58:33 -0400 Subject: [PATCH 14/15] Fix build system unit tests (#23132) * Fix build system unit tests * Also fix iterable import (python 3.8 failure reported by Ian) --- scripts/build/build/target.py | 3 +-- scripts/build/testdata/all_targets_linux_x64.txt | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/scripts/build/build/target.py b/scripts/build/build/target.py index c90a603cddeb9e..b31de44d514b20 100644 --- a/scripts/build/build/target.py +++ b/scripts/build/build/target.py @@ -43,9 +43,8 @@ import os import re -from collections.abc import Iterable from dataclasses import dataclass -from typing import Any, Dict, List, Optional +from typing import Any, Dict, List, Iterable, Optional @dataclass(init=False) diff --git a/scripts/build/testdata/all_targets_linux_x64.txt b/scripts/build/testdata/all_targets_linux_x64.txt index f9f35c964e9400..74d46221b04d61 100644 --- a/scripts/build/testdata/all_targets_linux_x64.txt +++ b/scripts/build/testdata/all_targets_linux_x64.txt @@ -12,7 +12,7 @@ linux-{x64,arm64}-{rpc-console,all-clusters,all-clusters-minimal,chip-tool,therm linux-x64-efr32-test-runner[-clang] imx-{chip-tool,lighting-app,thermostat,all-clusters-app,all-clusters-minimal-app,ota-provider-app}[-release] infineon-psoc6-{lock,light,all-clusters,all-clusters-minimal}[-ota][-updateimage] -k32w-{light,shell,lock,contact}[-no-ota][-low-power][-nologs] +k32w-{light,shell,lock,contact}[-se05x][-no-ble][-no-ota][-low-power][-nologs] mbed-cy8cproto_062_4343w-{lock,light,all-clusters,all-clusters-minimal,pigweed,shell}[-release][-develop][-debug] mw320-all-clusters-app nrf-{nrf5340dk,nrf52840dk,nrf52840dongle}-{all-clusters,all-clusters-minimal,lock,light,shell,pump,pump-controller}[-rpc] From c46da7c6bcc7f46e12bd1b4569702c14670d4abe Mon Sep 17 00:00:00 2001 From: Tennessee Carmel-Veilleux Date: Tue, 11 Oct 2022 22:36:37 -0400 Subject: [PATCH 15/15] Introduce a CHIP_ERROR table (#23131) * Introduce a CHIP_ERROR table - Constantly looking-up the code to find CHIP_ERROR values (especially the ones with embedded errors outside of 0x00.0xFF range) is painstaking. This PR: - Adds a script to generate a list of CHIP_ERROR errors codes in decimal and hex. - Generated the `docs/ERROR_CODES.md` file Testing done: - Audited the output visually - No functional change to SDK * Restyle --- docs/ERROR_CODES.md | 349 +++++++++++++++++++++++++++++++++++++++++ scripts/error_table.py | 151 ++++++++++++++++++ 2 files changed, 500 insertions(+) create mode 100644 docs/ERROR_CODES.md create mode 100644 scripts/error_table.py diff --git a/docs/ERROR_CODES.md b/docs/ERROR_CODES.md new file mode 100644 index 00000000000000..7415d292ce1e26 --- /dev/null +++ b/docs/ERROR_CODES.md @@ -0,0 +1,349 @@ +# Matter SDK `CHIP_ERROR` enums values + +This file was **AUTOMATICALLY** generated by +`python scripts/error_table.py > docs/ERROR_CODES.md`. DO NOT EDIT BY HAND! + +## Table of contents + +- [SDK Core errors: range `0x000..0x0FF`](#sdk-core-errors) +- [SDK Inet Layer errors: range `0x100..0x1FF`](#sdk-inet-layer-errors) +- [SDK Device Layer errors: range `0x200..0x2FF`](#sdk-device-layer-errors) +- [ASN.1 Layer errors: range `0x300..0x3FF`](#asn-1-layer-errors) +- [BLE Layer errors: range `0x400..0x4FF`](#ble-layer-errors) +- [IM Global errors errors: range `0x500..0x5FF`](#im-global-errors-errors) + +## SDK Core errors + +| Decimal | Hex | Name | Description | +| ------- | ---- | ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0 | 0x00 | `CHIP_NO_ERROR` | This defines the CHIP error code for success or no error | +| 1 | 0x01 | `CHIP_ERROR_SENDING_BLOCKED` | A message exceeds the sent limit | +| 2 | 0x02 | `CHIP_ERROR_CONNECTION_ABORTED` | A connection has been aborted | +| 3 | 0x03 | `CHIP_ERROR_INCORRECT_STATE` | An unexpected state was encountered | +| 4 | 0x04 | `CHIP_ERROR_MESSAGE_TOO_LONG` | A message is too long | +| 5 | 0x05 | `CHIP_ERROR_UNSUPPORTED_EXCHANGE_VERSION` | An exchange version is not supported | +| 6 | 0x06 | `CHIP_ERROR_TOO_MANY_UNSOLICITED_MESSAGE_HANDLERS` | The attempt to register an unsolicited message handler failed because the unsolicited message handler pool is full | +| 7 | 0x07 | `CHIP_ERROR_NO_UNSOLICITED_MESSAGE_HANDLER` | The attempt to unregister an unsolicited message handler failed because the target handler was not found in the unsolicited message handler pool | +| 8 | 0x08 | `CHIP_ERROR_NO_CONNECTION_HANDLER` | No callback has been registered for handling a connection | +| 9 | 0x09 | `CHIP_ERROR_TOO_MANY_PEER_NODES` | The number of peer nodes exceeds the maximum limit of a local node | +| 10 | 0x0A | `CHIP_ERROR_SENTINEL` | For use locally to mark conditions such as value found or end of iteration | +| 11 | 0x0B | `CHIP_ERROR_NO_MEMORY` | The attempt to allocate a buffer or object failed due to a lack of memory | +| 12 | 0x0C | `CHIP_ERROR_NO_MESSAGE_HANDLER` | No callback has been registered for handling a message | +| 13 | 0x0D | `CHIP_ERROR_MESSAGE_INCOMPLETE` | A message is incomplete | +| 14 | 0x0E | `CHIP_ERROR_DATA_NOT_ALIGNED` | The data is not aligned | +| 15 | 0x0F | `CHIP_ERROR_UNKNOWN_KEY_TYPE` | The encryption key type is unknown | +| 16 | 0x10 | `CHIP_ERROR_KEY_NOT_FOUND` | The encryption key is not found | +| 17 | 0x11 | `CHIP_ERROR_WRONG_ENCRYPTION_TYPE` | The encryption type is incorrect for the specified key | +| 18 | 0x12 | `CHIP_ERROR_TOO_MANY_KEYS` | The attempt to allocate a key failed because the number of active keys exceeds the maximum limit | +| 19 | 0x13 | `CHIP_ERROR_INTEGRITY_CHECK_FAILED` | The integrity check in the message does not match the expected integrity check | +| 20 | 0x14 | `CHIP_ERROR_INVALID_SIGNATURE` | Invalid signature | +| 21 | 0x15 | `CHIP_ERROR_UNSUPPORTED_MESSAGE_VERSION` | A message version is unsupported | +| 22 | 0x16 | `CHIP_ERROR_UNSUPPORTED_ENCRYPTION_TYPE` | An encryption type is unsupported | +| 23 | 0x17 | `CHIP_ERROR_UNSUPPORTED_SIGNATURE_TYPE` | A signature type is unsupported | +| 24 | 0x18 | `CHIP_ERROR_INVALID_MESSAGE_LENGTH` | A message length is invalid | +| 25 | 0x19 | `CHIP_ERROR_BUFFER_TOO_SMALL` | A buffer is too small | +| 26 | 0x1A | `CHIP_ERROR_DUPLICATE_KEY_ID` | A key id is duplicate | +| 27 | 0x1B | `CHIP_ERROR_WRONG_KEY_TYPE` | A key type does not match the expected key type | +| 28 | 0x1C | `CHIP_ERROR_WELL_UNINITIALIZED` | A requested object is uninitialized | +| 29 | 0x1D | `CHIP_ERROR_WELL_EMPTY` | A requested object is empty | +| 30 | 0x1E | `CHIP_ERROR_INVALID_STRING_LENGTH` | A string length is invalid | +| 31 | 0x1F | `CHIP_ERROR_INVALID_LIST_LENGTH` | A list length is invalid | +| 32 | 0x20 | `CHIP_ERROR_INVALID_INTEGRITY_TYPE` | An integrity type is invalid | +| 33 | 0x21 | `CHIP_ERROR_END_OF_TLV` | The end of a TLV encoding, or the end of a TLV container element has been reached | +| 34 | 0x22 | `CHIP_ERROR_TLV_UNDERRUN` | The TLV encoding ended prematurely | +| 35 | 0x23 | `CHIP_ERROR_INVALID_TLV_ELEMENT` | A TLV element is invalid | +| 36 | 0x24 | `CHIP_ERROR_INVALID_TLV_TAG` | A TLV tag is invalid | +| 37 | 0x25 | `CHIP_ERROR_UNKNOWN_IMPLICIT_TLV_TAG` | An implicitly encoded TLV tag was encountered, but an implicit profile id has not been defined | +| 38 | 0x26 | `CHIP_ERROR_WRONG_TLV_TYPE` | A TLV type is wrong | +| 39 | 0x27 | `CHIP_ERROR_TLV_CONTAINER_OPEN` | A TLV container is unexpectedly open | +| 40 | 0x28 | `CHIP_ERROR_INVALID_TRANSFER_MODE` | A transfer mode is invalid | +| 41 | 0x29 | `CHIP_ERROR_INVALID_PROFILE_ID` | A profile id is invalid | +| 42 | 0x2A | `CHIP_ERROR_INVALID_MESSAGE_TYPE` | A message type is invalid | +| 43 | 0x2B | `CHIP_ERROR_UNEXPECTED_TLV_ELEMENT` | An unexpected TLV element was encountered | +| 44 | 0x2C | `CHIP_ERROR_STATUS_REPORT_RECEIVED` | A status report is received from a peer node | +| 45 | 0x2D | `CHIP_ERROR_NOT_IMPLEMENTED` | A requested function or feature is not implemented | +| 46 | 0x2E | `CHIP_ERROR_INVALID_ADDRESS` | An address is invalid | +| 47 | 0x2F | `CHIP_ERROR_INVALID_ARGUMENT` | An argument is invalid | +| 48 | 0x30 | `CHIP_ERROR_INVALID_PATH_LIST` | A TLV path list is invalid | +| 49 | 0x31 | `CHIP_ERROR_INVALID_DATA_LIST` | A TLV data list is invalid | +| 50 | 0x32 | `CHIP_ERROR_TIMEOUT` | A request timed out | +| 51 | 0x33 | `CHIP_ERROR_INVALID_DEVICE_DESCRIPTOR` | A device descriptor is invalid | +| 52 | 0x34 | `CHIP_ERROR_UNSUPPORTED_DEVICE_DESCRIPTOR_VERSION` | A device descriptor version is unsupported | +| 53 | 0x35 | `CHIP_ERROR_END_OF_INPUT` | An input ended | +| 54 | 0x36 | `CHIP_ERROR_RATE_LIMIT_EXCEEDED` | A rate limit is exceeded | +| 55 | 0x37 | `CHIP_ERROR_SECURITY_MANAGER_BUSY` | A security manager is busy | +| 56 | 0x38 | `CHIP_ERROR_INVALID_PASE_PARAMETER` | A PASE parameter is invalid | +| 57 | 0x39 | `CHIP_ERROR_PASE_SUPPORTS_ONLY_CONFIG1` | PASE supports only config1 | +| 58 | 0x3A | `CHIP_ERROR_KEY_CONFIRMATION_FAILED` | A key confirmation failed | +| 59 | 0x3B | `CHIP_ERROR_INVALID_USE_OF_SESSION_KEY` | A use of session key is invalid | +| 60 | 0x3C | `CHIP_ERROR_CONNECTION_CLOSED_UNEXPECTEDLY` | A connection is closed unexpectedly | +| 61 | 0x3D | `CHIP_ERROR_MISSING_TLV_ELEMENT` | A TLV element is missing | +| 62 | 0x3E | `CHIP_ERROR_RANDOM_DATA_UNAVAILABLE` | Secure random data is not available | +| 63 | 0x3F | `CHIP_ERROR_UNSUPPORTED_HOST_PORT_ELEMENT` | A type in host/port list is unsupported | +| 64 | 0x40 | `CHIP_ERROR_INVALID_HOST_SUFFIX_INDEX` | A suffix index in host/port list is invalid | +| 65 | 0x41 | `CHIP_ERROR_HOST_PORT_LIST_EMPTY` | A host/port list is empty | +| 66 | 0x42 | `CHIP_ERROR_UNSUPPORTED_AUTH_MODE` | An authentication mode is unsupported | +| 67 | 0x43 | `CHIP_ERROR_INVALID_SERVICE_EP` | A service endpoint is invalid | +| 68 | 0x44 | `CHIP_ERROR_INVALID_DIRECTORY_ENTRY_TYPE` | A directory entry type is unknown | +| 69 | 0x45 | `CHIP_ERROR_FORCED_RESET` | A service manager is forced to reset | +| 70 | 0x46 | `CHIP_ERROR_NO_ENDPOINT` | No endpoint is available | +| 71 | 0x47 | `CHIP_ERROR_INVALID_DESTINATION_NODE_ID` | A destination node id is invalid | +| 72 | 0x48 | `CHIP_ERROR_NOT_CONNECTED` | The operation cannot be performed because the underlying object is not connected | +| 73 | 0x49 | `CHIP_ERROR_NO_SW_UPDATE_AVAILABLE` | No software update is available | +| 74 | 0x4A | `CHIP_ERROR_CA_CERT_NOT_FOUND` | CA certificate is not found | +| 75 | 0x4B | `CHIP_ERROR_CERT_PATH_LEN_CONSTRAINT_EXCEEDED` | A certificate path length exceeds the constraint | +| 76 | 0x4C | `CHIP_ERROR_CERT_PATH_TOO_LONG` | A certificate path is too long | +| 77 | 0x4D | `CHIP_ERROR_CERT_USAGE_NOT_ALLOWED` | A requested certificate usage is not allowed | +| 78 | 0x4E | `CHIP_ERROR_CERT_EXPIRED` | A certificate expired | +| 79 | 0x4F | `CHIP_ERROR_CERT_NOT_VALID_YET` | A certificate is not valid yet | +| 80 | 0x50 | `CHIP_ERROR_UNSUPPORTED_CERT_FORMAT` | A certificate format is unsupported | +| 81 | 0x51 | `CHIP_ERROR_UNSUPPORTED_ELLIPTIC_CURVE` | An elliptic curve is unsupported | +| 82 | 0x52 | `CHIP_ERROR_CERT_NOT_USED` | A certificate was not used during the chain validation | +| 83 | 0x53 | `CHIP_ERROR_CERT_NOT_FOUND` | A certificate is not found | +| 84 | 0x54 | `CHIP_ERROR_INVALID_CASE_PARAMETER` | A CASE parameter is invalid | +| 85 | 0x55 | `CHIP_ERROR_UNSUPPORTED_CASE_CONFIGURATION` | A CASE configuration is unsupported | +| 86 | 0x56 | `CHIP_ERROR_CERT_LOAD_FAILED` | A certificate load failed | +| 87 | 0x57 | `CHIP_ERROR_CERT_NOT_TRUSTED` | A certificate is not trusted | +| 88 | 0x58 | `CHIP_ERROR_INVALID_ACCESS_TOKEN` | An access token is invalid | +| 89 | 0x59 | `CHIP_ERROR_WRONG_CERT_DN` | A certificate subject/issuer distinguished name is wrong | +| 90 | 0x5A | `CHIP_ERROR_INVALID_PROVISIONING_BUNDLE` | A provisioning bundle is invalid | +| 91 | 0x5B | `CHIP_ERROR_PROVISIONING_BUNDLE_DECRYPTION_ERROR` | A provision bundle encountered a decryption error | +| 92 | 0x5C | `CHIP_ERROR_WRONG_NODE_ID` | A node id is wrong | +| 93 | 0x5D | `CHIP_ERROR_CONN_ACCEPTED_ON_WRONG_PORT` | A connection is accepted on a wrong port | +| 94 | 0x5E | `CHIP_ERROR_CALLBACK_REPLACED` | An application callback has been replaced | +| 95 | 0x5F | `CHIP_ERROR_NO_CASE_AUTH_DELEGATE` | No CASE authentication delegate is set | +| 96 | 0x60 | `CHIP_ERROR_DEVICE_LOCATE_TIMEOUT` | The attempt to locate device timed out | +| 97 | 0x61 | `CHIP_ERROR_DEVICE_CONNECT_TIMEOUT` | The attempt to connect device timed out | +| 98 | 0x62 | `CHIP_ERROR_DEVICE_AUTH_TIMEOUT` | The attempt to authenticate device timed out | +| 99 | 0x63 | `CHIP_ERROR_MESSAGE_NOT_ACKNOWLEDGED` | A message is not acknowledged after max retries | +| 100 | 0x64 | `CHIP_ERROR_RETRANS_TABLE_FULL` | A retransmission table is already full | +| 101 | 0x65 | `CHIP_ERROR_INVALID_ACK_MESSAGE_COUNTER` | An acknowledgment id is invalid | +| 102 | 0x66 | `CHIP_ERROR_SEND_THROTTLED` | A send is throttled | +| 103 | 0x67 | `CHIP_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE` | A message version is not supported by the current exchange context | +| 104 | 0x68 | `CHIP_ERROR_TRANSACTION_CANCELED` | A transaction is cancelled | +| 105 | 0x69 | `CHIP_ERROR_LISTENER_ALREADY_STARTED` | A listener has already started | +| 106 | 0x6A | `CHIP_ERROR_LISTENER_ALREADY_STOPPED` | A listener has already stopped | +| 107 | 0x6B | `CHIP_ERROR_INVALID_SUBSCRIPTION` | A message was received as part of a subscription exchange that has a mis-matching subscription id | +| 108 | 0x6C | `CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE` | A CHIP feature is unsupported | +| 109 | 0x6D | `CHIP_ERROR_PASE_RECONFIGURE_REQUIRED` | PASE is required to reconfigure | +| 110 | 0x6E | `CHIP_ERROR_INVALID_PASE_CONFIGURATION` | A PASE configuration is invalid | +| 111 | 0x6F | `CHIP_ERROR_NO_COMMON_PASE_CONFIGURATIONS` | No PASE configuration is in common | +| 112 | 0x70 | `CHIP_ERROR_UNSOLICITED_MSG_NO_ORIGINATOR` | An unsolicited message with the originator bit clear | +| 113 | 0x71 | `CHIP_ERROR_INVALID_FABRIC_INDEX` | A fabric index is invalid | +| 114 | 0x72 | `CHIP_ERROR_TOO_MANY_CONNECTIONS` | The attempt to allocate a connection object failed because too many connections exist | +| 115 | 0x73 | `CHIP_ERROR_SHUT_DOWN` | The operation cancelled because a shut down was initiated | +| 116 | 0x74 | `CHIP_ERROR_CANCELLED` | The operation has been cancelled, generally by calling a cancel/abort request | +| 117 | 0x75 | `CHIP_ERROR_DRBG_ENTROPY_SOURCE_FAILED` | DRBG entropy source failed to generate entropy data | +| 118 | 0x76 | `CHIP_ERROR_TLV_TAG_NOT_FOUND` | A specified TLV tag was not found | +| 119 | 0x77 | `CHIP_ERROR_MISSING_SECURE_SESSION` | A secure session is needed to do work, but is missing/is not present | +| 120 | 0x78 | `CHIP_ERROR_INVALID_ADMIN_SUBJECT` | The CaseAdminSubject field is not valid in AddNOC command | +| 121 | 0x79 | `CHIP_ERROR_INSUFFICIENT_PRIVILEGE` | Required privilege was insufficient during an operation | +| 122 | 0x7A | `CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_REPORT_IB` | The Attribute Report IB is malformed: it does not contain the required elements | +| 123 | 0x7B | `CHIP_ERROR_IM_MALFORMED_EVENT_STATUS_IB` | The Event Status IB is malformed: it does not contain the required elements | +| 124 | 0x7C | `CHIP_ERROR_IM_MALFORMED_STATUS_RESPONSE_MESSAGE` | The Status Response Message is malformed: it does not contain the required elements | +| 125 | 0x7D | `CHIP_ERROR_MESSAGE_COUNTER_EXHAUSTED` | The message counter of the session is exhausted, the session should be closed | +| 126 | 0x7E | `CHIP_ERROR_FABRIC_EXISTS` | The fabric with the given fabric id and root public key already exists | +| 127 | 0x7F | `CHIP_ERROR_KEY_NOT_FOUND_FROM_PEER` | The encryption key is not found error received from a peer node | +| 128 | 0x80 | `CHIP_ERROR_WRONG_ENCRYPTION_TYPE_FROM_PEER` | The wrong encryption type error received from a peer node | +| 129 | 0x81 | `CHIP_ERROR_UNKNOWN_KEY_TYPE_FROM_PEER` | The unknown key type error received from a peer node | +| 130 | 0x82 | `CHIP_ERROR_INVALID_USE_OF_SESSION_KEY_FROM_PEER` | The invalid use of session key error received from a peer node | +| 131 | 0x83 | `CHIP_ERROR_UNSUPPORTED_ENCRYPTION_TYPE_FROM_PEER` | An unsupported encryption type error received from a peer node | +| 132 | 0x84 | `CHIP_ERROR_INTERNAL_KEY_ERROR_FROM_PEER` | The internal key error received from a peer node | +| 133 | 0x85 | `CHIP_ERROR_INVALID_KEY_ID` | A key id is invalid | +| 134 | 0x86 | `CHIP_ERROR_INVALID_TIME` | Time has invalid value | +| 135 | 0x87 | `CHIP_ERROR_LOCKING_FAILURE` | Failure to acquire or release an OS provided mutex | +| 136 | 0x88 | `CHIP_ERROR_UNSUPPORTED_PASSCODE_CONFIG` | A passcode encryption configuration is unsupported | +| 137 | 0x89 | `CHIP_ERROR_PASSCODE_AUTHENTICATION_FAILED` | The CHIP passcode authentication failed | +| 138 | 0x8A | `CHIP_ERROR_PASSCODE_FINGERPRINT_FAILED` | The CHIP passcode fingerprint failed | +| 139 | 0x8B | `CHIP_ERROR_SERIALIZATION_ELEMENT_NULL` | The element of the struct is null | +| 140 | 0x8C | `CHIP_ERROR_WRONG_CERT_SIGNATURE_ALGORITHM` | The certificate was not signed using the required signature algorithm | +| 141 | 0x8D | `CHIP_ERROR_WRONG_CHIP_SIGNATURE_ALGORITHM` | The CHIP signature was not signed using the required signature algorithm | +| 142 | 0x8E | `CHIP_ERROR_SCHEMA_MISMATCH` | A mismatch in schema was encountered | +| 143 | 0x8F | `CHIP_ERROR_INVALID_INTEGER_VALUE` | An integer does not have the kind of value we expect | +| 144 | 0x90 | `CHIP_ERROR_CASE_RECONFIG_REQUIRED` | CASE is required to reconfigure | +| 145 | 0x91 | `CHIP_ERROR_TOO_MANY_CASE_RECONFIGURATIONS` | Too many CASE reconfigurations were received | +| 146 | 0x92 | `CHIP_ERROR_BAD_REQUEST` | The request cannot be processed or fulfilled | +| 147 | 0x93 | `CHIP_ERROR_INVALID_MESSAGE_FLAG` | One or more message flags have invalid value | +| 148 | 0x94 | `CHIP_ERROR_KEY_EXPORT_RECONFIGURE_REQUIRED` | Key export protocol required to reconfigure | +| 149 | 0x95 | `CHIP_ERROR_INVALID_KEY_EXPORT_CONFIGURATION` | A key export protocol configuration is invalid | +| 150 | 0x96 | `CHIP_ERROR_NO_COMMON_KEY_EXPORT_CONFIGURATIONS` | No key export protocol configuration is in common | +| 151 | 0x97 | `CHIP_ERROR_NO_KEY_EXPORT_DELEGATE` | No key export delegate is set | +| 152 | 0x98 | `CHIP_ERROR_UNAUTHORIZED_KEY_EXPORT_REQUEST` | Unauthorized key export request | +| 153 | 0x99 | `CHIP_ERROR_UNAUTHORIZED_KEY_EXPORT_RESPONSE` | Unauthorized key export response | +| 154 | 0x9A | `CHIP_ERROR_EXPORTED_KEY_AUTHENTICATION_FAILED` | The CHIP exported encrypted key authentication failed | +| 155 | 0x9B | `CHIP_ERROR_TOO_MANY_SHARED_SESSION_END_NODES` | The number of shared secure sessions end nodes exceeds the maximum limit | +| 156 | 0x9C | `CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_DATA_IB` | The Attribute Data IB is malformed: it does not contain the required elements | +| 157 | 0x9D | `CHIP_ERROR_WRONG_CERT_TYPE` | The presented certificate was of the wrong type | +| 158 | 0x9E | `CHIP_ERROR_DEFAULT_EVENT_HANDLER_NOT_CALLED` | The application's event handler failed to call the default event handler function when presented with an unknown event | +| 159 | 0x9F | `CHIP_ERROR_PERSISTED_STORAGE_FAILED` | Persisted storage memory read/write failure | +| 160 | 0xA0 | `CHIP_ERROR_PERSISTED_STORAGE_VALUE_NOT_FOUND` | The specific value is not found in the persisted storage | +| 161 | 0xA1 | `CHIP_ERROR_IM_FABRIC_DELETED` | The fabric is deleted, and the corresponding IM resources are released | +| 162 | 0xA2 | `CHIP_ERROR_PROFILE_STRING_CONTEXT_NOT_REGISTERED` | The specified profile string support context is not registered | +| 163 | 0xA3 | `CHIP_ERROR_INCOMPATIBLE_SCHEMA_VERSION` | Encountered a mismatch in compatibility wrt to IDL schema version | +| 165 | 0xA5 | `CHIP_ERROR_ACCESS_DENIED` | The CHIP message is not granted access for further processing | +| 166 | 0xA6 | `CHIP_ERROR_UNKNOWN_RESOURCE_ID` | Unknown resource ID | +| 167 | 0xA7 | `CHIP_ERROR_VERSION_MISMATCH` | The conditional update of a trait instance path has failed because the local changes are based on an obsolete version of the data | +| 168 | 0xA8 | `CHIP_ERROR_UNSUPPORTED_THREAD_NETWORK_CREATE` | Device doesn't support standalone Thread network creation On some legacy devices new Thread network can only be created together with CHIP Fabric using CrateFabric() message | +| 169 | 0xA9 | `CHIP_ERROR_INCONSISTENT_CONDITIONALITY` | A TraitPath was declared updated with a conditionality that does not match that of other TraitPaths already updated in the same Trait Instance | +| 170 | 0xAA | `CHIP_ERROR_LOCAL_DATA_INCONSISTENT` | The local data does not match any known version of the Trait Instance and cannot support the operation requested | +| 171 | 0xAB | `CHIP_ERROR_EVENT_ID_FOUND` | Event ID matching the criteria was found | +| 172 | 0xAC | `CHIP_ERROR_INTERNAL` | Internal error | +| 173 | 0xAD | `CHIP_ERROR_OPEN_FAILED` | Open file failed | +| 174 | 0xAE | `CHIP_ERROR_READ_FAILED` | Read from file failed | +| 175 | 0xAF | `CHIP_ERROR_WRITE_FAILED` | Write to file failed | +| 176 | 0xB0 | `CHIP_ERROR_DECODE_FAILED` | Decoding failed | +| 177 | 0xB1 | `CHIP_ERROR_SESSION_KEY_SUSPENDED` | Use of the identified session key is suspended | +| 178 | 0xB2 | `CHIP_ERROR_UNSUPPORTED_WIRELESS_REGULATORY_DOMAIN` | The specified wireless regulatory domain is unsupported | +| 179 | 0xB3 | `CHIP_ERROR_UNSUPPORTED_WIRELESS_OPERATING_LOCATION` | The specified wireless operating location is unsupported | +| 180 | 0xB4 | `CHIP_ERROR_MDNS_COLLISION` | The registered service name has collision on the LAN | +| 181 | 0xB5 | `CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB` | The Attribute path IB is malformed: it does not contain the required path | +| 182 | 0xB6 | `CHIP_ERROR_IM_MALFORMED_EVENT_PATH_IB` | The Event Path IB is malformed: it does not contain the required elements | +| 183 | 0xB7 | `CHIP_ERROR_IM_MALFORMED_COMMAND_PATH_IB` | The Command Path IB is malformed: it does not contain the required elements | +| 184 | 0xB8 | `CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_STATUS_IB` | The Attribute Status IB is malformed: it does not contain the required elements | +| 185 | 0xB9 | `CHIP_ERROR_IM_MALFORMED_COMMAND_DATA_IB` | The Command Data IB is malformed: it does not contain the required elements | +| 186 | 0xBA | `CHIP_ERROR_IM_MALFORMED_EVENT_DATA_IB` | The Event Data IB is malformed: it does not contain the required elements | +| 187 | 0xBB | `CHIP_ERROR_IM_MALFORMED_STATUS_IB` | The Attribute Data IB is malformed: it does not contain the required elements | +| 188 | 0xBC | `CHIP_ERROR_PEER_NODE_NOT_FOUND` | Unable to find the peer node | +| 189 | 0xBD | `CHIP_ERROR_HSM` | Error in Hardware security module Used for software fallback option | +| 190 | 0xBE | `CHIP_ERROR_INTERMEDIATE_CA_NOT_REQUIRED` | The commissioner doesn't require an intermediate CA to sign the operational certificates | +| 191 | 0xBF | `CHIP_ERROR_REAL_TIME_NOT_SYNCED` | The system's real time clock is not synchronized to an accurate time source | +| 192 | 0xC0 | `CHIP_ERROR_UNEXPECTED_EVENT` | An unexpected event was encountered | +| 193 | 0xC1 | `CHIP_ERROR_ENDPOINT_POOL_FULL` | No endpoint pool entry is available | +| 194 | 0xC2 | `CHIP_ERROR_INBOUND_MESSAGE_TOO_BIG` | More inbound message data is pending than available buffer space available to copy it | +| 195 | 0xC3 | `CHIP_ERROR_OUTBOUND_MESSAGE_TOO_BIG` | More outbound message data is pending than available buffer space available to copy it | +| 196 | 0xC4 | `CHIP_ERROR_DUPLICATE_MESSAGE_RECEIVED` | The received message is a duplicate of a previously received message | +| 197 | 0xC5 | `CHIP_ERROR_INVALID_PUBLIC_KEY` | The received public key doesn't match locally generated key | +| 198 | 0xC6 | `CHIP_ERROR_FABRIC_MISMATCH_ON_ICA` | The fabric ID in ICA certificate doesn't match the one in NOC | +| 199 | 0xC7 | `CHIP_ERROR_MESSAGE_COUNTER_OUT_OF_WINDOW` | The message counter of the received message is out of receiving window | +| 200 | 0xC8 | `CHIP_ERROR_REBOOT_SIGNAL_RECEIVED` | Termination signal is received | +| 201 | 0xC9 | `CHIP_ERROR_NO_SHARED_TRUSTED_ROOT` | The CASE session could not be established as peer's credentials do not have a common root of trust | +| 202 | 0xCA | `CHIP_ERROR_IM_STATUS_CODE_RECEIVED` | The CASE session could not be established as peer's credentials do not have a common root of trust | +| 203 | 0xCB | `CHIP_ERROR_IM_MALFORMED_COMMAND_STATUS_IB` | The Command Status IB is malformed: it does not contain the required elements | +| 204 | 0xCC | `CHIP_ERROR_IM_MALFORMED_INVOKE_RESPONSE_IB` | The Invoke Response IB is malformed: it does not contain the required elements | +| 205 | 0xCD | `CHIP_ERROR_IM_MALFORMED_INVOKE_REQUEST_MESSAGE` | The Invoke Request Message is malformed: it does not contain the required elements | +| 206 | 0xCE | `CHIP_ERROR_IM_MALFORMED_INVOKE_RESPONSE_MESSAGE` | The Invoke Response Message is malformed: it does not contain the required elements | +| 207 | 0xCF | `CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_REPORT_MESSAGE` | The Attribute Response Message is malformed: it does not contain the required elements | +| 208 | 0xD0 | `CHIP_ERROR_IM_MALFORMED_WRITE_REQUEST_MESSAGE` | The Write Request Message is malformed: it does not contain the required elements | +| 209 | 0xD1 | `CHIP_ERROR_IM_MALFORMED_EVENT_FILTER_IB` | The Event Filter IB is malformed: it does not contain the required elements | +| 210 | 0xD2 | `CHIP_ERROR_IM_MALFORMED_READ_REQUEST_MESSAGE` | The Read Request Message is malformed: it does not contain the required elements | +| 211 | 0xD3 | `CHIP_ERROR_IM_MALFORMED_SUBSCRIBE_REQUEST_MESSAGE` | The Subscribe Request Message is malformed: it does not contain the required elements | +| 212 | 0xD4 | `CHIP_ERROR_IM_MALFORMED_SUBSCRIBE_RESPONSE_MESSAGE` | The Subscribe Response Message is malformed: it does not contain the required elements | +| 213 | 0xD5 | `CHIP_ERROR_IM_MALFORMED_EVENT_REPORT_IB` | The Event Report IB is malformed: it does not contain the required elements | +| 214 | 0xD6 | `CHIP_ERROR_IM_MALFORMED_CLUSTER_PATH_IB` | The Cluster Path IB is malformed: it does not contain the required elements | +| 215 | 0xD7 | `CHIP_ERROR_IM_MALFORMED_DATA_VERSION_FILTER_IB` | The Data Version Filter IB is malformed: it does not contain the required elements | +| 216 | 0xD8 | `CHIP_ERROR_NOT_FOUND` | The item referenced in the function call was not found | +| 217 | 0xD9 | `CHIP_ERROR_IM_MALFORMED_TIMED_REQUEST_MESSAGE` | The Timed Request Message is malformed: it does not contain the required elements | +| 218 | 0xDA | `CHIP_ERROR_INVALID_FILE_IDENTIFIER` | The file identifier, encoded in the first few bytes of a processed file, has unexpected value | +| 219 | 0xDB | `CHIP_ERROR_BUSY` | The Resource is busy and cannot process the request Trying again might work | +| 220 | 0xDC | `CHIP_ERROR_MAX_RETRY_EXCEEDED` | The maximum retry limit has been exceeded | +| 221 | 0xDD | `CHIP_ERROR_PROVIDER_LIST_EXHAUSTED` | The provider list has been exhausted | +| 222 | 0xDE | `CHIP_ERROR_ANOTHER_COMMISSIONING_IN_PROGRESS` | The provider list has been exhausted | +| 223 | 0xDF | `CHIP_ERROR_INVALID_SCHEME_PREFIX` | The scheme field contains an invalid prefix | +| 224 | 0xE0 | `CHIP_ERROR_MISSING_URI_SEPARATOR` | The URI separator is missing | + +## SDK Inet Layer errors + +| Decimal | Hex | Name | Description | +| ------- | ----- | ----------------------------------------- | ------------------------------------------------------------------------------------------ | +| 257 | 0x101 | `INET_ERROR_WRONG_ADDRESS_TYPE` | The Internet Protocol (IP) address type or scope does not match the expected type or scope | +| 258 | 0x102 | `INET_ERROR_PEER_DISCONNECTED` | A remote connection peer disconnected | +| 265 | 0x109 | `INET_ERROR_HOST_NOT_FOUND` | A requested host name could not be resolved to an address | +| 266 | 0x10A | `INET_ERROR_DNS_TRY_AGAIN` | A name server returned a temporary failure indication; try again later | +| 267 | 0x10B | `INET_ERROR_DNS_NO_RECOVERY` | A name server returned an unrecoverable error | +| 269 | 0x10D | `INET_ERROR_WRONG_PROTOCOL_TYPE` | An incorrect or unexpected protocol type was encountered | +| 270 | 0x10E | `INET_ERROR_UNKNOWN_INTERFACE` | An unknown interface identifier was encountered | +| 272 | 0x110 | `INET_ERROR_ADDRESS_NOT_FOUND` | A requested address type, class, or scope cannot be found | +| 273 | 0x111 | `INET_ERROR_HOST_NAME_TOO_LONG` | A requested host name is too long | +| 274 | 0x112 | `INET_ERROR_INVALID_HOST_NAME` | A requested host name and port is invalid | +| 277 | 0x115 | `INET_ERROR_IDLE_TIMEOUT` | A TCP connection timed out due to inactivity | +| 279 | 0x117 | `INET_ERROR_INVALID_IPV6_PKT` | An IPv6 packet is invalid | +| 280 | 0x118 | `INET_ERROR_INTERFACE_INIT_FAILURE` | Failure to initialize an interface | +| 281 | 0x119 | `INET_ERROR_TCP_USER_TIMEOUT` | TCP Connection timed out waiting for acknowledgment for transmitted packet | +| 282 | 0x11A | `INET_ERROR_TCP_CONNECT_TIMEOUT` | TCP Connection timed out waiting for a successful connection or a report of an error | +| 283 | 0x11B | `INET_ERROR_INCOMPATIBLE_IP_ADDRESS_TYPE` | The supplied text-form IP address was not compatible with the requested IP address type | + +## SDK Device Layer errors + +| Decimal | Hex | Name | Description | +| ------- | ----- | ------------------------------------------- | ----------------------------------------------- | +| 513 | 0x201 | `CHIP_DEVICE_ERROR_CONFIG_NOT_FOUND` | The requested configuration value was not found | +| 514 | 0x202 | `CHIP_DEVICE_ERROR_NOT_SERVICE_PROVISIONED` | The device has not been service provisioned | +| 515 | 0x203 | `CHIP_DEVICE_ERROR_SOFTWARE_UPDATE_ABORTED` | The software update was aborted by application | +| 516 | 0x204 | `CHIP_DEVICE_ERROR_SOFTWARE_UPDATE_IGNORED` | The software update was ignored by application | + +## ASN.1 Layer errors + +| Decimal | Hex | Name | Description | +| ------- | ----- | --------------------------------- | ------------------------------------------------------------------------------------- | +| 768 | 0x300 | `ASN1_END` | An end of ASN1 container or stream condition occurred | +| 769 | 0x301 | `ASN1_ERROR_UNDERRUN` | The ASN1 encoding ended prematurely | +| 770 | 0x302 | `ASN1_ERROR_OVERFLOW` | The encoding exceeds the available space required to write it | +| 771 | 0x303 | `ASN1_ERROR_INVALID_STATE` | An unexpected or invalid state was encountered | +| 772 | 0x304 | `ASN1_ERROR_MAX_DEPTH_EXCEEDED` | The maximum number of container reading contexts was exceeded | +| 773 | 0x305 | `ASN1_ERROR_INVALID_ENCODING` | The ASN1 encoding is invalid | +| 774 | 0x306 | `ASN1_ERROR_UNSUPPORTED_ENCODING` | An unsupported encoding was requested or encountered | +| 775 | 0x307 | `ASN1_ERROR_TAG_OVERFLOW` | An encoded tag exceeds the available or allowed space required for it | +| 776 | 0x308 | `ASN1_ERROR_LENGTH_OVERFLOW` | An encoded length exceeds the available or allowed space required for it | +| 777 | 0x309 | `ASN1_ERROR_VALUE_OVERFLOW` | An encoded value exceeds the available or allowed space required for it | +| 778 | 0x30A | `ASN1_ERROR_UNKNOWN_OBJECT_ID` | A requested object identifier does not match the list of supported object identifiers | + +## BLE Layer errors + +| Decimal | Hex | Name | Description | +| ------- | ----- | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 1027 | 0x403 | `BLE_ERROR_NO_CONNECTION_RECEIVED_CALLBACK` | No callback was registered to receive a BLE Transport Protocol (BTP) connection | +| 1028 | 0x404 | `BLE_ERROR_CENTRAL_UNSUBSCRIBED` | A BLE central device unsubscribed from a peripheral device's BLE Transport Protocol (BTP) transmit characteristic | +| 1029 | 0x405 | `BLE_ERROR_GATT_SUBSCRIBE_FAILED` | A BLE central device failed to subscribe to a peripheral device's BLE Transport Protocol (BTP) transmit characteristic | +| 1030 | 0x406 | `BLE_ERROR_GATT_UNSUBSCRIBE_FAILED` | A BLE central device failed to unsubscribe from a peripheral device's BLE Transport Protocol (BTP) transmit characteristic | +| 1031 | 0x407 | `BLE_ERROR_GATT_WRITE_FAILED` | A General Attribute Profile (GATT) write operation failed | +| 1032 | 0x408 | `BLE_ERROR_GATT_INDICATE_FAILED` | A General Attribute Profile (GATT) indicate operation failed | +| 1035 | 0x40B | `BLE_ERROR_CHIPOBLE_PROTOCOL_ABORT` | A BLE Transport Protocol (BTP) error was encountered | +| 1036 | 0x40C | `BLE_ERROR_REMOTE_DEVICE_DISCONNECTED` | A remote BLE connection peer disconnected, either actively or due to the expiration of a BLE connection supervision timeout | +| 1037 | 0x40D | `BLE_ERROR_APP_CLOSED_CONNECTION` | The local application closed a BLE connection, and has informed BleLayer | +| 1039 | 0x40F | `BLE_ERROR_NOT_CHIP_DEVICE` | A BLE peripheral device did not expose the General Attribute Profile (GATT) service required by the Bluetooth Transport Protocol (BTP) | +| 1040 | 0x410 | `BLE_ERROR_INCOMPATIBLE_PROTOCOL_VERSIONS` | A remote device does not offer a compatible version of the Bluetooth Transport Protocol (BTP) | +| 1043 | 0x413 | `BLE_ERROR_INVALID_FRAGMENT_SIZE` | A remote device selected in invalid Bluetooth Transport Protocol (BTP) fragment size | +| 1044 | 0x414 | `BLE_ERROR_START_TIMER_FAILED` | A timer failed to start within BleLayer | +| 1045 | 0x415 | `BLE_ERROR_CONNECT_TIMED_OUT` | A remote BLE peripheral device's Bluetooth Transport Protocol (BTP) connect handshake response timed out | +| 1046 | 0x416 | `BLE_ERROR_RECEIVE_TIMED_OUT` | A remote BLE central device's Bluetooth Transport Protocol (BTP) connect handshake timed out | +| 1047 | 0x417 | `BLE_ERROR_INVALID_MESSAGE` | An invalid Bluetooth Transport Protocol (BTP) message was received | +| 1048 | 0x418 | `BLE_ERROR_FRAGMENT_ACK_TIMED_OUT` | Receipt of an expected Bluetooth Transport Protocol (BTP) fragment acknowledgement timed out | +| 1049 | 0x419 | `BLE_ERROR_KEEP_ALIVE_TIMED_OUT` | Receipt of an expected Bluetooth Transport Protocol (BTP) keep-alive fragment timed out | +| 1050 | 0x41A | `BLE_ERROR_NO_CONNECT_COMPLETE_CALLBACK` | No callback was registered to handle Bluetooth Transport Protocol (BTP) connect completion | +| 1051 | 0x41B | `BLE_ERROR_INVALID_ACK` | A Bluetooth Transport Protcol (BTP) fragment acknowledgement was invalid | +| 1052 | 0x41C | `BLE_ERROR_REASSEMBLER_MISSING_DATA` | A Bluetooth Transport Protocol (BTP) end-of-message fragment was received, but the total size of the received fragments is less than the indicated size of the original fragmented message | +| 1053 | 0x41D | `BLE_ERROR_INVALID_BTP_HEADER_FLAGS` | A set of Bluetooth Transport Protocol (BTP) header flags is invalid | +| 1054 | 0x41E | `BLE_ERROR_INVALID_BTP_SEQUENCE_NUMBER` | A Bluetooth Transport Protocol (BTP) fragment sequence number is invalid | +| 1055 | 0x41F | `BLE_ERROR_REASSEMBLER_INCORRECT_STATE` | The Bluetooth Transport Protocol (BTP) message reassembly engine encountered an unexpected state | + +## IM Global errors errors + +| Decimal | Hex | Name | Description | +| ------- | ----- | -------------------------- | ----------- | +| 1280 | 0x500 | `SUCCESS` | | +| 1281 | 0x501 | `FAILURE` | | +| 1405 | 0x57D | `INVALID_SUBSCRIPTION` | | +| 1406 | 0x57E | `UNSUPPORTED_ACCESS` | | +| 1407 | 0x57F | `UNSUPPORTED_ENDPOINT` | | +| 1408 | 0x580 | `INVALID_ACTION` | | +| 1409 | 0x581 | `UNSUPPORTED_COMMAND` | | +| 1413 | 0x585 | `INVALID_COMMAND` | | +| 1414 | 0x586 | `UNSUPPORTED_ATTRIBUTE` | | +| 1415 | 0x587 | `CONSTRAINT_ERROR` | | +| 1416 | 0x588 | `UNSUPPORTED_WRITE` | | +| 1417 | 0x589 | `RESOURCE_EXHAUSTED` | | +| 1419 | 0x58B | `NOT_FOUND` | | +| 1420 | 0x58C | `UNREPORTABLE_ATTRIBUTE` | | +| 1421 | 0x58D | `INVALID_DATA_TYPE` | | +| 1423 | 0x58F | `UNSUPPORTED_READ` | | +| 1426 | 0x592 | `DATA_VERSION_MISMATCH` | | +| 1428 | 0x594 | `TIMEOUT` | | +| 1436 | 0x59C | `BUSY` | | +| 1475 | 0x5C3 | `UNSUPPORTED_CLUSTER` | | +| 1477 | 0x5C5 | `NO_UPSTREAM_SUBSCRIPTION` | | +| 1478 | 0x5C6 | `NEEDS_TIMED_INTERACTION` | | +| 1479 | 0x5C7 | `UNSUPPORTED_EVENT` | | +| 1480 | 0x5C8 | `PATHS_EXHAUSTED` | | +| 1481 | 0x5C9 | `TIMED_REQUEST_MISMATCH` | | +| 1482 | 0x5CA | `FAILSAFE_REQUIRED` | | +| 1520 | 0x5F0 | `WRITE_IGNORED` | | diff --git a/scripts/error_table.py b/scripts/error_table.py new file mode 100644 index 00000000000000..5bd1e7a1832acd --- /dev/null +++ b/scripts/error_table.py @@ -0,0 +1,151 @@ +#!/usr/bin/env python + +# +# Copyright (c) 2022 Project CHIP Authors +# All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# +# Execute as `python scripts/error_table.py > docs/ERROR_CODES.md` from root of repos +# +# This script uses heuristics scraping of the headers to generate nice tables +# + +import re +from dataclasses import dataclass +from enum import IntEnum +from pathlib import Path +from operator import attrgetter + + +@dataclass +class ErrorCode: + code: int + name: str + description: str + + +@dataclass +class ErrorDescriptor: + section: str + code_range: int + # `macro_regex` needs to have `code` and `name` named groups. + macro_regex: str + omit_description: bool = False + + +class CommentState(IntEnum): + WAIT_START_COMMENT = 0 + ACCUMULATE_COMMENT = 1 + + +class ErrorCodeLoader: + def __init__(self) -> None: + self.reset() + + def reset(self): + self._comment_state = CommentState.WAIT_START_COMMENT + self._last_comment = [] + self._error_codes: list[ErrorCode] = [] + + def _process_comment_extract(self, line): + if self._comment_state == CommentState.WAIT_START_COMMENT: + if "/**" in line: + self._last_comment = [] + self._comment_state = CommentState.ACCUMULATE_COMMENT + elif self._comment_state == CommentState.ACCUMULATE_COMMENT: + if "*/" in line: + self._comment_state = CommentState.WAIT_START_COMMENT + else: + self._last_comment.append(line) + + def _process_error_extract(self, descriptor: ErrorDescriptor, line: str): + match = re.search(descriptor.macro_regex, line) + if match is None: + return + + last_comment = "".join(self._last_comment).replace(" ", " ").replace(" ", " ").replace("*", "").replace(".", "") + last_comment = last_comment.split("@brief")[-1].strip() + + code = int(match.group("code"), 0) + code = descriptor.code_range | code + name = match.group("name") + + description = "" if descriptor.omit_description else last_comment + self._error_codes.append(ErrorCode(code=code, name=name, description=description)) + + def load_error_header(self, filename: Path, descriptor: ErrorDescriptor) -> list[ErrorCode]: + self.reset() + + lines = filename.read_text().split("\n") + for line in lines: + line = line.strip() + self._process_comment_extract(line) + self._process_error_extract(descriptor, line) + + return self._error_codes + + +def get_section_title(section: str) -> tuple[str, str]: + markdown_title = f"{section} errors" + anchor_name = f'#{markdown_title.lower().replace(" ","-").replace(".","-")}' + + return markdown_title, anchor_name + + +def dump_table(header_path: Path, descriptor: ErrorDescriptor): + loader = ErrorCodeLoader() + codes_for_section = loader.load_error_header(header_path, descriptor) + + markdown_title, _ = get_section_title(descriptor.section) + print(f"## {markdown_title}") + print() + print("| Decimal | Hex | Name | Description |") + print("| --- | --- | --- | --- |") + + for code in sorted(codes_for_section, key=attrgetter("code")): + print(f"| {code.code} | 0x{code.code:02X} | `{code.name}` | {code.description} |") + + print() + + +def main(): + descriptors = { + "src/lib/core/CHIPError.h": ErrorDescriptor(section="SDK Core", code_range=0x000, macro_regex=r"^#define\s+(?P[_A-Z0-9]+)\s+CHIP(_CORE)?_ERROR[(](?P(0x[a-fA-F0-9]+)|\d+)[)]"), + "src/inet/InetError.h": ErrorDescriptor(section="SDK Inet Layer", code_range=0x100, macro_regex=r"^#define\s+(?P[_A-Z0-9]+)\s+CHIP_INET_ERROR[(](?P(0x[a-fA-F0-9]+)|\d+)[)]"), + "src/include/platform/CHIPDeviceError.h": ErrorDescriptor(section="SDK Device Layer", code_range=0x200, macro_regex=r"^#define\s+(?P[_A-Z0-9]+)\s+CHIP_DEVICE_ERROR[(](?P(0x[a-fA-F0-9]+)|\d+)[)]"), + "src/lib/asn1/ASN1Error.h": ErrorDescriptor(section="ASN.1 Layer", code_range=0x300, macro_regex=r"^#define\s+(?P[_A-Z0-9]+)\s+CHIP_ASN1_ERROR[(](?P(0x[a-fA-F0-9]+)|\d+)[)]"), + "src/ble/BleError.h": ErrorDescriptor(section="BLE Layer", code_range=0x400, macro_regex=r"^#define\s+(?P[_A-Z0-9]+)\s+CHIP_BLE_ERROR[(](?P(0x[a-fA-F0-9]+)|\d+)[)]"), + "src/protocols/interaction_model/StatusCodeList.h": ErrorDescriptor(section="IM Global errors", code_range=0x500, macro_regex=r"^CHIP_IM_STATUS_CODE[(][A-Za-z0-9_]+\s*,\s*(?P[A-Z0-9_]+)\s*,\s*(?P(0x[a-fA-F0-9]+)|\d+)[)]", omit_description=True), + } + + print("# Matter SDK `CHIP_ERROR` enums values") + print() + print("This file was **AUTOMATICALLY** generated by `python scripts/error_table.py > docs/ERROR_CODES.md`.") + print("DO NOT EDIT BY HAND!") + print() + print("## Table of contents") + + for descriptor in descriptors.values(): + markdown_title, anchor_name = get_section_title(descriptor.section) + print(f"- [{markdown_title}: range `0x{descriptor.code_range:03X}..0x{descriptor.code_range | 0xFF:03X}`]({anchor_name})") + print() + + for filename, descriptor in descriptors.items(): + dump_table(Path(filename), descriptor) + + +if __name__ == "__main__": + main()