Как установить относительные пути относительно верхних подкаталогов в CMakeList.txt? - PullRequest
0 голосов
/ 27 мая 2018

Я изменяю CMakeLists.txt для компиляции библиотеки с зависимостями.Я запутался, как указать относительные пути к местоположениям, которые находятся в подкаталогах выше CMAKE_CURRENT_LIST_DIR.Обычно я бы использовал CMAKE_CURRENT_LIST_DIR для создания относительных путей или абсолютного пути.Последнее не вариант здесь.

Вот моя ситуация:

Используя 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=

В настоящее время для полного каталога обрабатываемого в данный момент списка файлов следующий

message("${CMAKE_CURRENT_LIST_DIR}")

output

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

Однако, места для FIRST и SECOND находятся здесь:

/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"
...