Skip to content
Advertisement

How to execute a shell script using CMake post_build?

How to execute a shell script using CMake? The command that should be run is my_script that should be executed after build. The CMakeLists.txt

cmake_minimum_required(VERSION 3.0)

project(abc)

include_directories("/usr/lib/avr/include")

set(CMAKE_CURRENT_SOURCE_DIR /home/user/Desktop)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mmcu=atmega8")
set(SOURCE_FILES main.c)

add_executable(abc ${SOURCE_FILES})

#not working ----->
add_custom_command(TARGET abc
        POST_BUILD
        COMMAND ${CMAKE_COMMAND} -E my_script
        )

DISCLAIMER

Yes, there are similar questions in SO here, here, here, etc; however, they don’t give me a clear vision how this can be achieved.

Advertisement

Answer

You are invoking CMake with it’s command-line tool mode which doesn’t execute generic scripts or commands.

Instead do e.g.

add_custom_command(TARGET abc
        POST_BUILD
        COMMAND /bin/sh /path/to/my_script
        )
Advertisement