summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2019-09-12 13:08:04 +0200
committerJan Tojnar <jtojnar@gmail.com>2019-09-12 13:13:53 +0200
commit1b91ebe3661dc09b46a65a8bddcb74d7b3bf9074 (patch)
tree235099c8ec76fb2b8e02c0a2a4a599d84e571a5f
parenta00a12b70f486980e315fbf924d8068fc97cad3f (diff)
downloadgrilo-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.build6
-rw-r--r--libs/pls/meson.build6
-rw-r--r--meson.build9
-rw-r--r--src/meson.build8
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,
],
)