如何启用find_path()来搜索当前包之外的目录?

时间:2018-03-16 08:40:51

标签: cmake

我正在构建一个包含多个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()来搜索当前包之外的目录?

谢谢。

致以最诚挚的问候,

大卫

1 个答案:

答案 0 :(得分:0)

我找不到一个CMAKE变量来指示根目录。 唯一的解决方案是将 lib 目录添加到CMAKE_PREFIX_PATH

cmake ... -DCMAKE_PREFIX_PATH=path/to/lib

另一种方法是调整此项目的结构。 在应用下创建一个thirdparty文件夹。将 lib 包放在thirdparty下。