How to execute a shell script using CMake post_build?
13,765
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
)
Author by
sitilge
Updated on June 05, 2022Comments
-
sitilge almost 2 years
How to execute a shell script using CMake? The command that should be run is
my_script
that should be executed after build. TheCMakeLists.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.
-
sitilge about 8 yearsElegant answer, just perfect :)
-
MattKelly over 4 yearsIs there a way to use a relative, instead of an absolute path to the script?
-
Some programmer dude over 4 years@MattKelly Of course, but the relatives paths will be from the build directory. Better use one of the CMake directory variables instead (like
${PROJECT_SOURCE_DIR}
or similar).