CMake - 3rdparty 文件夹和多模块项目

CMake - 3rdparty folder and mulit module project

创建 3rdparty 文件夹的最佳做法是什么?

我有一个包含项目范围内多个模块的项目,其中一些模块依赖于 3rdparty。目前我在根目录中有一个 3rdparty 文件夹。最重要的是,我用 Find.cmake 文件创建了 cmake 文件夹。如果需要 lib,则每个模块只需调用 find_package。

问题是这是否是一种好的做法?每个模块都应该有自己的 3rdparty 文件夹,或者现在这样就好了?

为了扩大问题的范围 - 我有一个我想调试的 3rdparty。

- root/
  - 3rdparty/
    - 3rdplib/
  - mylib/
    - CmakeLists.txt
    ...

add_subdirectory 听起来不错,但 3rdplib 与 mylib 不在同一个文件夹中。

我想说您所做的是在多组件项目中管理第 3 方依赖项的最简洁的方法。

您提供的内容与 the Pitchfork proposal 的“外部”目录完全匹配(旨在 establish/standarize 典型的 C/C++ 项目结构)。