Как включить libcurl в библиотеку cmake - PullRequest
0 голосов
/ 12 февраля 2020

Я создаю библиотеку cpp, в которой libcurl является зависимостью. Я хотел бы, чтобы пользователь указал путь к libcurl на своем компьютере. Каков наилучший способ сделать это?

Редактировать: Чтобы уточнить, я делаю библиотеку на windows, но я бы хотел, чтобы она была кроссплатформенной

1 Ответ

2 голосов
/ 12 февраля 2020

Исходя из вашего описания, вы должны добавить путь поиска в список путей, которые проверяет cmake, когда пытается найти пакет, вызывая [find_package]

Если вы хотите поддерживать определенный пользователем путь для связывания libcurl общего объекта (libcurl.so) его можно передать с помощью CMAKE_PREFIX_PATH из cmake команды

Пример использования

cmake -DCMAKE_PREFIX_PATH=<full_path_where_curl_is_installed> -B build -S .

Предполагается, что артефакты сборки будут находиться в подкаталоге build основного проекта (где существует верхний уровень CMakeLists.txt), а используемая версия cmake - 3.16 +

Если вы хотите встроить информацию по своему CMakeLists.txt, вы можете включить путь для curl в качестве пути поиска

Пример использования

в вашем CMakeLists.txt, добавьте следующую строку перед вызовом find_package для CURL

list(APPEND CMAKE_PREFIX_PATH <full_path_where_curl_is_installed>)

...