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..a2603519e0ae95 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-no-ble-se05x \ + --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/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/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/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/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" 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); 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..b31de44d514b20 --- /dev/null +++ b/scripts/build/build/target.py @@ -0,0 +1,348 @@ +# 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 dataclasses import dataclass +from typing import Any, Dict, List, Iterable, 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..7916a1089d3b1f 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,498 @@ 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) -class AcceptAnyName: - def Accept(self, name: str): - return True + target.AppendFixedTargets([ + TargetPart(HostBoard.NATIVE.BoardName(), board=HostBoard.NATIVE), + ]) + target.AppendFixedTargets([ + TargetPart('efr32-test-runner', app=HostApp.EFR32_TEST_RUNNER) + ]) -class AcceptNameWithSubstrings: - def __init__(self, substr: List[str]): - self.substr = substr + target.AppendModifier('clang', use_clang=True) - 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 + return target -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 - +def BuildHostFakeTarget(): + target = BuildTarget(HostBoard.NATIVE.PlatformName(), HostBuilder) -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('fake', board=HostBoard.FAKE), + ]) + target.AppendFixedTargets([ + TargetPart('tests', app=HostApp.TESTS), + ]) -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]) + 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) - 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. - """ + return 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 WhitelistVariantNameForGlob(self, name): - """ - Whitelist the specified variant to be allowed for globbing. +def BuildHostTarget(): + native_board_name = HostBoard.NATIVE.BoardName() + cross_compile = (HostBoard.NATIVE.PlatformName() == 'linux') and (native_board_name != HostBoard.ARM64.BoardName()) - By default we do not want a 'build all' to select all variants, so - variants are generally glob-blacklisted. - """ - self.glob_whitelist.append(name) + target = BuildTarget(HostBoard.NATIVE.PlatformName(), HostBuilder) - def AppendVariant(self, **args): - """ - Add another variant to accepted variants. Arguments are construction - variants to BuildVariant. - - Example usage: - - builder.AppendVariant(name="ipv6only", enable_ipv4=False) - """ - self.variants.append(BuildVariant(**args)) - - def AllVariants(self): - """ - Yields a list of acceptable variants for the given targets. + board_parts = [ + TargetPart(native_board_name, board=HostBoard.NATIVE), + ] - Handles conflict resolution between build variants and globbing - whitelist targets. - """ - for target in self.targets: - yield target + 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), + ] - # skip variants that do not work for this target - ok_variants = [ - v for v in self.variants if v.validator.Accept(target.name)] + 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)') - # 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 + return target - if not AllRequirementsMet(subgroup): - continue - # Target ready to be created - no conflicts - variant_target = target.Clone() - for option in subgroup: - variant_target = variant_target.Extend( - option.name, **option.buildargs) +def BuildInfineonTarget(): + target = BuildTarget('infineon', InfineonBuilder) - # 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') + # board + target.AppendFixedTargets([ + TargetPart('psoc6', board=InfineonBoard.PSOC6BOARD) + ]) - yield variant_target + # 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), + ]) + + # modifiers + target.AppendModifier('ota', enable_ota_requestor=True) + target.AppendModifier('updateimage', update_image=True) + return target -def HostTargets(): - target = Target(HostBoard.NATIVE.PlatformName(), HostBuilder) - target_native = target.Extend(HostBoard.NATIVE.BoardName(), board=HostBoard.NATIVE) - - targets = [target_native] - # 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') - ] +def BuildAmebaTarget(): + target = BuildTarget('ameba', AmebaBuilder) + + # board + target.AppendFixedTargets([ + TargetPart('amebad', board=AmebaBoard.AMEBAD), + ]) - builder = VariantBuilder() + # 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), + ]) - 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)) + return target - # 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) - builder.WhitelistVariantNameForGlob('rpc') +def BuildK32WTarget(): + target = BuildTarget('k32w', K32WBuilder) - for target in builder.AllVariants(): - yield target + # 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), + ]) + 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) -def NrfTargets(): - target = Target('nrf', NrfConnectBuilder) + return target - yield target.Extend('native-posix-64-tests', board=NrfBoard.NATIVE_POSIX_64, app=NrfApp.UNIT_TESTS) - targets = [ - target.Extend('nrf5340dk', board=NrfBoard.NRF5340DK), - target.Extend('nrf52840dk', board=NrfBoard.NRF52840DK), - ] +def Buildcc13x2x7_26x2x7Target(): + target = BuildTarget('cc13x2x7_26x2x7', cc13x2x7_26x2x7Builder) - # 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), - ] + # 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), + ]) - 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..74d46221b04d61 --- /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}[-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] +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/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() 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 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/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/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 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[] = 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; 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 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; } } 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 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), //