我正在构建一个包含多个repos / packages的项目。
项目结构如下所示。
Top level directory
|
-------------------
| | |
ament app <--- lib
图书馆 lib 与 app 相关联。因此,我在应用下添加了Findlib.cmake
。
在Findlib.cmake
内,我调用find_path()
来搜索 lib 中源代码和头文件的路径。
但是,似乎 app 中的find_path()
无法找到 lib 中的内容,因为 lib 在之外> app repo,除非我在HINTS
中添加find_path()
来表示 lib 的绝对路径。
但如果直接提供 lib 的路径,则根本无需在 app 中调用find_path()
。相反,我更愿意为find_path()
提供一些CMake标准变量/定义,例如CMAKE_SOURCE_DIR
。
您能否告诉我如何启用find_path()
来搜索当前包之外的目录?
谢谢。
致以最诚挚的问候,
大卫
答案 0 :(得分:0)
我找不到一个CMAKE变量来指示根目录。
唯一的解决方案是将 lib 目录添加到CMAKE_PREFIX_PATH
。
cmake ... -DCMAKE_PREFIX_PATH=path/to/lib
另一种方法是调整此项目的结构。
在应用下创建一个thirdparty
文件夹。将 lib 包放在thirdparty
下。