代码之家  ›  专栏  ›  技术社区  ›  ShanZhengYang

如何在CMakeList中设置相对于上层子目录的相对路径。txt?

  •  0
  • ShanZhengYang  · 技术社区  · 7 年前

    我正在修改CMakeLists。txt编译具有依赖项的库。我不知道如何提供到上面子目录中位置的相对路径 CMAKE_CURRENT_LIST_DIR .通常我会用 CMAKE_当前_列表_目录 创建相对路径,或使用绝对路径。后者在这里不是一个选项。

    以下是我的情况:

    使用CMakeLists。txt,它目前找不到其他库(在这里, FIRST , SECOND ,及 THIRD )通过

    find_package(FIRST REQUIRED)
    find_package(SECOND REQUIRED)
    

    因此,我想通过以下方式设置include/lib路径:

    FIRST_INCLUDE_DIR=
    FIRST_LIBRARY=
    SECOND_INCLUDE_DIR=
    SECOND_LIBRARY=
    

    当前,对于当前正在处理的listfile的完整目录,如下所示:

    message("${CMAKE_CURRENT_LIST_DIR}")
    

    输出

    /home/travis/build/repohandle/libraryname/00_pkg_src/libraryname/src/package

    但是 第一 第二 以下是:

    /home/travis/build/repohandle/libraryname/00_pkg_src/libraryname/src/first
    /home/travis/build/repohandle/libraryname/00_pkg_src/libraryname/src/second
    

    我怎样才能链接到 /src/first /src/second 使用相对路径?

    比如:

    FIRST_INCLUDE_DIR="${SOME_LOCATION}/src/first/include"
    FIRST_LIBRARY="${SOME_LOCATION}/src/first/"
    SECOND_INCLUDE_DIR="${SOME_LOCATION}/src/second/include"
    SECOND_LIBRARY="${SOME_LOCATION}/src/second/include"
    
    0 回复  |  直到 7 年前