0

此问题的后续问题:cmake 项目仅构建一个特定的可执行文件(及其依赖项)

我编写了一个自定义目标,因此每次我在项目中编译某些内容时它都会运行。现在我按照上面的问题调用了一个显式目标,这个自定义命令不再执行。代码:

add_custom_target(
    custom_command
    ALL
    DEPENDS hash.h
    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
    COMMENT "[INFO] CMake generating special *.h file from custom command magic."
)

我已经尝试删除该ALL指令,但它没有改变任何东西。

忘了补充:我使用cmake/3.13.4的是从源代码编译的。

4

1 回答 1

0

很抱歉后来的回答,但工作很疯狂。所以在我阅读了@Th.Thielemann 和@squareskittles 的评论后,我重新阅读了 cmake 文档并找到了我的解决方案。下面的代码是cmake/3.0.0很久以前写的:

add_custom_command( 
    OUTPUT some_header.h
    COMMAND cat ${BISON_HEADER} other_header.h | awk -f some_wak_file.awk > some_header.h
    DEPENDS ${BISON_HEADER}
    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)

add_custom_target(
    custom_command
    ALL
    DEPENDS some_header.h
    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
    COMMENT "[INFO] CMake generating special *.h file from custom command magic."
)

在再次阅读文档后,cmake/3.13很明显它可以以更简单的形式编写:

add_custom_target(
    timex_utilities_hash 
    ALL
    COMMAND cat ${BISON_HEADER} other_header.h | awk -f some_wak_file.awk > some_header.h
    DEPENDS ${BISON_HEADER}
    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)

再次感谢@Th。Thielemann 和@squareskittles 让患者和 inut 再次检查!

于 2019-08-14T05:53:33.030 回答