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

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

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

Ответы [ 4 ]

11 голосов
/ 07 сентября 2010

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

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

5 голосов
/ 02 марта 2010

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

pkg-config --variable pc_path pkg-config

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

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

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

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

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

edit от @just somebody

укороченная версия

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

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

pkg-config --debug 2>&1 | sed -ne '/Scanning directory /{s///p;q;}'
3 голосов
/ 28 мая 2010

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

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

1 голос
/ 01 марта 2010

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

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

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

...