diff options
author | Jan Tojnar <jtojnar@gmail.com> | 2019-01-07 16:39:04 +0100 |
---|---|---|
committer | Victor Toso <toso@posteo.net> | 2019-02-08 09:45:49 +0000 |
commit | 6eafdbb205128140e5ddba5a871f86ab008fb361 (patch) | |
tree | 492b036b0d76c3c9257079950b5b9f0ddb00a163 | |
parent | 335bc779ceb29afa70c1c22c14e5700d09ba7bcf (diff) | |
download | grilo-wip/jtojnar/meson-fixes.tar.gz |
build: Fix path handling in pkgconfigwip/jtojnar/meson-fixes
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.build | 10 | ||||
-rw-r--r-- | meson.build | 28 | ||||
-rw-r--r-- | src/meson.build | 2 |
3 files changed, 27 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 295939c..4a1c660 100644 --- a/meson.build +++ b/meson.build @@ -63,7 +63,7 @@ endif enable_vala = get_option('vapi') if enable_vala - vapigen = find_program('vapigen', required: true) + find_program('vapigen', required: true) endif enable_testui = get_option('test_ui') @@ -73,9 +73,27 @@ 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')) + +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]) +else + girdir = join_paths(datadir, 'gir-1.0') + typelibdir = join_paths(libdir, 'girepository-1.0') +endif + +vapigen = dependency('vapigen', required: false) +if vapigen.found() + vapidir = vapigen.get_pkgconfig_variable('vapidir', define_variable: ['datadir', datadir]) +else + vapidir = join_paths(datadir, 'vala', 'vapi') +endif cdata = configuration_data() cdata.set_quoted('VERSION', grilo_version) @@ -99,11 +117,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 +132,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 |