【发布时间】:2018-02-01 05:00:21
【问题描述】:
我有一个交叉编译器 cmake 项目,该项目依赖于一个单独项目中的库,该项目恰好也使用 cmake:
/myProject/CMakeLists.txt (uses cross-compiler)
/anotherProject/CMakeLists.txt (platform-agnostic)
anotherProject 可以完全独立地单独构建。它根本不知道 myProject。
现在,anotherProject 有许多我需要的模块,例如:
anotherProject/A/CMakeLists.txt (produces static lib A.a)
anotherProject/B/CMakeLists.txt (produces static lib B.a)
etc
当我构建 myProject 时,我想构建和链接 anotherProject/A 和 anotherProject/B,以生成共享库 myproject.so。如果可能的话,我想利用 anotherProject 的现有 cmake 特性,而不是从 myProject 手动 globbing 其各种源集。
使用 cmake 实现此目的的正确方法是什么?我觉得我错过了一些明显的东西。
如果 myProject 只是 anotherProject 下的一个子目录,或者如果有一个可以引用 myProject 和 anotherProject 的顶级 CMakeLists.txt,那就很简单了;但也不是我所追求的。我知道我可以构建 anotherProject 并将其库导出到一个众所周知的位置,然后从 myProject 引用导出目录 - 但我也想避免这种设置。
【问题讨论】: