paquete-config:¿Una forma neutral desde la plataforma de saber dónde instalar mi archivo .pc?
-
18-09-2019 - |
Pregunta
¿Cómo sé dónde instalar mi .ordenador personal ¿archivo?Estos archivos se colocan en diferentes lugares en diferentes sistemas operativos.El objetivo es poder utilizar algo como $(INSTALL) mylib.pc $$(pkg-config --pcdir)
en el destino de instalación.Pensé pkg-config
Podría decirme de alguna manera, pero no encuentro nada.
Estoy buscando una solución "independiente" que se pueda utilizar en Makefile simple (no debe requerir soporte de autotools o similar).
Solución
ACTUALIZAR: Evidentemente ahora hay una manera de hacer esto:
pkg-config --variable pc_path pkg-config
Encontrado en este informe de error (ver comentario #4).La página de manual actual parece documentar esto.
Respuesta original:
Horrible solución hackish (asumiendo Bourne Shell):
pkg-config --debug 2>&1 |grep Scanning | sed -e 's/Scanning directory //' -e "s/'//g"
Esto puede brindarle más de una ubicación.
editar por @sólo alguien
versión más corta
pkg-config --debug 2>&1 | sed -ne '/Scanning directory /s///p'
y detenerse después del primer directorio:
pkg-config --debug 2>&1 | sed -ne '/Scanning directory /{s///p;q;}'
Otros consejos
A partir de PKG-config 0,24, se puede hacer "pkg-config = --variable pc_path pkg-config".
que debe entrar en $ {} libdir / pkgconfig (es decir, $ {prefix} / lib / pkgconfig)
básicamente si instala bibliotecas y se van en $ {} libdir entonces su archivo .pc debe estar en $ {} libdir / pkgconfig y en ninguna otra parte.
Por desgracia, para una instalación de pkg-config
(para la versión 0.23), no hay manera de extraer el "camino PC" por defecto, sin llegar a correr strings
en el binario (por ejemplo, strings /usr/bin/pkg-config | grep '/usr/.*/pkgconfig'
).
Si usted es capaz de instalar una estructura de encargo, solo parche para escribir el valor de PKG_CONFIG_PC_PATH
cuando se ejecuta con la opción adecuada.
Otra opción, que probablemente no le ayudará (pero que me gustaría mencionar de todos modos por completo), es establecer la variable de entorno PKG_CONFIG_PATH
al llamar pkg-config
.