如何使用CMake post_build执行shell脚本?

sit*_*lge 7 c linux cmake

如何使用CMake执行shell脚本?应该运行的命令应该my_script在构建之后执行.该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
        )
Run Code Online (Sandbox Code Playgroud)

免责声明

是的,在这里,这里,这里等有类似的问题; 然而,他们没有给我一个清晰的愿景如何实现这一目标.

Som*_*ude 11

您正在使用命令行工具模式调用CMake,该模式不执行通用脚本或命令.

相反,例如

add_custom_command(TARGET abc
        POST_BUILD
        COMMAND /bin/sh /path/to/my_script
        )
Run Code Online (Sandbox Code Playgroud)

  • @MattKelly当然可以,但是相对路径将来自构建目录。最好使用 CMake 目录变量之一(例如“${PROJECT_SOURCE_DIR}”或类似变量)。 (2认同)