diff --git a/components/bootloader/CMakeLists.txt b/components/bootloader/CMakeLists.txt index 410f9efba..388d82a48 100644 --- a/components/bootloader/CMakeLists.txt +++ b/components/bootloader/CMakeLists.txt @@ -5,7 +5,8 @@ if(BOOTLOADER_BUILD OR NOT CONFIG_APP_BUILD_BOOTLOADER) return() endif() -add_dependencies(bootloader partition_table) +add_dependencies(bootloader partition_table_bin) + # When secure boot is enabled, do not flash bootloader along with invocation of `idf.py flash` if(NOT CONFIG_SECURE_BOOT) set(flash_bootloader FLASH_IN_PROJECT) diff --git a/components/esptool_py/project_include.cmake b/components/esptool_py/project_include.cmake index e2f4abe1e..fefdaaf40 100644 --- a/components/esptool_py/project_include.cmake +++ b/components/esptool_py/project_include.cmake @@ -258,7 +258,7 @@ function(esptool_py_custom_target target_name flasher_filename dependencies) endfunction() if(NOT BOOTLOADER_BUILD) - set(flash_deps "partition_table") + set(flash_deps "partition_table_bin") if(CONFIG_APP_BUILD_GENERATE_BINARIES) list(APPEND flash_deps "app") diff --git a/components/partition_table/CMakeLists.txt b/components/partition_table/CMakeLists.txt index bc90727f4..7d42c4448 100644 --- a/components/partition_table/CMakeLists.txt +++ b/components/partition_table/CMakeLists.txt @@ -37,19 +37,26 @@ set(gen_partition_table "${python}" "${CMAKE_CURRENT_SOURCE_DIR}/gen_esp32part.p "--offset" "${PARTITION_TABLE_OFFSET}" "${md5_opt}" "${flashsize_opt}" "${partition_secure_opt}" ) +set(partition_table_display + COMMAND ${CMAKE_COMMAND} -E echo "Partition table binary generated. Contents:" + COMMAND ${CMAKE_COMMAND} -E echo "*******************************************************************************" + COMMAND ${gen_partition_table} "${build_dir}/partition_table/${unsigned_partition_bin}" + COMMAND ${CMAKE_COMMAND} -E echo "*******************************************************************************" +) + add_custom_command(OUTPUT "${build_dir}/partition_table/${unsigned_partition_bin}" COMMAND ${gen_partition_table} "${partition_csv}" "${build_dir}/partition_table/${unsigned_partition_bin}" + ${partition_table_display} DEPENDS ${partition_csv} "${CMAKE_CURRENT_SOURCE_DIR}/gen_esp32part.py" VERBATIM) +add_custom_target(partition_table_bin DEPENDS "${build_dir}/partition_table/${unsigned_partition_bin}" + "${build_dir}/partition_table/${unsigned_partition_bin}") + if(EXISTS ${partition_csv}) - add_custom_target(partition_table ALL - DEPENDS "${build_dir}/partition_table/${unsigned_partition_bin}" - "${build_dir}/partition_table/${final_partition_bin}" - COMMAND ${CMAKE_COMMAND} -E echo "Partition table binary generated. Contents:" - COMMAND ${CMAKE_COMMAND} -E echo "*******************************************************************************" - COMMAND ${gen_partition_table} "${build_dir}/partition_table/${unsigned_partition_bin}" - COMMAND ${CMAKE_COMMAND} -E echo "*******************************************************************************" + add_custom_target(partition_table + DEPENDS partition_table_bin + ${partition_table_display} VERBATIM) else() # If the partition input CSV is not found, create a phony partition_table target that