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

时间:2018-05-27 16:42:11

标签: c++ cmake relative-path

我正在修改CMakeLists.txt以编译具有依赖项的库。我很困惑如何提供位于CMAKE_CURRENT_LIST_DIR以上子目录中的位置的相对路径。通常,我会使用CMAKE_CURRENT_LIST_DIR来创建相对路径,或使用绝对路径。后者在这里不是一个选择。

这是我的情况:

使用CMakeLists.txt,它目前无法通过

找到其他库(此处为FIRSTSECONDTHIRD
find_package(FIRST REQUIRED)
find_package(SECOND REQUIRED)

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

FIRST_INCLUDE_DIR=
FIRST_LIBRARY=
SECOND_INCLUDE_DIR=
SECOND_LIBRARY=

目前,对于当前正在处理的列表文件的完整目录,请参阅以下内容

message("${CMAKE_CURRENT_LIST_DIR}")

输出

/家庭/特拉维斯/建造/ repohandle /库名称/ 00_pkg_src /库名称/ SRC /包

但是,FIRSTSECOND的位置位于:

/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 个答案:

没有答案