gpt4 book ai didi

c++ - CMake add_custom_command 没有输出

转载 作者:行者123 更新时间:2023-11-30 03:32:43 25 4
gpt4 key购买 nike

我需要过滤某个目录下的 *.h 和 *.cpp 文件,然后使用一些脚本对其进行格式化,因此我编写了以下代码:

add_custom_command(

DEPENDS ${GENERATED_STUFF}

COMMAND find "${OUTPUT_DIR}/include/SOME_PATH" -iname *.h -o -iname *.cpp | xargs /net/binlib/lib/clang/clang-format-3.9.0 -i

OUTPUT ?????
)

但是,此命令只是修改现有文件,因此不会生成新文件输出。在这种情况下,如何定义输出?有没有其他方法可以解决这个需求?我只希望仅在文件更改时重新执行此命令。

最佳答案

您可以创建“时间戳”文件。构建系统将仅使用它来提取时间戳并将其与DEPENDS 下的文件进行比较。

add_custom_command(
DEPENDS ${GENERATED_STUFF}
COMMAND find "${OUTPUT_DIR}/include/exchange_protocol" -iname *.h -o -iname *.cpp | xargs /net/binlib/lib/clang/clang-format-3.9.0 -i
COMMAND ${CMAKE_COMMAND} -E touch my_file.stamp
OUTPUT my_file.stamp
)

要使您的 add_custom_command 起作用,您需要使用 add_custom_target,这取决于给定的文件。

关于c++ - CMake add_custom_command 没有输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43347087/

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