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


person Anatoliy Leshin    schedule 04.09.2013    source источник


Ответы (1)


В настоящее время нет скрипта поиска для доставки avahi с CMake, поэтому ваш первый пример не работает. Важно понимать, что find_package просто запускает внешний скрипт поиска, а не выполняет поиск сам по себе.

Ваш второй пример не работает, смешивая идиомы из find_library и find_package. Ознакомьтесь с документацией по find_library и find_path, который поможет вам найти необходимые библиотеки. и включить пути.

Если вы хотите, вы можете позже превратить его в сценарий поиска (посмотрите сценарии в каталоге модулей CMake, чтобы понять, как должен выглядеть такой сценарий), что позволит вам снова использовать более компактный пакет find_package для поиска библиотеки. Обратите внимание, что написание сценария поиска, который достаточно хорошо работает на разных платформах, является сложной задачей, для решения которой потребуются некоторые исследовательские усилия.

person ComicSansMS    schedule 05.09.2013
comment
Спасибо, я нашел отличную вещь cmake-modules.googlecode.com/svn/trunk /Скрипты/. - person Anatoliy Leshin; 05.09.2013