diff options
author | Jan Tojnar <jtojnar@gmail.com> | 2019-09-12 13:08:04 +0200 |
---|---|---|
committer | Jan Tojnar <jtojnar@gmail.com> | 2019-09-12 13:13:53 +0200 |
commit | 1b91ebe3661dc09b46a65a8bddcb74d7b3bf9074 (patch) | |
tree | 235099c8ec76fb2b8e02c0a2a4a599d84e571a5f | |
parent | a00a12b70f486980e315fbf924d8068fc97cad3f (diff) | |
download | grilo-1b91ebe3661dc09b46a65a8bddcb74d7b3bf9074.tar.gz |
build: Use variables in pc files
Recently, we started prefixing the values of all variables defined in pc files
with `prefix` meson variable. While this works even when `datadir` option is
absolute (supported by some meson forks), it leads to inflexible pc files even
when prefixing is not strictly necessary.
In this commit, we are constructing variables for pkg-config files separately
from paths used for installation, obtaining nice .pc files in the common case,
while still supporting unusual platforms like Nix.
-rw-r--r-- | libs/net/meson.build | 6 | ||||
-rw-r--r-- | libs/pls/meson.build | 6 | ||||
-rw-r--r-- | meson.build | 9 | ||||
-rw-r--r-- | src/meson.build | 8 |
4 files changed, 18 insertions, 11 deletions
diff --git a/libs/net/meson.build b/libs/net/meson.build index 56c923c..c366adf 100644 --- a/libs/net/meson.build +++ b/libs/net/meson.build @@ -52,10 +52,10 @@ grlnet_pc = pkgconfig.generate(libgrlnet, version: grlnet_version, variables: [ 'exec_prefix=${prefix}', - 'datarootdir=' + join_paths('${prefix}', datadir), + 'datarootdir=' + datadir_for_pc_file, 'datadir=${datarootdir}', - 'girdir=' + girdir, - 'typelibdir=' + typelibdir, + 'girdir=' + girdir_for_pc_file, + 'typelibdir=' + typelibdir_for_pc_file, ], ) diff --git a/libs/pls/meson.build b/libs/pls/meson.build index 5915806..dc5ca7c 100644 --- a/libs/pls/meson.build +++ b/libs/pls/meson.build @@ -37,10 +37,10 @@ grlpls_pc = pkgconfig.generate(libgrlpls, version: grlpls_version, variables: [ 'exec_prefix=${prefix}', - 'datarootdir=' + join_paths('${prefix}', datadir), + 'datarootdir=' + datadir_for_pc_file, 'datadir=${datarootdir}', - 'girdir=' + girdir, - 'typelibdir=' + typelibdir, + 'girdir=' + girdir_for_pc_file, + 'typelibdir=' + typelibdir_for_pc_file, ], ) diff --git a/meson.build b/meson.build index 6f2691d..a3e632e 100644 --- a/meson.build +++ b/meson.build @@ -76,15 +76,22 @@ prefix = get_option('prefix') includedir = join_paths(prefix, get_option('includedir')) libdir = join_paths(prefix, get_option('libdir')) plugins_dir = join_paths(libdir, grl_name) +plugins_dir_for_pc_file = join_paths('${libdir}', grl_name) localedir = join_paths(prefix, get_option('localedir')) -datadir = join_paths(prefix, get_option('datadir')) +datadir_unprefixed = get_option('datadir') +datadir = join_paths(prefix, datadir_unprefixed) +datadir_for_pc_file = join_paths('${prefix}', datadir_unprefixed) girdir = join_paths(datadir, 'gir-1.0') +girdir_for_pc_file = join_paths('${datadir}', 'gir-1.0') typelibdir = join_paths(libdir, 'girepository-1.0') +typelibdir_for_pc_file = join_paths('${libdir}', 'girepository-1.0') gobject_introspection = dependency('gobject-introspection-1.0', required: false) if gobject_introspection.found() girdir = gobject_introspection.get_pkgconfig_variable('girdir', define_variable: ['datadir', datadir]) + girdir_for_pc_file = gobject_introspection.get_pkgconfig_variable('girdir', define_variable: ['datadir', '${datadir}']) typelibdir = gobject_introspection.get_pkgconfig_variable('typelibdir', define_variable: ['libdir', libdir]) + typelibdir_for_pc_file = gobject_introspection.get_pkgconfig_variable('typelibdir', define_variable: ['libdir', '${libdir}']) endif vapidir = join_paths(datadir, 'vala', 'vapi') diff --git a/src/meson.build b/src/meson.build index 8efe589..10fd390 100644 --- a/src/meson.build +++ b/src/meson.build @@ -116,11 +116,11 @@ grl_pc = pkgconfig.generate(libgrl, version: grilo_version, variables: [ 'exec_prefix=${prefix}', - 'datarootdir=' + join_paths('${prefix}', datadir), + 'datarootdir=' + datadir_for_pc_file, 'datadir=${datarootdir}', - 'girdir=' + girdir, - 'typelibdir=' + typelibdir, - 'plugindir=' + plugins_dir, + 'girdir=' + girdir_for_pc_file, + 'typelibdir=' + typelibdir_for_pc_file, + 'plugindir=' + plugins_dir_for_pc_file, ], ) |