Я изменяю 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"