cmake — Использование GPGME в приложении Debian для C ++

Я хотел бы использовать GPGME для генерации ключей и шифрования в моем приложении C ++. Однако, пытаясь начать, я застрял с проблемами:

Я загрузил пакет dev для моей системы Debian. Теперь я хотел бы сказать моему компилятору (gcc в Qt Creator), где найти библиотеку с помощью cmake, используя инструмент, упомянутый в документации. Но я не знаю, как добавить gpgme-config --cflags --libs на мои флаги компилятора. Это не сработало:

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} `gpgme-config --cflags --libs` ")

Когда я пытаюсь собрать приложение, компилятор не может найти gpgme-config:

c++: error: $(gpgme-config: File or Directory not found
c++: error: unrecognized command line option ‘--cflags’
c++: error: unrecognized command line option ‘--libs)’

В любом случае выполнение gpgme-config --cflags --libs в командной строке дает мне результат:

-L/usr/lib/x86_64-linux-gnu -lgpgme -lassuan -lgpg-error

Я знаю, что в документации также упоминаются Automake и libtool, чтобы упростить этот процесс. Но я никогда не использовал Automake или libtool.


ОБНОВИТЬ:

Я также пытался использовать файл FindGpgme.cmake для GPGME. Но первый файл Я использовал несколько других файлов cmake, которые я также скачал. Я положил их в тот же каталог, что и FindGpgme.cmake. Основной файл cmake (FindGpgme.cmake) был найден, но MacroEnsureVersion и MacroBoolTo01 нет. Мое изменение к моему CMakeLists.txt было следующим:

include(cmake_modules/FindGpgme.cmake)
find_package(Gpgme)

Я пробовал относительный и абсолютный путь к другим файлам в FindGpgme.cmake. Та же проблема — cmake не может их найти. Моя вторая попытка была с файл, который я нашел на gitweb. Ошибка была:

CMake Error at cmake_modules/FindGpgme.cmake:376 (set_package_properties):
Unknown CMake command "set_package_properties".
Call Stack (most recent call first):
CMakeLists.txt:7 (include)

У меня нет абсолютно никакого клея, как это исправить set_package_properties проблема.


ОБНОВЛЕНИЕ 2

я добавил

include(FeatureSummary)

на мой CMakeLists.txt, предложенный kfunk. Теперь я получаю следующую ошибку:

Предупреждение CMake на CMakeLists.txt: 9 (find_package): не предоставляя
«FindGpgme.cmake» в CMAKE_MODULE_PATH этот проект попросил CMake
найти файл конфигурации пакета, предоставленный «Gpgme», но CMake
не нашел ни одного.

Не удалось найти файл конфигурации пакета, предоставленный «Gpgme» с
любое из следующих имен:

GpgmeConfig.cmake
gpgme-config.cmake

Добавьте префикс установки «Gpgme» в CMAKE_PREFIX_PATH или установите
«Gpgme_DIR» в каталог, содержащий один из указанных выше файлов. Если
«Gpgme» предоставляет отдельный пакет разработки или SDK, убедитесь, что
была установлена.

Даже описание сообщения выглядит довольно подробно. Я не знаю, как добавить FindGpgme.cmake в CMAKE_MODULE_PATH или как добавить запрошенный префикс в CMAKE_PREFIX_PATH, Однако пакет dev определенно установлен (с помощью менеджера пакетов)

0

Решение

Я бы посоветовал использовать подходящий скрипт поиска CMake для поиска установки GPGME:

Пример здесь:
https://quickgit.kde.org/?p=kwallet.git&а = блоб&ч = 7a092104ba0604b0606c4662750b8b32c5c3e2c6&е = CMake% 2FFindGpgme.cmake&о = равнина

Тогда что-то вроде этого в вашем коде CMake (не проверено):

find_package(Gpgme)
include_directories(${GPGME_INCLUDES})
target_link_libraries(YOURTARGET ${GPGME_VANILLA_LIBRARIES)
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]