Хочу заменить часть скриптов на Python более быстрыми аналогами на C++. В первую очередь интересует SAX парсеры из libxml++-3.0
В дистрибутиве есть папка examples. Скомпилировать все примеры сразу получилось командой make check. Теперь нужно открыть содержимое examples/sax_parser в какой-нибудь IDE и запускать оттуда. Как выяснилось, это можно сделать десятками способов и все они нетривиальные.
В README к библиотеке упомянута только команда
$ pkg-config libxml++-3.0 --cflags --libs
-I/usr/local/include/libxml++-3.0 -I/usr/local/lib/libxml++-3.0/include -I/usr/include/libxml2 -I/usr/include/glibmm-2.4 -I/usr/lib/x86_64-linux-gnu/glibmm-2.4/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/sigc++-2.0 -I/usr/lib/x86_64-linux-gnu/sigc++-2.0/include -L/usr/local/lib -lxml++-3.0 -lxml2 -lglibmm-2.4 -lgobject-2.0 -lglib-2.0 -lsigc-2.0
Как записать результат её выполнения во что-нибудь вроде CMakeLists.txt?
Ответ
Если нужно именно добавить вывод pkg-config в cmake проект:
У Cmake есть модуль PkgConfig, который запускает и парсит вывод одноименной утилиты
find_package(PkgConfig)
pkg_search_module(LIBXML REQUIRED libxml++-3.0)
Вторая строка запишет в переменные все нужные данные(каталоги с хидерами, каталоги с библиотеками, флаги, список библиотек для линковки и т.д.)
Теперь просто используй переменные для указания всего нужного:
include_directories(${LIBXML_INCLUDE_DIRS})
compile_options(app_name ${LIBXML_CFLAGS}
link_libraries(app_name ${LIBXML_LIBRARIES}
Писал по памяти, может где неправильно что, поищи документацию FindPkgConfig
Комментариев нет:
Отправить комментарий