J'utilise meson dans quelques projets C (projectA
et projectB
), où projectB
liens à une bibliothèque de projectA
. Dans projectA/meson.build
, j'ai écrit un fichier pkg-config
projectA.pc
en utilisant le meson, qui est installé à join_paths(get_option('prefix'), get_option('libdir'), 'pkgconfig')
comme prévu. J'utilise dependency('projectA')
pour rechercher le fichier projectA.pc
.Définir PKG_CONFIG_PATH à l'intérieur de meson.build
Lorsque j'utilise est incapable de trouver le préfixe d'installation personnalisé pour construire projectA
et projectB
, meson
projectA.pc
lors de la construction projectB
. Y at-il un moyen de spécifier un PKG_CONFIG_PATH
de projectB/meson.build
?
Ce numéro est reproduit avec ce exemple minimal:
projeta/meson.build:
project('projectA', 'c', version: '1')
pkg = import('pkgconfig')
pkg.generate(name : 'projectA',
description: 'ProjectA',
version: meson.project_version())
ProjectB/meson.build:
project('projectB', 'c', version: '1')
dep = dependency('projectA')
Commandes :
meson buildA projectA --prefix=$PWD/install
(cd buildA && ninja install)
#[0/1] Installing files.
#Installing /tmp/test/buildA/meson-private/projectA.pc to /tmp/test/install/lib/x86_64-linux-gnu/pkgconfig
# [ The error: ]
meson buildB projectB --prefix=$PWD/install
#Native dependency 'projectA' not found
# [ My workaround: ]
PKG_CONFIG_PATH="$PWD/install/lib/x86_64-linux-gnu/pkgconfig" meson buildB projectB --prefix=$PWD/install
# Native dependency projectA found: YES 1
Est-il possible de dire que projectB/meson.build
dependency()
devrait se pencher sur join_paths(get_option('prefix'), get_option('libdir'), 'pkgconfig')
?
je tentais d'avoir une variable d'environnement définie à l'intérieur du méson dependency()
appel, mais l'argument env
n'existe pas pour dependency()
:
pkgconfigpath = join_paths(get_option('prefix'), get_option('libdir'), 'pkgconfig')
message('pkgconfig: @[email protected]'.format(pkgconfigpath))
env_pkgconfig = environment()
env_pkgconfig.set('PKG_CONFIG_PATH', pkgconfigpath)
projectA_dep = dependency('projectA', env: env_pkgconfig)
Malheureusement l'argument env:
dans la dépendance est ignoré (il n'existe pas les docs). L'ajout du répertoire $ {prefix}/$ {libdir}/pkgconfig à PKG_CONFIG_PATH à partir du meson a du sens pour moi. Y a-t-il un moyen de le faire?