【问题标题】:Working with Multiple Projects in CMake在 CMake 中处理多个项目
【发布时间】:2012-03-19 15:48:51
【问题描述】:

我目前正在将一个 Visual C++ 项目(其中包含多个子项目)过渡到 CMake。

有一件事我不确定——基本上,要包含顶级 CMakeLists.txt 文件中的子项目,我只需使用 add_subdirectory 命令,并引用存储这些不同子项目的目录。

但是,我有一个项目与我的顶级 CMakeLists.txt 文件位于 same 目录中,所以我想知道是否仍然可以以某种方式包含此文件? CMake 不允许我在现有 PROJECT_BINARY_DIR 上调用 add_subdirectory(见下文):

add_subdirectory(${PROJECT_BINARY_DIR}) #not allowed in CMake

我想不出另一种方法来将此子项目包含到我的 CMake 构建中。有什么想法吗?

【问题讨论】:

    标签: c++ cmake


    【解决方案1】:

    add_subdirectory 所做的只是添加一个包含 CMakeLists.txt 文件的子目录,因此允许您添加当前目录是没有意义的。您可以简单地添加 CMake 逻辑以在 CMakeLists.txt 文件中构建项目的该部分。如果你想分离逻辑,那么你可以把它放在build_project.cmake中,然后使用include,

    include(build_project.cmake)
    

    您可以根据需要包含任意数量的其他 CMake 文件,并且该 CMake 代码将被评估,就好像它是内联粘贴的一样。所以所有正常的 add_executable 和类似的命令都可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多