pkg-config: независимый от платформы способ узнать, где установить мой файл.pc?

Как я знаю, где установить мой файл .pc? Эти файлы хранятся в разных местах в разных операционных системах. Цель состоит в том, чтобы иметь возможность использовать что-то вроде $(INSTALL) mylib.pc $$(pkg-config --pcdir) в цели установки. я думал pkg-config мог бы сказать мне как-нибудь, но не могу ничего найти.

Я ищу "автономное" решение, которое можно использовать в простом Makefile (не требует поддержки от autotools или аналогичного).

4 ответа

Решение

ОБНОВЛЕНИЕ: Очевидно, теперь есть способ сделать это:

pkg-config --variable pc_path pkg-config

Найдено в этом отчете об ошибке (см. Комментарий № 4). Текущая справочная страница появляется, чтобы задокументировать это.

Оригинальный ответ:

Ужасное хакерское решение (в предположении раковины Борна):

pkg-config --debug 2>&1 |grep Scanning | sed -e 's/Scanning directory //' -e "s/'//g"

Это может дать вам более одного места.

отредактировано @ просто кем-то

более короткая версия

pkg-config --debug 2>&1 | sed -ne '/Scanning directory /s///p'

и остановиться после первого каталога:

pkg-config --debug 2>&1 | sed -ne '/Scanning directory /{s///p;q;}'

Начиная с pkg-config 0.24, вы можете выполнить "pkg-config --variable = pc_path pkg-config".

https://bugs.freedesktop.org/show_bug.cgi?id=14975

Он должен идти в ${libdir}/pkgconfig (то есть ${prefix}/lib/pkgconfig)

в основном, если вы устанавливаете библиотеки и они идут в $ {libdir}, тогда ваш файл.pc должен быть в $ {libdir} / pkgconfig и больше нигде.

К сожалению, для акции pkg-config установка (для версии 0.23), нет способа извлечь "путь к ПК" по умолчанию, за исключением запуска strings на двоичном (например, strings /usr/bin/pkg-config | grep '/usr/.*/pkgconfig').

Если вы можете установить пользовательскую сборку, просто исправьте ее, чтобы записать значение PKG_CONFIG_PC_PATH при запуске с соответствующей опцией.

Другой вариант, который, вероятно, не поможет вам (но я бы упомянул в любом случае для полноты), это установить PKG_CONFIG_PATH переменная окружения при вызове pkg-config,

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