@@ -32,21 +32,32 @@ cmake_print_variables(GIT_VERSION GIT_SUBMODULE_VERSIONS)
3232
3333project (tinyuf2)
3434
35- # Post build: generate bootloader_bin.c for self-update and combined.bin
36- add_custom_command (TARGET tinyuf2.elf POST_BUILD
37- COMMAND ${Python_EXECUTABLE} ${UF2CONV_PY} --carray -o ${CMAKE_CURRENT_LIST_DIR} /apps/self_update/main/bootloader_bin.c ${CMAKE_BINARY_DIR} /tinyuf2.bin
38- )
35+ # Create post-build script for combined.bin / combined-ota.bin
36+ file (WRITE ${CMAKE_BINARY_DIR} /tinyuf2.postbuild.sh
37+ "#!/bin/bash\n "
38+ "echo \" Creating combined.bin\"\n "
39+ "esptool.py --chip ${IDF_TARGET} merge_bin --output combined.bin $(tr '\\ n' ' ' < ${CMAKE_BINARY_DIR} /flash_args)\n "
40+ )
3941
40- add_custom_command (TARGET tinyuf2.elf POST_BUILD
41- BYPRODUCTS ${CMAKE_BINARY_DIR} /combined.bin
42- COMMAND ${CMAKE_COMMAND} -E echo "Creating combined.bin"
43- COMMAND bash -c "esptool.py --chip ${IDF_TARGET} merge_bin --output combined.bin $(tr '\\ n' ' ' < ${CMAKE_BINARY_DIR} /flash_args)"
42+ # check if board is 4MB flash and create combined-ota.bin
43+ file (READ ${CMAKE_CURRENT_LIST_DIR} /boards/${BOARD}/sdkconfig BOARD_SDKCONFIG_CONTENTS )
44+ string (FIND ${BOARD_SDKCONFIG_CONTENTS} "partitions-4MB-noota.csv" MATCH_INDEX)
45+ if (NOT MATCH_INDEX EQUAL -1)
46+ file (APPEND ${CMAKE_BINARY_DIR} /tinyuf2.postbuild.sh
47+ "echo \" Creating combined-ota.bin\"\n "
48+ "gen_esp32part.py ${CMAKE_CURRENT_LIST_DIR} /partitions-4MB.csv ${CMAKE_BINARY_DIR} /partition_table/partitions-table-4MB-ota.bin\n "
49+ "esptool.py --chip ${IDF_TARGET} merge_bin --output combined_ota.bin $(tr '\\ n' ' ' < ${CMAKE_BINARY_DIR} /flash_args | sed 's/partition-table.bin/partitions-table-4MB-ota.bin/g')\n "
50+ )
51+ endif ()
52+
53+ add_custom_command (TARGET app POST_BUILD
54+ COMMAND bash ${CMAKE_BINARY_DIR} /tinyuf2.postbuild.sh
4455 VERBATIM
4556 )
4657
47- ## Post build: copy binaries for artifact
58+ # Post build: copy binaries for artifact
4859set (ARTIFACT_PATH ${CMAKE_CURRENT_LIST_DIR} /_bin/${BOARD} )
49- add_custom_command (TARGET tinyuf2.elf POST_BUILD
60+ add_custom_command (TARGET app POST_BUILD
5061 COMMAND ${CMAKE_COMMAND} -E echo "Copy binaries for artifact"
5162 COMMAND mkdir -p ${ARTIFACT_PATH}
5263 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR} /bootloader/bootloader.bin ${ARTIFACT_PATH} /bootloader.bin
@@ -57,21 +68,12 @@ add_custom_command(TARGET tinyuf2.elf POST_BUILD
5768 VERBATIM
5869 )
5970
60- # check if board is 4MB flash and create combined-ota.bin
61- file (READ ${CMAKE_CURRENT_LIST_DIR} /boards/${BOARD}/sdkconfig BOARD_SDKCONFIG_CONTENTS )
62- string (FIND ${BOARD_SDKCONFIG_CONTENTS} "partitions-4MB-noota.csv" MATCH_INDEX)
63- if (NOT MATCH_INDEX EQUAL -1)
64- add_custom_command (TARGET tinyuf2.elf POST_BUILD
65- BYPRODUCTS ${CMAKE_BINARY_DIR} /combined_ota.bin
66- COMMAND ${CMAKE_COMMAND} -E echo "Creating combined_ota.bin"
67- COMMAND gen_esp32part.py ${CMAKE_CURRENT_LIST_DIR} /partitions-4MB.csv ${CMAKE_BINARY_DIR} /partition_table/partitions-table-4MB-ota.bin
68- COMMAND bash -c "esptool.py --chip ${IDF_TARGET} merge_bin --output combined_ota.bin $(tr '\\ n' ' ' < ${CMAKE_BINARY_DIR} /flash_args | sed 's/partition-table.bin/partitions-table-4MB-ota.bin/g')"
69- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR} /combined_ota.bin ${ARTIFACT_PATH} /combined_ota.bin
70- VERBATIM
71- )
72- endif ()
73-
7471# External project for self-update
72+ # Post build: generate bootloader_bin.c for self-update and combined.bin
73+ add_custom_command (TARGET app POST_BUILD
74+ COMMAND ${Python_EXECUTABLE} ${UF2CONV_PY} --carray -o ${CMAKE_CURRENT_LIST_DIR} /apps/self_update/main/bootloader_bin.c ${CMAKE_BINARY_DIR} /tinyuf2.bin
75+ )
76+
7577externalproject_add (self_update
7678 SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR} /apps/self_update
7779 BINARY_DIR ${CMAKE_BINARY_DIR} /self_update
0 commit comments