espressif / esp-homekit-sdk

541 stars 98 forks source link

Unable to find components to build examples for ESP8266 #120

Open thenewwazoo opened 6 months ago

thenewwazoo commented 6 months ago

On macOS 14.2, after following the setup guide for ESP8266_RTOS_SDK, I can build the hello_world example correctly.

I have cloned the esp-homekit-sdk repo, and after entering the examples/fan directory and running make defconfig with no error, I see the following error running make:

Building partitions from /Users/bmatt/Development/esp/esp-homekit-sdk/examples/fan/partitions_hap.csv...
CC build/bootloader/main/bootloader_start.o
AR build/bootloader/main/libmain.a
... skip successful ...
LD build/bootloader/bootloader.elf
esptool.py v2.4.0
CC build/app_hap_setup_payload/app_hap_setup_payload.o
AR build/app_hap_setup_payload/libapp_hap_setup_payload.a
App "fan" version: bd236e7
CC build/app_update/esp_app_desc.o
CC build/app_update/esp_ota_ops.o
AR build/app_update/libapp_update.a
CC build/app_wifi/app_wifi.o
/Users/bmatt/Development/esp/esp-homekit-sdk/examples/common/app_wifi/app_wifi.c:61:10: fatal error: wifi_provisioning/scheme_ble.h: No such file or directory
 #include <wifi_provisioning/scheme_ble.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [app_wifi.o] Error 1
make: *** [component-app_wifi-build] Error 2

This file does not exist, but if I disable the CONFIG_ENABLE_UNIFIED_PROVISIONING setting using make menuconfig, it looks for

/Users/bmatt/Development/esp/esp-homekit-sdk/examples/common/app_wifi/app_wifi.c:44:10: fatal error: wifi_provisioning/manager.h: No such file or directory

which does exist:

$ find $IDF_PATH -name manager.h
/Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/wifi_provisioning/include/wifi_provisioning/manager.h

The command that should compile that file is:

xtensa-lx106-elf-gcc
 -std=gnu99
 -Og
 -ggdb
 -Wno-frame-address
 -ffunction-sections
 -fdata-sections
 -fstrict-volatile-bitfields
 -mlongcalls
 -nostdlib
 -Wall
 -Werror=all
 -Wno-error=unused-function
 -Wno-error=unused-but-set-variable
 -Wno-error=unused-variable
 -Wno-error=deprecated-declarations
 -Wextra
 -Wno-unused-parameter
 -Wno-sign-compare
 -Wno-old-style-declaration
 -DICACHE_FLASH
 -D__ESP_FILE__='"app_wifi.c"'
 -DAPP_OFFSET=0x20000
 -DAPP_SIZE=0x190000
 -DESP_PLATFORM
 -D IDF_VER=\"v3.4-92-g816bf9bc\"
 -MMD
 -MP  
 -D_GNU_SOURCE
 -DGCC_NOT_5_2_0=1
 -DMBEDTLS_CONFIG_FILE='"mbedtls/esp_config.h"'
 -DCONFIG_SSL_USING_MBEDTLS
 -I /Users/bmatt/Development/esp/esp-homekit-sdk/examples/common/app_wifi
 -I /Users/bmatt/Development/esp/esp-homekit-sdk/examples/common/app_hap_setup_payload
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/app_update/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/bootloader_support/include
 -I /Users/bmatt/Development/esp/esp-homekit-sdk/components/button/button/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/coap/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/console
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/esp-tls
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/esp-tls/private_include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/esp-wolfssl/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/esp8266/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/esp8266/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/esp_common/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/esp_event/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/esp_gdbstub/include
 -I /Users/bmatt/Development/esp/esp-homekit-sdk/components/homekit/esp_hap_apple_profiles/include
 -I /Users/bmatt/Development/esp/esp-homekit-sdk/components/homekit/esp_hap_core/include
 -I /Users/bmatt/Development/esp/esp-homekit-sdk/components/homekit/esp_hap_extras/include
 -I /Users/bmatt/Development/esp/esp-homekit-sdk/components/homekit/esp_hap_platform/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/esp_http_client/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/esp_http_server/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/esp_https_ota/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/esp_ringbuf/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/esp_ringbuf/include/freertos
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/fatfs/diskio
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/fatfs/vfs
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/fatfs/src
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/freemodbus/common/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/freertos/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/freertos/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/freertos/include/freertos
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/freertos/include/freertos/private
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/freertos/port/esp8266/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/freertos/port/esp8266/include/freertos
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/heap/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/heap/port/esp8266/include
 -I /Users/bmatt/Development/esp/esp-homekit-sdk/components/homekit/hkdf-sha/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/http_parser/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/jsmn/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/json/cJSON
 -I /Users/bmatt/Development/esp/esp-homekit-sdk/components/homekit/json_generator/upstream
 -I /Users/bmatt/Development/esp/esp-homekit-sdk/components/homekit/json_parser/upstream/include
 -I /Users/bmatt/Development/esp/esp-homekit-sdk/components/homekit/json_parser/upstream
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/libsodium/libsodium/src/libsodium/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/libsodium/port_include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/log/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/lwip/include/apps
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/lwip/include/apps/sntp
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/lwip/lwip/src/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/lwip/port/esp8266/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/lwip/port/esp8266/include/arch
 -I /Users/bmatt/Development/esp/esp-homekit-sdk/examples/fan/main/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/mbedtls/port/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/mbedtls/mbedtls/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/mbedtls/port/include/esp8266
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/mdns/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/mqtt/esp-mqtt/include
 -I /Users/bmatt/Development/esp/esp-homekit-sdk/components/homekit/mu_srp
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/newlib/platform_include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/nvs_flash/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/openssl/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/protobuf-c/protobuf-c
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/pthread/include
 -I /Users/bmatt/Development/esp/esp-homekit-sdk/examples/common/qrcode/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/spi_flash/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/spi_ram/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/spiffs/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/tcp_transport/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/tcpip_adapter/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/tcpip_adapter/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/vfs/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/wear_levelling/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/wpa_supplicant/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/wpa_supplicant/port/include
 -I /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/wpa_supplicant/include/esp_supplicant
 -I /Users/bmatt/Development/esp/esp-homekit-sdk/examples/fan/build/include 
 -I .
 -c /Users/bmatt/Development/esp/esp-homekit-sdk/examples/common/app_wifi/app_wifi.c
 -o app_wifi.o

