[grilo] build: Fix path handling in pkgconfig
- From: Victor Toso <victortoso src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [grilo] build: Fix path handling in pkgconfig
- Date: Thu, 12 Sep 2019 10:28:33 +0000 (UTC)
commit 8169d62f8db8f5509602d7f00d81e94e510cf447
Author: Jan Tojnar <jtojnar gmail com>
Date: Mon Jan 7 16:39:04 2019 +0100
build: Fix path handling in pkgconfig
On Nix, headers, introspection files and vapi files are installed to different
prefix than the library. This makes sure that the correct paths are used, thus
making the build more portable.
bindings/vala/meson.build | 10 ++--------
meson.build | 26 +++++++++++++++++++++-----
src/meson.build | 2 ++
3 files changed, 25 insertions(+), 13 deletions(-)
---
diff --git a/bindings/vala/meson.build b/bindings/vala/meson.build
index 3190f00..9c2d9c0 100644
--- a/bindings/vala/meson.build
+++ b/bindings/vala/meson.build
@@ -5,13 +5,6 @@
#
# Copyright (C) 2016 Igalia S.L. All rights reserved.
-vapidir = join_paths([
- prefix,
- get_option('datadir'),
- 'vala',
- 'vapi',
-])
-
vala_sources = [ # LIBRARY, GIR, DEPS
['grilo-@0@'.format(grl_majorminor), grl_gir[0], ['gmodule-2.0', 'gio-2.0']],
['grilo-net-@0@'.format(grl_majorminor), grlnet_gir[0], ['gio-2.0']],
@@ -26,6 +19,7 @@ foreach s: vala_sources
gnome.generate_vapi(lib,
sources: [custom_vala, gir],
packages: deps,
- install: true)
+ install: true,
+ install_dir: vapidir)
endforeach
diff --git a/meson.build b/meson.build
index 17454df..83d6db2 100644
--- a/meson.build
+++ b/meson.build
@@ -63,7 +63,7 @@ endif
enable_vala = get_option('enable-vala')
if enable_vala
- vapigen = find_program('vapigen', required: true)
+ find_program('vapigen', required: true)
endif
enable_testui = get_option('enable-test-ui')
@@ -73,9 +73,25 @@ if enable_testui
endif
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)
localedir = join_paths(prefix, get_option('localedir'))
+datadir = join_paths(prefix, get_option('datadir'))
+
+girdir = join_paths(datadir, 'gir-1.0')
+typelibdir = 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])
+ typelibdir = gobject_introspection.get_pkgconfig_variable('typelibdir', define_variable: ['libdir',
libdir])
+endif
+
+vapidir = join_paths(datadir, 'vala', 'vapi')
+vapigen = dependency('vapigen', required: false)
+if vapigen.found()
+ vapidir = vapigen.get_pkgconfig_variable('vapidir', define_variable: ['datadir', datadir])
+endif
cdata = configuration_data()
cdata.set_quoted('VERSION', grilo_version)
@@ -99,11 +115,11 @@ pkgconf = configuration_data()
pkgconf.set('prefix', prefix)
pkgconf.set('exec_prefix', '${prefix}')
pkgconf.set('libdir', libdir)
-pkgconf.set('includedir', '${prefix}/@0@'.format(get_option('includedir')))
+pkgconf.set('includedir', join_paths('${prefix}', includedir))
pkgconf.set('GRL_NAME', grl_name)
pkgconf.set('GRL_PLUGINS_DIR', plugins_dir)
-pkgconf.set('INTROSPECTION_GIRDIR', '${datarootdir}/gir-1.0')
-pkgconf.set('INTROSPECTION_TYPELIBDIR', '${libdir}/girepository-1.0'.format(get_option('libdir')))
+pkgconf.set('INTROSPECTION_GIRDIR', join_paths('${prefix}', girdir))
+pkgconf.set('INTROSPECTION_TYPELIBDIR', join_paths('${prefix}', typelibdir))
pkgconf.set('VERSION', grilo_version)
pkgconf.set('GRLNET_VERSION', grlnet_version)
pkgconf.set('GRLPLS_VERSION', grlpls_version)
@@ -114,7 +130,7 @@ foreach p: pkgconfig_files
configure_file(input: infile,
output: outfile,
configuration: pkgconf,
- install_dir: '@0@/pkgconfig'.format(get_option('libdir')))
+ install_dir: join_paths(libdir, 'pkgconfig'))
endforeach
gnome = import('gnome')
diff --git a/src/meson.build b/src/meson.build
index 36c34b3..2eb46f6 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -120,5 +120,7 @@ if enable_gir
dependencies: [ gobject_dep, gmodule_dep, gio_dep ],
includes: [ 'GObject-2.0', 'GModule-2.0', 'Gio-2.0' ],
install: true,
+ install_dir_gir: girdir,
+ install_dir_typelib: typelibdir,
extra_args: gir_extra_args)
endif
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]