Найти 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, который достаточно хорошо работает на разных платформах, является сложной задачей, которая потребует некоторых исследований, чтобы сделать это правильно.

Другие вопросы по тегам