gpt4 book ai didi

CMake 自动识别新的文件扩展名

转载 作者:行者123 更新时间:2023-12-02 02:28:46 24 4
gpt4 key购买 nike

当我将源文件添加到目标时,如果它们来自 C/C++ 文件扩展名,它们将被自动识别。我想要完成的是,如果我将源代码放入 xxx.foo,则所有 .foo 文件都将使用一组预定义的编译器命令进行处理。

我知道要走的路是使用 add_custom_command 但我看到的所有示例都使用固定文件名,就像这里使用的那些 http://www.cmake.org/Wiki/CMake_FAQ#How_can_I_generate_a_source_file_during_the_build.3F

关于正确解决问题的方法有什么想法吗?

最佳答案

解决该问题的一种方法是用包装函数或宏替换普通的 CMake add_executableadd_library 命令,这些函数或宏对扩展名为 .foo 的文件进行特殊处理并将其他参数和选项传递给标准 add_executableadd_library 命令。例如:

set (FOO_SRCS "main.cpp" "module.cpp" "xxx.foo" "yyy.foo")
foo_add_executable(fooexec ${FOO_SRCS})
foo_add_library(foolib ${FOO_SRCS})

FindCUDA 标准 CMake 模块采用了这种方法。它添加了 CUDA_ADD_EXECUTABLE 和 CUDA_ADD_LIBRARY 命令,这些命令将扩展名为 .cu 的源文件提供给 NVIDIA C 编译器。

关于CMake 自动识别新的文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4671862/

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