【发布时间】:2015-04-11 20:35:43
【问题描述】:
我正在与使用 CMake 的团队一起开发产品。我们的 CMake 项目中有几个 Visual Studio 项目(库和可执行文件),它们引用了其他项目标头(通过 target_include_directories())。在源文件中,这些标头包含如下所示:
#include "some_header.h" // from project_x
#include "another_header.h" // from project_y
我希望能够将这些标头包含在引用它们从中提取的项目的路径中,例如:
#include "project_x/some_header.h"
#include "project_y/another_header.h"
最容易接受的方法是什么?我想到了几个解决方案:
将包含项目的目录添加为包含路径。这具有包含所有内容的不良副作用,并且似乎是一个糟糕的解决方案。
包含项目的一个名为“include”的子文件夹,其中包含一个与项目名称相同的文件夹,这会创建一个略微冗余的路径:
/<project_name>/include/<project_name>/<...>
还有第三种解决方案,为每个项目使用带有子文件夹的共享包含目录,但它不适用于我们的项目,因为我们在文件系统和 Visual Studio 解决方案中按类别对构建项目进行分组,这将导致/include/ 内部的文件夹结构与源代码树的其余部分不同,这是不可取的。
有没有更好(或更规范/惯用)的方法来实现这一点?
【问题讨论】:
标签: c++ visual-studio cmake