CMake自动识别新的文件扩展名
当我将源文件添加到目标文件时,如果它们来自C/C++文件扩展名,则会自动识别它们。我想实现的是,如果我将源代码xxx.foo放入其中,那么所有的.foo文件都将使用一组预定义的编译器命令进行处理 我知道方法是使用add_custom_命令,但我看到的所有示例都使用固定文件名,就像这里使用的文件名一样CMake自动识别新的文件扩展名,cmake,Cmake,当我将源文件添加到目标文件时,如果它们来自C/C++文件扩展名,则会自动识别它们。我想实现的是,如果我将源代码xxx.foo放入其中,那么所有的.foo文件都将使用一组预定义的编译器命令进行处理 我知道方法是使用add_custom_命令,但我看到的所有示例都使用固定文件名,就像这里使用的文件名一样 关于解决问题的正确方法有什么想法吗?解决问题的一种方法是将普通的CMakeadd_executable和add_library命令替换为包装函数或宏,这些函数或宏对扩展名为.foo的文件进行特殊处理
关于解决问题的正确方法有什么想法吗?解决问题的一种方法是将普通的CMake
add_executable
和add_library
命令替换为包装函数或宏,这些函数或宏对扩展名为.foo的文件进行特殊处理,并将其他参数和选项传递给标准的add_可执行文件
或add_库
命令。例如:
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模块采用这种方法。它添加了CUAADAADADIOxEngUTable和CUAADAADD库命令,这些命令将源文件与扩展名CU一起输入英伟达C编译器。