在我们的工作流程中,我们可以有一个由多个头文件组成的模块A,模块A不会生成任何二进制文件(副注:显然,它将被其他模块使用,这些模块包括模块A的一些头文件以生成二进制文件)。
一个很好的例子是仅包含头文件的库,对于这种情况,CMake 3通过INTERFACE
库的概念提供了良好的支持(请参考该SO答案以及CMake的特性文档)。
我们可以从模块A创建一个接口库目标:
add_library(module_A INTERFACE)
这样可以让我们拥有CMake目标的所有好处(可以将其用作另一个目标的依赖项,导出它,转发要求等)。
但在这种情况下,模块A中的头文件不会出现在我们的IDE中(Xcode尚未出现,但我们预计大多数/每个其他IDE都是相同的)。
这证明了工作流程中的一个重大缺点,因为我们需要在IDE中显示组成模块A的文件以进行编辑。是否有可能实现这一点?
add_library
命令的INTERFACE
形式不需要任何 文件 参数(请参见文档中的最后一种形式)。 实际上,我们并不一定需要一个INTERFACE
,但这是我们所知道的唯一可变的非二进制目标。 [为了背景,IdeaHat 想知道是否可以在add_library
命令的INTERFACE
形式中提供头文件] - Ad N