From 1fce3160fdb197e3c939ef52094c072989db68bf Mon Sep 17 00:00:00 2001 From: William Vinnicombe Date: Thu, 7 Nov 2024 18:03:16 +0000 Subject: [PATCH] Fix dependency on files used by picotool Add the key files and partition table JSON to the link dependencies, to ensure the postprocessing is run when any of them are updated. Link dependencies seem to be the simplest way, as the elf file needs re-linking anyway given it has been post-processed, so this doesn't add any unecessary extra processing. Without this fix, if you modify a pt.json file or a private key, the ouptut binary will not have the correct pt/key. --- tools/CMakeLists.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index d3f12c547..d7204bc9a 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -427,6 +427,7 @@ function(picotool_postprocess_binary TARGET) if (picotool_sign_output) list(APPEND picotool_args "--sign") get_target_property(picotool_sigfile ${TARGET} PICOTOOL_SIGFILE) + pico_add_link_depend(${TARGET} ${picotool_sigfile}) endif() get_target_property(picotool_hash_output ${TARGET} PICOTOOL_HASH_OUTPUT) @@ -442,10 +443,19 @@ function(picotool_postprocess_binary TARGET) # Embed PT properties get_target_property(picotool_embed_pt ${TARGET} PICOTOOL_EMBED_PT) + if (picotool_embed_pt) + pico_add_link_depend(${TARGET} ${picotool_embed_pt}) + endif() # Encryption properties get_target_property(picotool_aesfile ${TARGET} PICOTOOL_AESFILE) + if (picotool_aesfile) + pico_add_link_depend(${TARGET} ${picotool_aesfile}) + endif() get_target_property(picotool_enc_sigfile ${TARGET} PICOTOOL_ENC_SIGFILE) + if (picotool_enc_sigfile) + pico_add_link_depend(${TARGET} ${picotool_enc_sigfile}) + endif() # Extra args get_target_property(extra_process_args ${TARGET} PICOTOOL_EXTRA_PROCESS_ARGS)