From 630fd1de0ab5c2857b335924aa7c110831bb46db Mon Sep 17 00:00:00 2001 From: Wang Qixiang <43193572+wqx6@users.noreply.github.com> Date: Fri, 9 Jul 2021 23:15:35 +0800 Subject: [PATCH] fix compilation errors for lock-app(enable pw rpc) and ipv6only-app with idf v4.3 (#8129) --- examples/ipv6only-app/esp32/CMakeLists.txt | 7 ++++++- examples/ipv6only-app/esp32/include/gdm_wifi_service.h | 4 ++-- examples/ipv6only-app/esp32/main/gdm_wifi_service.cpp | 2 +- examples/lock-app/esp32/CMakeLists.txt | 5 +++++ examples/lock-app/esp32/main/CMakeLists.txt | 1 + examples/lock-app/esp32/main/Kconfig.projbuild | 1 + 6 files changed, 16 insertions(+), 4 deletions(-) diff --git a/examples/ipv6only-app/esp32/CMakeLists.txt b/examples/ipv6only-app/esp32/CMakeLists.txt index b5f8d8ed6b0c4b..817f75e9e7da9f 100644 --- a/examples/ipv6only-app/esp32/CMakeLists.txt +++ b/examples/ipv6only-app/esp32/CMakeLists.txt @@ -24,7 +24,7 @@ set(EXTRA_COMPONENT_DIRS ) project(chip-ipv6only-app) -idf_build_set_property(CXX_COMPILE_OPTIONS "-std=c++17;-Os;-DLWIP_IPV6_SCOPES=0;-DCHIP_HAVE_CONFIG_H" APPEND) +idf_build_set_property(CXX_COMPILE_OPTIONS "-std=gnu++17;-Os;-DLWIP_IPV6_SCOPES=0;-DCHIP_HAVE_CONFIG_H" APPEND) idf_build_set_property(C_COMPILE_OPTIONS "-Os;-DLWIP_IPV6_SCOPES=0" APPEND) get_filename_component(CHIP_ROOT ./third_party/connectedhomeip REALPATH) @@ -36,3 +36,8 @@ pw_set_backend(pw_sys_io pw_sys_io.esp32) add_subdirectory(third_party/connectedhomeip/third_party/pigweed/repo) add_subdirectory(third_party/connectedhomeip/third_party/nanopb/repo) add_subdirectory(third_party/connectedhomeip/examples/platform/esp32/pw_sys_io) + +get_target_property(_target_cxx_flags pw_build.cpp17 INTERFACE_COMPILE_OPTIONS) +list(REMOVE_ITEM _target_cxx_flags $<$:-std=c++17>) +list(APPEND _target_cxx_flags $<$:-std=gnu++17>) +set_target_properties(pw_build.cpp17 PROPERTIES INTERFACE_COMPILE_OPTIONS "${_target_cxx_flags}") diff --git a/examples/ipv6only-app/esp32/include/gdm_wifi_service.h b/examples/ipv6only-app/esp32/include/gdm_wifi_service.h index 798ea1b556cac5..99bcd0dffcc165 100644 --- a/examples/ipv6only-app/esp32/include/gdm_wifi_service.h +++ b/examples/ipv6only-app/esp32/include/gdm_wifi_service.h @@ -58,7 +58,7 @@ class GDMWifiBase final : public generated::GDMWifiBase pw::Status GetSsid(ServerContext &, const chip_rpc_Empty & request, chip_rpc_Ssid & response) { wifi_config_t config; - PW_TRY(EspToPwStatus(esp_wifi_get_config(ESP_IF_WIFI_STA, &config))); + PW_TRY(EspToPwStatus(esp_wifi_get_config(WIFI_IF_STA, &config))); size_t size = std::min(sizeof(response.ssid.bytes), sizeof(config.sta.ssid)); memcpy(response.ssid.bytes, config.sta.ssid, sizeof(response.ssid.bytes)); response.ssid.size = size; @@ -77,7 +77,7 @@ class GDMWifiBase final : public generated::GDMWifiBase pw::Status GetMacAddress(ServerContext &, const chip_rpc_Empty & request, chip_rpc_MacAddress & response) { uint8_t mac[6]; - PW_TRY(EspToPwStatus(esp_wifi_get_mac(ESP_IF_WIFI_STA, mac))); + PW_TRY(EspToPwStatus(esp_wifi_get_mac(WIFI_IF_STA, mac))); sprintf(response.mac_address, "%02x:%02x:%02x:%02x:%02x:%02x", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); return pw::OkStatus(); } diff --git a/examples/ipv6only-app/esp32/main/gdm_wifi_service.cpp b/examples/ipv6only-app/esp32/main/gdm_wifi_service.cpp index 147d273bb36228..79e48541f2ee8b 100644 --- a/examples/ipv6only-app/esp32/main/gdm_wifi_service.cpp +++ b/examples/ipv6only-app/esp32/main/gdm_wifi_service.cpp @@ -241,7 +241,7 @@ pw::Status GDMWifiBase::Connect(ServerContext &, const chip_rpc_ConnectionData & std::min(sizeof(wifi_config.sta.password), static_cast(request.secret.size))); WifiConnectionEventHandler event_handler(esp_netif_); - PW_TRY(EspToPwStatus(esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config))); + PW_TRY(EspToPwStatus(esp_wifi_set_config(WIFI_IF_STA, &wifi_config))); esp_err_t err = esp_wifi_connect(); if (ESP_ERR_WIFI_SSID == err) diff --git a/examples/lock-app/esp32/CMakeLists.txt b/examples/lock-app/esp32/CMakeLists.txt index 16bf65433041a1..459d17a1ce2fed 100644 --- a/examples/lock-app/esp32/CMakeLists.txt +++ b/examples/lock-app/esp32/CMakeLists.txt @@ -42,4 +42,9 @@ pw_set_backend(pw_sys_io pw_sys_io.esp32) add_subdirectory(third_party/connectedhomeip/third_party/pigweed/repo) add_subdirectory(third_party/connectedhomeip/third_party/nanopb/repo) add_subdirectory(third_party/connectedhomeip/examples/platform/esp32/pw_sys_io) + +get_target_property(_target_cxx_flags pw_build.cpp17 INTERFACE_COMPILE_OPTIONS) +list(REMOVE_ITEM _target_cxx_flags $<$:-std=c++17>) +list(APPEND _target_cxx_flags $<$:-std=gnu++17>) +set_target_properties(pw_build.cpp17 PROPERTIES INTERFACE_COMPILE_OPTIONS "${_target_cxx_flags}") endif(CONFIG_ENABLE_PW_RPC) diff --git a/examples/lock-app/esp32/main/CMakeLists.txt b/examples/lock-app/esp32/main/CMakeLists.txt index 00654fb126393c..67c5523d071d0f 100644 --- a/examples/lock-app/esp32/main/CMakeLists.txt +++ b/examples/lock-app/esp32/main/CMakeLists.txt @@ -70,6 +70,7 @@ idf_component_register(INCLUDE_DIRS "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/on-off-server" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/operational-credentials-server" "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/general-commissioning-server" + "${CMAKE_SOURCE_DIR}/third_party/connectedhomeip/src/app/clusters/diagnostic-logs-server" PRIV_REQUIRES bt chip QRCode tft spidriver screen-framework) idf_component_get_property(chip_lib chip COMPONENT_LIB) diff --git a/examples/lock-app/esp32/main/Kconfig.projbuild b/examples/lock-app/esp32/main/Kconfig.projbuild index c38116f056963f..bedb74e299d5b4 100644 --- a/examples/lock-app/esp32/main/Kconfig.projbuild +++ b/examples/lock-app/esp32/main/Kconfig.projbuild @@ -64,6 +64,7 @@ menu "Demo" endmenu menu "PW RPC Debug channel" +depends on ENABLE_PW_RPC config EXAMPLE_UART_PORT_NUM int "UART port number" range 0 2 if IDF_TARGET_ESP32