【问题标题】:How to execute a shell script using CMake post_build?如何使用 CMake post_build 执行 shell 脚本?
【发布时间】:2016-06-14 00:55:33
【问题描述】:

如何使用 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
        )

免责声明

是的,SO hereherehere等也有类似的问题;但是,他们并没有让我清楚地了解如何实现这一目标。

【问题讨论】:

    标签: c linux cmake


    【解决方案1】:

    您正在使用不执行通用脚本或命令的 command-line tool mode 调用 CMake。

    相反,例如

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

    【讨论】:

    • 优雅的答案,完美:)
    • 有没有办法使用相对路径,而不是脚本的绝对路径?
    • @MattKelly 当然,但是亲戚路径将来自构建目录。最好使用 CMake 目录变量之一(如 ${PROJECT_SOURCE_DIR} 或类似变量)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-15
    • 2015-09-19
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    • 1970-01-01
    • 2013-02-10
    相关资源
    最近更新 更多