Initial sanitized SmartSpeaker snapshot
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
# Parse wifi-credentials from the project root directory at configure-time
|
||||
set(PASSWORD_FILE "${CMAKE_CURRENT_SOURCE_DIR}/../wifi-credentials")
|
||||
if(EXISTS "${PASSWORD_FILE}")
|
||||
file(READ "${PASSWORD_FILE}" PASSWORD_CONTENT)
|
||||
string(REGEX MATCH "SSID=([^\r\n]*)" _ "${PASSWORD_CONTENT}")
|
||||
set(WIFI_SSID "${CMAKE_MATCH_1}")
|
||||
string(REGEX MATCH "PASSWORD=([^\r\n]*)" _ "${PASSWORD_CONTENT}")
|
||||
set(WIFI_PASSWORD "${CMAKE_MATCH_1}")
|
||||
else()
|
||||
set(WIFI_SSID "YOUR_SSID")
|
||||
set(WIFI_PASSWORD "YOUR_PASSWORD")
|
||||
endif()
|
||||
|
||||
# Generate wifi_credentials.h inside the build directory so credentials aren't checked into Git
|
||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/wifi_credentials.h"
|
||||
"// Generated by CMake. Do not edit manually.\n\
|
||||
#define WIFI_SSID \"${WIFI_SSID}\"\n\
|
||||
#define WIFI_PASSWORD \"${WIFI_PASSWORD}\"\n"
|
||||
)
|
||||
|
||||
# Parse device model configuration from the project root directory at configure-time
|
||||
set(CONFIG_FILE "${CMAKE_CURRENT_SOURCE_DIR}/../device-config")
|
||||
if(EXISTS "${CONFIG_FILE}")
|
||||
file(READ "${CONFIG_FILE}" CONFIG_CONTENT)
|
||||
string(REGEX MATCH "MODEL=([^\r\n]*)" _ "${CONFIG_CONTENT}")
|
||||
set(DEVICE_MODEL "${CMAKE_MATCH_1}")
|
||||
else()
|
||||
set(DEVICE_MODEL "DEV-1")
|
||||
endif()
|
||||
|
||||
# Generate device_config.h inside the build directory
|
||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/device_config.h"
|
||||
"// Generated by CMake. Do not edit manually.\n\
|
||||
#define DEVICE_MODEL \"${DEVICE_MODEL}\"\n"
|
||||
)
|
||||
|
||||
# Register all project source files
|
||||
set(SOURCES
|
||||
"main.c"
|
||||
"wifi_connect.c"
|
||||
"socket_client.c"
|
||||
"state_manager.c"
|
||||
"ota_manager.c"
|
||||
"hardeware_driver/bsp_board.c"
|
||||
"audio_play_driver/audio_driver.c"
|
||||
"tca9555_driver/tca9555_driver.c"
|
||||
)
|
||||
|
||||
# Set include directories, including the generated binary directory
|
||||
set(INCLUDE_DIRS
|
||||
"."
|
||||
"hardeware_driver"
|
||||
"audio_play_driver"
|
||||
"tca9555_driver"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}"
|
||||
)
|
||||
|
||||
# Register the main component with dependencies
|
||||
idf_component_register(
|
||||
SRCS ${SOURCES}
|
||||
INCLUDE_DIRS ${INCLUDE_DIRS}
|
||||
PRIV_REQUIRES esp_driver_i2s esp_driver_i2c spi_flash esp_audio_simple_player esp_io_expander_tca95xx_16bit fatfs sdmmc spiffs led_strip esp_wifi nvs_flash esp_event esp_websocket_client esp-tls esp_https_ota app_update esp_driver_ledc esp_adc
|
||||
)
|
||||
|
||||
# Add compile definition based on model to the component library target
|
||||
if(DEVICE_MODEL STREQUAL "PROTO-1")
|
||||
target_compile_definitions(${COMPONENT_LIB} PRIVATE MODEL_PROTO_1=1)
|
||||
else()
|
||||
target_compile_definitions(${COMPONENT_LIB} PRIVATE MODEL_DEV_1=1)
|
||||
endif()
|
||||
|
||||
# Package and build the spiffs partition containing startup.mp3
|
||||
spiffs_create_partition_image(model spiffs FLASH_IN_PROJECT)
|
||||
Reference in New Issue
Block a user