Re: Executing a Post Build Batch File using CMake

Bolivar, Marti

Hi Casey,

Did you have a look at the global 'extra_post_build_commands' and
'extra_post_build_byproducts' properties mentioned in

Try searching around the source tree to see how it is used and if you
can adapt it to your needs.


On Wed, Apr 13 2022, Casey Shea via wrote:
*Build Environment Details*

* Building Zephyr with CMake
* ARM Platform (Nordic nrf5340)
* Source and Build directories are out of tree.

* My build directory is ${ CMAKE_CURRENT_SOURCE_DIR }../../Executables
* My source directories are in several places, but all are in a sub-directory of ${ CMAKE_CURRENT_SOURCE_DIR }/../../../../

* CLion is my IDE of choice but I don't believe that matters for this discusson.

*What I am Trying to Achieve*
At the end of my build process, I would like to execute a batch file on the zephyr_final target that signs the final image.  This is different than the MCU Boot signature and is a custom proprietary signature.  I am unable to change the way in which this image is signed as it must be compatible with existing tools used with my product.

*Method in Which I am trying to Achieve*
Normally, I would do this using add_custom_command(TARGET target_name POST_BUILD
COMMAND "batchfile.bat" batchfile_arguments)

However, I don't believe that the final zephyr target is within the scope of the top-level CMakeLists.txt file.  That said, I do not have a lot of experience with CMake as most of my past development was within the IAR toolchain.  It's very possible that I am misinterpreting this.

1.  Will I be able to use the add_custom_command() CMake function to execute the batch file?  If so, can someone provide an example as to how I would do this and what Target I should be using.

2.  Is there a better, more appropriate method for doing this within the Zephyr environment.

Any help or guidance is much appreciated!

Join to automatically receive all group messages.