build: meson: fix generation of api docs
We need to copy all introspection files to the same directory when building the documentation. Note that we only require Meson 0.44, but for the documentation at least 0.46 is needed because of a new functionality of gnome.gdbus_codegen(). In this way we can still build on Travis CI (without documentation).
This commit is contained in:
@@ -21,6 +21,23 @@ configure_file(
|
||||
)
|
||||
|
||||
content_files += join_paths(meson.source_root(), 'COPYING')
|
||||
filecopier = find_program('cp')
|
||||
foreach intro : introspection_files
|
||||
path = intro.full_path().split('/')[-1]
|
||||
custom_target(path,
|
||||
input: intro,
|
||||
output: path,
|
||||
command : [filecopier, '@INPUT@', '@OUTPUT@'],
|
||||
build_by_default: true,
|
||||
)
|
||||
endforeach
|
||||
|
||||
custom_target('common.ent',
|
||||
input: common_ent_file,
|
||||
output: 'common.ent',
|
||||
command: [filecopier, '@INPUT@', '@OUTPUT@'],
|
||||
build_by_default: true,
|
||||
)
|
||||
|
||||
gnome.gtkdoc(
|
||||
doc_module,
|
||||
|
@@ -53,6 +53,7 @@ ifaces = [
|
||||
|
||||
ifaces_xmls = []
|
||||
sources = []
|
||||
introspection_files = []
|
||||
|
||||
# FIXME?: DBUS_INTERFACE_DOCS/docbook files are generated in
|
||||
# "meson.current_build_dir()" instead of "meson.source_root()/docs/api"
|
||||
@@ -60,7 +61,7 @@ foreach iface: ifaces
|
||||
iface_xml = iface + '.xml'
|
||||
ifaces_xmls += files(iface_xml)
|
||||
|
||||
sources += gnome.gdbus_codegen(
|
||||
res = gnome.gdbus_codegen(
|
||||
iface,
|
||||
iface_xml,
|
||||
interface_prefix: 'org.freedesktop.NetworkManager',
|
||||
@@ -68,8 +69,15 @@ foreach iface: ifaces
|
||||
docbook: 'dbus'
|
||||
)
|
||||
|
||||
# FIXME: gnome.gdbus_codegen should return the docbook as a target result
|
||||
sources += res
|
||||
|
||||
content_files += join_paths(meson.current_build_dir(), 'dbus-' + iface_xml)
|
||||
|
||||
# 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]
|
||||
endif
|
||||
endforeach
|
||||
|
||||
install_data(
|
||||
|
@@ -48,8 +48,6 @@ if enable_ovs
|
||||
mans += [['nm-openvswitch', '7']]
|
||||
endif
|
||||
|
||||
content_files += join_paths(meson.current_build_dir(), 'common.ent')
|
||||
|
||||
foreach man: mans
|
||||
input = man[0] + '.xml'
|
||||
content_files += join_paths(meson.current_source_dir(), input)
|
||||
|
@@ -879,6 +879,7 @@ enable_docs = get_option('docs')
|
||||
|
||||
if enable_docs
|
||||
assert(enable_introspection, '-Ddocs=true requires -Dintrospection=true')
|
||||
assert(meson.version().version_compare('>= 0.46.0'), '-Ddocs requires meson >= 0.46')
|
||||
subdir('man')
|
||||
subdir('docs')
|
||||
endif
|
||||
|
Reference in New Issue
Block a user