From 35079402ff79cbeced2ae49a5cfbfcaf70505e48 Mon Sep 17 00:00:00 2001 From: rgoliver Date: Wed, 27 Oct 2021 11:53:18 -0400 Subject: [PATCH] Add ESP and NRF RPC versions to build_examples.sh (#11054) Adding: - m5stack-all-clusters-rpc - m5stack-all-clusters-rpc-ipv6-only - nrf5340-light-rpc - nrf52840-light-rpc --- .../esp32/sdkconfig_m5stack_rpc.defaults | 5 +- scripts/build/build/targets.py | 3 + scripts/build/builders/esp32.py | 3 +- .../testdata/all_targets_except_host.txt | 4 + .../build/testdata/build_all_except_host.txt | 90 +++++++++++++++---- 5 files changed, 85 insertions(+), 20 deletions(-) diff --git a/examples/all-clusters-app/esp32/sdkconfig_m5stack_rpc.defaults b/examples/all-clusters-app/esp32/sdkconfig_m5stack_rpc.defaults index 9400bd0866fc49..2da74647c0f5fc 100644 --- a/examples/all-clusters-app/esp32/sdkconfig_m5stack_rpc.defaults +++ b/examples/all-clusters-app/esp32/sdkconfig_m5stack_rpc.defaults @@ -53,4 +53,7 @@ CONFIG_EXAMPLE_UART_PORT_NUM=0 CONFIG_EXAMPLE_UART_BAUD_RATE=115200 CONFIG_EXAMPLE_UART_RXD=3 CONFIG_EXAMPLE_UART_TXD=1 -CONFIG_ENABLE_PW_RPC=y \ No newline at end of file +CONFIG_ENABLE_PW_RPC=y + +# Disable shell +CONFIG_ENABLE_CHIP_SHELL=n \ No newline at end of file diff --git a/scripts/build/build/targets.py b/scripts/build/build/targets.py index f0c1a9f6ad79a8..54021da23e3ce6 100644 --- a/scripts/build/build/targets.py +++ b/scripts/build/build/targets.py @@ -94,6 +94,8 @@ def Esp32Targets(): 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('c3devkit-all-clusters', board=Esp32Board.C3DevKit, app=Esp32App.ALL_CLUSTERS) devkitc = esp32_target.Extend('devkitc', board=Esp32Board.DevKitC) @@ -133,6 +135,7 @@ def NrfTargets(): for target in targets: yield target.Extend('lock', app=NrfApp.LOCK) yield target.Extend('light', app=NrfApp.LIGHT) + yield target.Extend('light-rpc', app=NrfApp.LIGHT, enable_rpcs=True) yield target.Extend('shell', app=NrfApp.SHELL) yield target.Extend('pump', app=NrfApp.PUMP) yield target.Extend('pump-controller', app=NrfApp.PUMP_CONTROLLER) diff --git a/scripts/build/builders/esp32.py b/scripts/build/builders/esp32.py index 752523f2db5fa8..51dfbcf55874a5 100644 --- a/scripts/build/builders/esp32.py +++ b/scripts/build/builders/esp32.py @@ -100,8 +100,9 @@ def __init__(self, self.enable_ipv4 = enable_ipv4 def _IdfEnvExecute(self, cmd, title=None): + # Run activate.sh after export.sh to ensure using the chip environment. self._Execute( - ['bash', '-c', 'source $IDF_PATH/export.sh; %s' % cmd], + ['bash', '-c', 'source $IDF_PATH/export.sh; source scripts/activate.sh; %s' % cmd], title=title) @property diff --git a/scripts/build/testdata/all_targets_except_host.txt b/scripts/build/testdata/all_targets_except_host.txt index 41a2a8edcf0626..6839ccb241218c 100644 --- a/scripts/build/testdata/all_targets_except_host.txt +++ b/scripts/build/testdata/all_targets_except_host.txt @@ -18,13 +18,17 @@ esp32-devkitc-shell esp32-devkitc-temperature-measurement esp32-m5stack-all-clusters esp32-m5stack-all-clusters-ipv6only +esp32-m5stack-all-clusters-rpc +esp32-m5stack-all-clusters-rpc-ipv6only infineon-p6-lock nrf-nrf52840-light +nrf-nrf52840-light-rpc nrf-nrf52840-lock nrf-nrf52840-pump nrf-nrf52840-pump-controller nrf-nrf52840-shell nrf-nrf5340-light +nrf-nrf5340-light-rpc nrf-nrf5340-lock nrf-nrf5340-pump nrf-nrf5340-pump-controller diff --git a/scripts/build/testdata/build_all_except_host.txt b/scripts/build/testdata/build_all_except_host.txt index b2514c7562a03f..9c1e998aa8f8ab 100644 --- a/scripts/build/testdata/build_all_except_host.txt +++ b/scripts/build/testdata/build_all_except_host.txt @@ -95,7 +95,7 @@ cp examples/all-clusters-app/esp32/sdkconfig_c3devkit.defaults {out}/esp32-c3dev rm -f examples/all-clusters-app/esp32/sdkconfig -bash -c 'source $IDF_PATH/export.sh; +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' @@ -106,7 +106,7 @@ cp examples/all-clusters-app/esp32/sdkconfig.defaults {out}/esp32-devkitc-all-cl rm -f examples/all-clusters-app/esp32/sdkconfig -bash -c 'source $IDF_PATH/export.sh; +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' @@ -119,7 +119,7 @@ rm -f examples/all-clusters-app/esp32/sdkconfig bash -c 'echo CONFIG_DISABLE_IPV4=y >>{out}/esp32-devkitc-all-clusters-ipv6only/sdkconfig.defaults' -bash -c 'source $IDF_PATH/export.sh; +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' @@ -130,7 +130,7 @@ cp examples/bridge-app/esp32/sdkconfig.defaults {out}/esp32-devkitc-bridge/sdkco rm -f examples/bridge-app/esp32/sdkconfig -bash -c 'source $IDF_PATH/export.sh; +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' @@ -141,7 +141,7 @@ cp examples/lock-app/esp32/sdkconfig.defaults {out}/esp32-devkitc-lock/sdkconfig rm -f examples/lock-app/esp32/sdkconfig -bash -c 'source $IDF_PATH/export.sh; +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' @@ -152,7 +152,7 @@ cp examples/shell/esp32/sdkconfig.defaults {out}/esp32-devkitc-shell/sdkconfig.d rm -f examples/shell/esp32/sdkconfig -bash -c 'source $IDF_PATH/export.sh; +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' @@ -163,7 +163,7 @@ cp examples/temperature-measurement-app/esp32/sdkconfig.defaults {out}/esp32-dev rm -f examples/temperature-measurement-app/esp32/sdkconfig -bash -c 'source $IDF_PATH/export.sh; +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' @@ -174,7 +174,7 @@ cp examples/all-clusters-app/esp32/sdkconfig_m5stack.defaults {out}/esp32-m5stac rm -f examples/all-clusters-app/esp32/sdkconfig -bash -c 'source $IDF_PATH/export.sh; +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' @@ -187,10 +187,34 @@ rm -f examples/all-clusters-app/esp32/sdkconfig bash -c 'echo CONFIG_DISABLE_IPV4=y >>{out}/esp32-m5stack-all-clusters-ipv6only/sdkconfig.defaults' -bash -c 'source $IDF_PATH/export.sh; +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-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 CONFIG_DISABLE_IPV4=y >>{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 infineon-p6-lock gn gen --check --fail-on-unused-args --root={root}/examples/lock-app/p6 '--args=p6_board="CY8CKIT-062S2-43012"' {out}/infineon-p6-lock @@ -199,6 +223,11 @@ bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; export GNUARMEMB_TOOLCHAIN_PATH="$PW_PIGWEED_CIPD_INSTALL_DIR"; west build --cmake-only -d {out}/nrf-nrf52840-light -b nrf52840dk_nrf52840 {root}/examples/lighting-app/nrfconnect' +# Generating nrf-nrf52840-light-rpc +bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; +export GNUARMEMB_TOOLCHAIN_PATH="$PW_PIGWEED_CIPD_INSTALL_DIR"; +west build --cmake-only -d {out}/nrf-nrf52840-light-rpc -b nrf52840dk_nrf52840 {root}/examples/lighting-app/nrfconnect -- -DOVERLAY_CONFIG=rpc.overlay' + # Generating nrf-nrf52840-lock bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; export GNUARMEMB_TOOLCHAIN_PATH="$PW_PIGWEED_CIPD_INSTALL_DIR"; @@ -224,6 +253,11 @@ bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; export GNUARMEMB_TOOLCHAIN_PATH="$PW_PIGWEED_CIPD_INSTALL_DIR"; west build --cmake-only -d {out}/nrf-nrf5340-light -b nrf5340dk_nrf5340_cpuapp {root}/examples/lighting-app/nrfconnect' +# Generating nrf-nrf5340-light-rpc +bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; +export GNUARMEMB_TOOLCHAIN_PATH="$PW_PIGWEED_CIPD_INSTALL_DIR"; +west build --cmake-only -d {out}/nrf-nrf5340-light-rpc -b nrf5340dk_nrf5340_cpuapp {root}/examples/lighting-app/nrfconnect -- -DOVERLAY_CONFIG=rpc.overlay' + # Generating nrf-nrf5340-lock bash -c 'source "$ZEPHYR_BASE/zephyr-env.sh"; export GNUARMEMB_TOOLCHAIN_PATH="$PW_PIGWEED_CIPD_INSTALL_DIR"; @@ -383,72 +417,89 @@ ninja -C {out}/efr32-brd4161a-window-covering rm -f examples/all-clusters-app/esp32/sdkconfig # Building esp32-c3devkit-all-clusters -bash -c 'source $IDF_PATH/export.sh; +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-app/esp32/sdkconfig # Building esp32-devkitc-all-clusters -bash -c 'source $IDF_PATH/export.sh; +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; +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/bridge-app/esp32/sdkconfig # Building esp32-devkitc-bridge -bash -c 'source $IDF_PATH/export.sh; +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/lock-app/esp32/sdkconfig # Building esp32-devkitc-lock -bash -c 'source $IDF_PATH/export.sh; +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/shell/esp32/sdkconfig # Building esp32-devkitc-shell -bash -c 'source $IDF_PATH/export.sh; +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; +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/all-clusters-app/esp32/sdkconfig # Building esp32-m5stack-all-clusters -bash -c 'source $IDF_PATH/export.sh; +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; +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-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' + # Building infineon-p6-lock ninja -C {out}/infineon-p6-lock # Building nrf-nrf52840-light ninja -C {out}/nrf-nrf52840-light +# Building nrf-nrf52840-light-rpc +ninja -C {out}/nrf-nrf52840-light-rpc + # Building nrf-nrf52840-lock ninja -C {out}/nrf-nrf52840-lock @@ -464,6 +515,9 @@ ninja -C {out}/nrf-nrf52840-shell # Building nrf-nrf5340-light ninja -C {out}/nrf-nrf5340-light +# Building nrf-nrf5340-light-rpc +ninja -C {out}/nrf-nrf5340-light-rpc + # Building nrf-nrf5340-lock ninja -C {out}/nrf-nrf5340-lock