Найти libavahi с помощью cmake
Мне нужно добавить libavahi-client3 к зависимости cmake моего проекта. Также необходимо проверить наличие libavahi-client3 и libavahi-common3. Проблемы только с текущей библиотекой (avahi)
Попытка сделать эти вещи:
find_package(libavahi-common3)
if(NOT libavahi-common3_FOUND)
message(ERROR " libavahi-common3 is not found")
endif(NOT libavahi-common3_FOUND)
ИЛИ этот вариант:
find_library(AVAHI_COMMON_LIBRARY NAMES libavahi-common3)
if(NOT AVAHI_COMMON_LIBRARY_FOUND)
message(ERROR " libavahi-common3 is not found")
endif(NOT AVAHI_COMMON_LIBRARY_FOUND)
Оба не работают, я искал что-то вроде findAvahi.cmake, но ничего не нашел. Так я должен написать свой собственный модуль поиска или есть другой лучший вариант?
1 ответ
В настоящее время нет сценария поиска для доставки avahi с CMake, поэтому ваш первый пример не работает. Важно понимать, что find_package
просто запускает внешний скрипт поиска, он не выполняет поиск сам по себе.
Ваш второй пример не работает, смешивая идиомы из find_library
а также find_package
, Пожалуйста, ознакомьтесь с документацией find_library и find_path, которая поможет вам найти необходимые библиотеки и включить пути.
Если вы хотите, вы можете позже превратить это в скрипт поиска (посмотрите скрипты в каталоге модулей CMake, чтобы понять, как должен выглядеть такой скрипт), что позволит вам использовать более компактный find_package для повторного поиска библиотеки. Обратите внимание, что написание скрипта find, который достаточно хорошо работает на разных платформах, является сложной задачей, которая потребует некоторых исследований, чтобы сделать это правильно.