【问题标题】:cmake, add_subdirectory without adding it to the generated project file?cmake, add_subdirectory 不将其添加到生成的项目文件中?
【发布时间】:2011-08-07 17:14:55
【问题描述】:
我有一个使用 cmake 构建的项目。在我的 cmakelists 中,我有一个
add_subdirectory(externals/foo)
构建具有自己的 cmakelists 的依赖项“foo”。
现在,整个 foo 源和头文件也包含在生成的项目文件中(我使用的是 Eclipse)。但我只想让我的项目在 Eclipse 中可用(Eclipse 在同一文件夹结构中的子项目存在问题)。
因此“foo”中的 cmakelists 仅用于自动构建“foo”并将其链接到我的项目。但是我不想在我的 IDE 中看到它。
这可能吗?如果是:如何?
【问题讨论】:
标签:
eclipse
project
cmake
generator
subdirectory
【解决方案1】:
当我将 Eclipse 与 CMake 结合使用时,我手动创建了 Eclipse 项目(使用新建项目向导),对于 CMake,我使用标准的 makefile 生成器。它需要一些额外的设置:如果你在进行源外构建,则需要在项目属性中设置构建目录,我通常将构建命令设置为make VERBOSE=1。
我不确定,因为我没有使用过 Eclipse 生成器,但是由于缺乏更好的解决方案,也许这种方法可以解决您的问题,因为它可以让您更好地控制 Eclipse 项目。
【解决方案2】:
不,如果你不告诉它要编译什么,ide 怎么知道要编译什么?如果您不想在项目文件中包含该项目,请不要添加它。
只需自行编译外部库(使用“cmake externals/foo”),然后将库添加到项目的 CMakeLists.txt 中
target_link_libraries(your_project externals/foo/bin/foo.lib)