【发布时间】:2021-06-16 00:10:14
【问题描述】:
对于一个项目,我使用add_custom_command 自动生成多个 Fortran 源文件。据我所知,这会导致 CMake 创建一个 GENERATED 源文件,我可以将其添加到库或可执行文件等目标中。但是,由于该文件在 CMake 编译时不存在,因此 CMake 无法使用 source_group 命令为 IDE (Visual Studio) 对这些生成的文件进行分组。
是否有另一种方法可以达到与source_group 相同的结果但我找不到?例如,在 Qt 中使用 CMake 时,您可以设置 AUTOGEN_SOURCE_GROUP 以更改 automoc 和 autorcc 生成文件的源组。
示例。
# Creates a command to generate the 'a.f90' file using 'mytool.exe' and 'a.f90.in'.
add_custom_command(
OUTPUT a.f90
COMMAND mytool.exe a.f90.in
DEPENDS a.f90.in
)
add_executable(example a.f90 b.f90 c.f90) # Where b.f90 and c.f90 are not generated
source_group("Source Files/Not Generated" FILES "b.f90 c.f90")
source_group("Source Files/Generated" FILES a.f90) # Does nothing
这会产生以下视觉工作室过滤器,
Source Files
|- Non Generated Files
|- b.f90
|- c.f90
|- a.f90
而不是
Source Files
|- Non Generated Files
|- b.f90
|- c.f90
|- Generated Files
|- a.f90
【问题讨论】:
标签: cmake