summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2019-01-07 16:39:04 +0100
committerVictor Toso <me@victortoso.com>2019-09-12 11:11:54 +0200
commit8169d62f8db8f5509602d7f00d81e94e510cf447 (patch)
treee2e331862e10f075c2a126626699b63745a6d787
parent9a5823ef452e1abf24f74089da65a1d5522ec14a (diff)
downloadgrilo-8169d62f8db8f5509602d7f00d81e94e510cf447.tar.gz
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.
-rw-r--r--bindings/vala/meson.build10
-rw-r--r--meson.build26
-rw-r--r--src/meson.build2
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