Commit ad9e5995 authored by Thomas Haller's avatar Thomas Haller

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
parent dfb899f4
Pipeline #31743 failed with stages
in 4 minutes and 49 seconds
......@@ -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',
......
......@@ -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(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment