summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2019-04-18 12:45:50 +0200
committerThomas Haller <thaller@redhat.com>2019-04-18 20:18:17 +0200
commitad9e5995e144c1a123ed1ba7a5f7fde54a83fc73 (patch)
treea6f41a67f4cdaa28530ad32f738645aa7c4a96f3
parentdfb899f465e0e112daf45ca5f9499aab27fcf524 (diff)
downloadNetworkManager-ad9e5995e144c1a123ed1ba7a5f7fde54a83fc73.tar.gz
build/meson: fix location of introspection files
With glib < 2.51.3, gdbus-codegen does not understand "--output-directory" [1]. Hence, the generated files are like "build/dbus-org.freedesktop.NetworkManager.Device.WifiP2P.xml" instead of "build/introspection/dbus-org.freedesktop.NetworkManager.Device.WifiP2P.xml" But gnome.gdbus_codegen() returns a path as if it would be inside "build/introspection". Hack around that, by patching the correct path otherwise. This is still ugly, because repeated "ninja -C build" calls will always try to rebuild this target (because the wrong file name is considered). See also [2]. [1] https://gitlab.gnome.org/GNOME/glib/commit/ee09bb704fe9ccb24d92dd86696a0e6bb8f0dc1a [2] https://github.com/mesonbuild/meson/blob/2e93ed58c30d63da8527ff16375ff9e0642e7533/mesonbuild/modules/gnome.py#L1170
-rw-r--r--docs/api/meson.build8
-rw-r--r--introspection/meson.build11
2 files changed, 13 insertions, 6 deletions
diff --git a/docs/api/meson.build b/docs/api/meson.build
index 609e4ce844..6b3a0fa772 100644
--- a/docs/api/meson.build
+++ b/docs/api/meson.build
@@ -23,13 +23,13 @@ configure_file(
content_files += join_paths(meson.source_root(), 'COPYING')
filecopier = find_program('cp')
foreach intro : introspection_files
- path = intro.full_path().split('/')[-1]
+ path = intro[1].split('/')[-1]
custom_target(path,
- input: intro,
+ input: intro[0],
output: path,
- command : [filecopier, '@INPUT@', '@OUTPUT@'],
+ command: [filecopier, intro[1], '@OUTPUT@'],
build_by_default: true,
-)
+ )
endforeach
custom_target('common.ent',
diff --git a/introspection/meson.build b/introspection/meson.build
index e442ac85f8..631432a7a2 100644
--- a/introspection/meson.build
+++ b/introspection/meson.build
@@ -73,13 +73,20 @@ foreach iface: ifaces
sources += res
- content_files += join_paths(meson.current_build_dir(), 'dbus-' + iface_xml)
+ if gio_unix_dep.version().version_compare('>= 2.51.3')
+ dbus_iface_xml_path = join_paths(meson.current_build_dir(), 'dbus-' + iface_xml)
+ else
+ dbus_iface_xml_path = join_paths(meson.build_root(), 'dbus-' + iface_xml)
+ endif
+
+ content_files += dbus_iface_xml_path
# res is an array only since 0.46. Documentation won't work with
# older versions
if meson.version().version_compare('>= 0.46.0')
- introspection_files += res[2]
+ introspection_files += [ [res[2], dbus_iface_xml_path] ]
endif
+
endforeach
install_data(