diff --git a/doc/meson.build b/doc/meson.build new file mode 100644 index 000000000..020092c5c --- /dev/null +++ b/doc/meson.build @@ -0,0 +1,100 @@ +# manpage +subdir('man') + +# Reference manual +subdir('xml') + +version_conf = configuration_data() +version_conf.set('VERSION', meson.project_version()) +version_xml = configure_file( + input: 'version.xml.in', + output: 'version.xml', + configuration: version_conf +) + +reference_ignored_headers = [ + 'config.h', + + 'bell.h', + 'boxes-private.h', + 'compositor-private.h', + 'core.h', + 'constraints.h', + 'display-private.h', + 'frame.h', + 'frames.h', + 'group-private.h', + 'keybindings-private.h', + 'main.h', + 'meta-backend-private.h', + 'meta-background-private.h', + 'meta-barrier-private.h', + 'meta-dnd-actor-private.h', + 'meta-dnd-private.h', + 'meta-feedback-actor-private.h', + 'meta-gesture-tracker-private.h', + 'meta-idle-monitor-private.h', + 'meta-input-mapper-private.h', + 'meta-input-settings-private.h', + 'meta-monitor-manager-private.h', + 'meta-remote-access-controller-private.h', + 'meta-settings-private.h', + 'meta-shaped-texture-private.h', + 'meta-stage-private.h', + 'meta-wayland-private.h', + 'meta-window-actor-private.h', + 'meta-window-group-private.h', + 'meta-xwayland-private.h', + 'meta-xwayland-selection-private.h', + 'theme-private.h', + 'util-private.h', + 'window-private.h', + 'window-x11-private.h', + 'workspace-private.h', + # Test headers + 'meta-backend-test.h', + 'meta-monitor-manager-test.h', + 'meta-wayland-egl-stream.h', + 'meta-wayland-inhibit-shortcuts.h', + 'meta-wayland-text-input.h', + 'meta-xwayland-grab-keyboard.h', +] + +# Make sure we ignore the wayland headers +if have_wayland + foreach proto : wayland_protocols + protocol_name = proto[0] + protocol_type = proto[1] + if protocol_type == 'stable' + output_base = protocol_name + elif protocol_type == 'private' + output_base = protocol_name + elif protocol_type == 'third-party' + output_base = protocol_name + else + protocol_version = proto[2] + output_base = '@0@-@1@-@2@'.format(protocol_name, + protocol_type, + protocol_version) + endif + + proto_header = '@0@-server-protocol.h'.format(output_base) + reference_ignored_headers += proto_header + endforeach +endif + + +gnome.gtkdoc(meson.project_name(), + main_sgml: 'mutter-docs.sgml', + src_dir: [ + include_directories('../src'), + ], + dependencies: _libmutter_public_symbols_dep, + gobject_typesfile: 'mutter.types', + scan_args: [ + '--rebuild-types', + '--ignore-headers=' + ' '.join(reference_ignored_headers), + '--ignore-decorators=META_EXPORT|META_EXPORT_TEST', + ], + install: true, +) diff --git a/doc/mutter-docs.sgml b/doc/mutter-docs.sgml new file mode 100644 index 000000000..0fefb386e --- /dev/null +++ b/doc/mutter-docs.sgml @@ -0,0 +1,110 @@ + + + + %gtkdocentities; +]> + + + Mutter Reference Manual + + For &package_string;. + The latest version of this documentation can be found on-line at + http://[SERVER]/&package_name;/. + + + + + General + + + + + + + + Clutter actors + + + + + + + + + + Plugins + + + + + + Cursor management + + + + + + + + Monitor management + + + + + + + + + + X11 + + + + + + + + Native / Wayland + + + + + + + + + Screencast + + + + + + + + + + + + + Remote desktop + + + + + + Object Hierarchy + + + + API Index + + + + Index of deprecated API + + + + diff --git a/doc/version.xml.in b/doc/version.xml.in new file mode 100644 index 000000000..d78bda934 --- /dev/null +++ b/doc/version.xml.in @@ -0,0 +1 @@ +@VERSION@ diff --git a/doc/xml/gtkdocentities.ent.in b/doc/xml/gtkdocentities.ent.in new file mode 100644 index 000000000..d2a068a17 --- /dev/null +++ b/doc/xml/gtkdocentities.ent.in @@ -0,0 +1,7 @@ + + + + + + + diff --git a/doc/xml/meson.build b/doc/xml/meson.build new file mode 100644 index 000000000..c8e4b8d51 --- /dev/null +++ b/doc/xml/meson.build @@ -0,0 +1,13 @@ +gtkdoc_entities_cdata = configuration_data() +gtkdoc_entities_cdata.set_quoted('PACKAGE', meson.project_name()) +gtkdoc_entities_cdata.set_quoted('PACKAGE_BUGREPORT', 'https://gitlab.gnome.org/GNOME/mutter/issues/new') +gtkdoc_entities_cdata.set_quoted('PACKAGE_NAME', meson.project_name()) +gtkdoc_entities_cdata.set_quoted('PACKAGE_STRING', '@0@ - @1@'.format(meson.project_name(), meson.project_version())) +gtkdoc_entities_cdata.set_quoted('PACKAGE_TARNAME', 'mutter.tar.xz') +gtkdoc_entities_cdata.set_quoted('PACKAGE_URL', 'https://gitlab.gnome.org/GNOME/mutter/') +gtkdoc_entities_cdata.set_quoted('PACKAGE_VERSION', meson.project_version()) +configure_file( + input: 'gtkdocentities.ent.in', + output: 'gtkdocentities.ent', + configuration: gtkdoc_entities_cdata, +) diff --git a/meson.build b/meson.build index 6ce9e59f2..8d2889210 100644 --- a/meson.build +++ b/meson.build @@ -370,7 +370,7 @@ subdir('clutter') subdir('data') subdir('src') subdir('po') -subdir('doc/man') +subdir('doc') output = [ '', diff --git a/src/backends/meta-cursor-tracker.c b/src/backends/meta-cursor-tracker.c index 6b7849d55..dd7db16c8 100644 --- a/src/backends/meta-cursor-tracker.c +++ b/src/backends/meta-cursor-tracker.c @@ -20,7 +20,7 @@ */ /** - * SECTION:cursor-tracker + * SECTION:meta-cursor-tracker * @title: MetaCursorTracker * @short_description: Mutter cursor tracking helper. Originally only * tracking the cursor image, now more of a "core diff --git a/src/meson.build b/src/meson.build index 9919b5cfb..f1208ee91 100644 --- a/src/meson.build +++ b/src/meson.build @@ -778,6 +778,32 @@ libmutter_dep = declare_dependency( ], ) +# Interal library for gtk-doc (we need symbol visibility) +_libmutter_public_symbols = library(libmutter_name + '-public-symbols', + sources: [ + mutter_sources, + mutter_built_sources, + ], + include_directories: mutter_includes, + c_args: mutter_c_args, + dependencies: [ + libmutter_cogl_dep, + libmutter_clutter_dep, + mutter_deps, + ], +) + +_libmutter_public_symbols_dep = declare_dependency( + link_with: _libmutter_public_symbols, + include_directories: mutter_includes, + sources: mutter_built_sources, + dependencies: [ + libmutter_cogl_dep, + libmutter_clutter_dep, + mutter_deps, + ], +) + executable('mutter', sources: [ files('core/mutter.c'),