Я пытаюсь использовать ExternalProject_add() для загрузки/установки зависимостей. Он устанавливает отлично, но я не могу понять, как на самом деле связывать библиотеки после их загрузки.
Я хочу вызвать target_link_libraries() в только что загруженной библиотеке, но путь к библиотеке зависит от системы.
Если это была системная зависимость, я мог бы просто вызвать find_package() - но пакеты не были установлены по пути поиска по умолчанию. Я не думаю, что вы можете указать путь поиска для find_package в режиме модуля.
Вот фрагмент моего CMakeLists.txt, который не работает:
ExternalProject_Add(
protobuf
URL http://protobuf.googlecode.com/files/protobuf-2.4.1.tar.gz
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR>
PREFIX ${MYPROJ_SOURCE_DIR}/dependencies
)
find_package(protobuf REQUIRED)
set(LIBS ${LIBS} ${PROTOBUF_LIBRARIES})
target_link_libraries (mybinary ${LIBS})