which includes other components. Attempting to regenerate the Makefile using cmake also fails:

$ cmake -S .
-- Found Git: /opt/homebrew/bin/git (found version "2.41.0")
-- IDF_TARGET not set, using default target: esp8266
-- The C compiler identification is GNU 8.4.0
-- The CXX compiler identification is GNU 8.4.0
-- The ASM compiler identification is GNU
-- Found assembler: /Users/bmatt/Development/esp/xtensa-lx106-elf/bin/xtensa-lx106-elf-gcc
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Users/bmatt/Development/esp/xtensa-lx106-elf/bin/xtensa-lx106-elf-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Users/bmatt/Development/esp/xtensa-lx106-elf/bin/xtensa-lx106-elf-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Project version: bd236e7
-- Building ESP-IDF components for target esp8266
-- Checking Python dependencies...
/Users/bmatt/Development/esp/ESP8266_RTOS_SDK/tools/check_python_dependencies.py:22: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
  import pkg_resources
Python requirements from /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/requirements.txt are satisfied.
-- 4.0-bd236e7
CMake Error at /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/tools/cmake/build.cmake:185 (message):
  Failed to resolve component 'driver'.
Call Stack (most recent call first):
  /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/tools/cmake/build.cmake:211 (__build_resolve_and_add_req)
  /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/tools/cmake/build.cmake:407 (__build_expand_requirements)
  /Users/bmatt/Development/esp/ESP8266_RTOS_SDK/tools/cmake/project.cmake:341 (idf_build_process)
  CMakeLists.txt:17 (project)

-- Configuring incomplete, errors occurred!

The driver component does exist:

$ find $IDF_PATH -type d -name driver
/Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/esp8266/driver
/Users/bmatt/Development/esp/ESP8266_RTOS_SDK/components/esp8266/include/driver
/Users/bmatt/Development/esp/ESP8266_RTOS_SDK/examples/get-started/hello_world/build/esp8266/driver
thenewwazoo commented 6 months ago

As an aside, I noticed that the .gitlab-ci.yml file does not attempt to build examples for an esp8266 target. Is the ESP8266 actually still supported?

thenewwazoo commented 6 months ago

It looks like the scheme_ble.h file was deleted in commit 82dcc3e0adf9f3d2395480f7c407428c62059215 on Mon Aug 10 11:57:04 2020 from the ESP8266_RTOS_SDK tree.