gpt4 book ai didi

CMake:如何使 add_custom_command 仅在输入更改时执行?

转载 作者:行者123 更新时间:2023-12-03 17:18:31 29 4
gpt4 key购买 nike

对于我的项目,我想运行一个命令来生成一个已安装的文件(换句话说,生成的文件只是一个数据文件,而不是源代码)。

我目前在我的 CMakeLists.txt 中有以下内容

add_custom_command(
OUTPUT outputfile.txt
COMMAND dosomething ${CMAKE_CURRENT_SOURCE_DIR}/inputfile.txt
${CMAKE_CURRENT_BINARY_DIR}/output.txt
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/inputfile.txt
)

add_custom_target(
run_gen_command
ALL
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/output.txt
)

install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/output.txt
DESTINATION ${CMAKE_INSTALL_DATADIR}/somewhere
)

这工作正常,但因为 ALL传递给 add_custom_target() ,每次运行时都会执行命令 make .

有什么办法可以更改此设置,以便仅在更改输入文件时运行该命令?该命令可能需要一段时间才能完成,因此理想情况下,除非需要,否则不会运行它。

提前致谢!

最佳答案

更正一下:

add_custom_command(
OUTPUT outputfile.txt

有了这个:
add_custom_command(
OUTPUT output.txt

那么我的猜测是你不需要 add_custom_target根本。如果我错了,只需删除 ALL来自 add_custom_target ,你应该没问题。

关于CMake:如何使 add_custom_command 仅在输入更改时执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25829261/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com