You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

58 lines
1.7 KiB
CMake

set(UI_DIR ./ui)
file(GLOB_RECURSE UI_SRCS ${UI_DIR}/*.c)
set(APP_DIR ./app)
file(GLOB_RECURSE APP_SRCS ${APP_DIR}/*.c)
set(SETTINGS_DIR ./settings)
file(GLOB_RECURSE SETTINGS_SRCS ${SETTINGS_DIR}/*.c)
set(UTILS_DIR ./utils)
file(GLOB_RECURSE UTILS_SRCS ${UTILS_DIR}/*.c)
idf_component_register(
SRCS
"main.c"
${UI_SRCS}
${APP_SRCS}
${SETTINGS_SRCS}
${UTILS_SRCS}
INCLUDE_DIRS
"."
${UI_DIR}
${APP_DIR}
${SETTINGS_DIR}
${UTILS_DIR}
)
set(MV_UF2_BIN_EXE ${COMPONENT_PATH}/generateuf2.py)
idf_build_get_property(build_dir BUILD_DIR)
set(nvs_src_file ${PROJECT_DIR}/factory_nvs/build/factory_nvs.bin)
set(nvs_dst_file ${build_dir}/uf2/factory_nvs.bin)
if(NOT EXISTS ${nvs_src_file})
message(FATAL_ERROR "Please ensure that the 'factory_nvs' is built first, and make sure to keep the 'HMI Board Config' consistent.")
endif()
add_custom_target(nvs_uf2_bin ALL)
add_custom_command(
TARGET nvs_uf2_bin
COMMAND ${CMAKE_COMMAND} -E make_directory ${build_dir}/uf2
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${nvs_src_file} ${nvs_dst_file}
COMMAND ${CMAKE_COMMAND} -E echo "Copying factory_nvs.bin to destination if it is different..."
VERBATIM)
add_dependencies(flash nvs_uf2_bin)
partition_table_get_partition_info(size "--partition-name ota_0" "size")
partition_table_get_partition_info(offset "--partition-name ota_0" "offset")
if("${size}" AND "${offset}")
esptool_py_flash_to_partition(flash "ota_0" "${nvs_dst_file}")
else()
set(message "Failed to find ota_0 in partition table file"
"Please add a line to the partition file.")
endif()
spiffs_create_partition_image(storage ../spiffs FLASH_IN_PROJECT)