From 2331e6f203e5871c25b65b059dbb30886b1efe8f Mon Sep 17 00:00:00 2001 From: will-v-pi <108662275+will-v-pi@users.noreply.github.com> Date: Sat, 9 Nov 2024 00:27:30 +0000 Subject: [PATCH] Fix dependency on files used by picotool (#2027) 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 d3f12c54..d7204bc9 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)