diff --git a/docs/reference/meson.build b/docs/reference/meson.build index 77d9fdee4..be92d0297 100644 --- a/docs/reference/meson.build +++ b/docs/reference/meson.build @@ -1,5 +1,18 @@ -version_conf = configuration_data() -version_conf.set('VERSION', meson.project_version()) +gidocgen = find_program('gi-docgen', required: get_option('gtk_doc')) + +doc_conf = configuration_data() +doc_conf.set('MUTTER_API_VERSION', mutter_api_version) + +gi_docgen_common_args = [ + '--quiet', + '--no-namespace-dir', +] + +if get_option('werror') + gi_docgen_common_args += ['--fatal-warnings'] +endif + +docs_dir = datadir / 'doc' subdir('shell') subdir('st') diff --git a/docs/reference/shell/meson.build b/docs/reference/shell/meson.build index 96b0d087d..4ea7069e5 100644 --- a/docs/reference/shell/meson.build +++ b/docs/reference/shell/meson.build @@ -1,51 +1,25 @@ -private_headers = [ - 'gactionmuxer.h', - 'gactionobservable.h', - 'gactionobserver.h', - 'shell-network-agent.h', -] - -exclude_directories = [ - 'calendar-server', - 'hotplug-sniffer', - 'st', - 'tray' -] - -ifaces = [ - ['org.gnome.Shell.Screenshot', 'org.gnome.Shell.Screenshot.xml'], - ['org.gnome.ShellSearchProvider', 'org.gnome.Shell.SearchProvider.xml'], - ['org.gnome.ShellSearchProvider2', 'org.gnome.Shell.SearchProvider2.xml'] -] -foreach iface : ifaces - custom_target(iface[0] + ' docs', - input: '../../../data/dbus-interfaces/@0@.xml'.format(iface[0]), - output: 'doc-gen-' + iface[1], - command: [ - 'gdbus-codegen', - '--interface-prefix=@0@.'.format(iface[0]), - '--generate-docbook', 'doc-gen', - '--output-directory', '@OUTDIR@', - '@INPUT@' - ], - build_by_default: true - ) -endforeach - -configure_file( - input: 'version.xml.in', - output: 'version.xml', - configuration: version_conf +shell_toml = configure_file( + input: 'shell.toml.in', + output: 'shell.toml', + configuration: doc_conf ) -gnome.gtkdoc('shell', - main_sgml: 'shell-docs.sgml', - src_dir: [ - join_paths(meson.project_source_root(), 'src'), - join_paths(meson.project_build_root(), 'src') +custom_target('shell-doc', + input: [shell_toml, libshell_gir[0]], + output: 'shell', + command: [ + gidocgen, + 'generate', + gi_docgen_common_args, + '--add-include-path=@0@'.format(meson.current_build_dir() / '../../../src'), + '--add-include-path=@0@'.format(meson.current_build_dir() / '../../../src/st'), + '--add-include-path=@0@'.format(mutter_dep.get_variable('girdir')), + '--add-include-path=@0@'.format(meson.current_build_dir() / '../../../subprojects/gvc'), + '--config=@INPUT0@', + '--output-dir=@OUTPUT@', + '--content-dir=@0@'.format(meson.current_source_dir()), + '@INPUT1@', ], - scan_args: [ - '--ignore-headers=' + ' '.join(private_headers + exclude_directories) - ], - install: true + install: true, + install_dir: docs_dir, ) diff --git a/docs/reference/shell/shell-docs.sgml b/docs/reference/shell/shell-docs.sgml deleted file mode 100644 index 04255cd01..000000000 --- a/docs/reference/shell/shell-docs.sgml +++ /dev/null @@ -1,67 +0,0 @@ - - - -]> - - - Shell Reference Manual - - for Shell &version;. - - - - - - Actors - - - - Application tracking - - - - - - Search - - - - Tray Icons - - - - - Integration helpers and utilities - - - - - - - - - - - - - API Index - - - - Index of deprecated API - - - - - diff --git a/docs/reference/shell/shell.toml.in b/docs/reference/shell/shell.toml.in new file mode 100644 index 000000000..565fc8d69 --- /dev/null +++ b/docs/reference/shell/shell.toml.in @@ -0,0 +1,41 @@ +[library] +namespace = "Shell" +version = "@MUTTER_API_VERSION@" +browse_url = "https://gitlab.gnome.org/GNOME/gnome-shell/" +repository_url = "https://gitlab.gnome.org/GNOME/gnome-shell.git" +website_url = "https://www.gnome.org" +license = "GPL-2.0-or-later" +description = "Shell" +dependencies = ["GObject-2.0", "Gio-2.0", "Meta-@MUTTER_API_VERSION@", "Clutter-@MUTTER_API_VERSION@"] +devhelp = true +search_index = true + + [dependencies."GObject-2.0"] + name = "GObject" + description = "The base type system library" + docs_url = "https://docs.gtk.org/gobject" + + [dependencies."Gio-2.0"] + name = "Gio" + description = "GObject Interfaces and Objects, Networking, IPC, and I/O" + docs_url = "https://docs.gtk.org/gio" + + [dependencies."Meta-@MUTTER_API_VERSION@"] + name = "Meta" + description = "The mutter display server, window manager and compositor library" + docs_url = "https://gnome.pages.gitlab.gnome.org/mutter/meta/" + + [dependencies."Clutter-@MUTTER_API_VERSION@"] + name = "Clutter" + description = "An OpenGL based 'interactive canvas' library" + docs_url = "https://gnome.pages.gitlab.gnome.org/mutter/clutter/" + +[theme] +name = "basic" +show_index_summary = true + +[source-location] +base_url = "https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/HEAD/" + +[extra] +urlmap_file = "urlmap.js" diff --git a/docs/reference/shell/urlmap.js b/docs/reference/shell/urlmap.js new file mode 100644 index 000000000..85f05ecc5 --- /dev/null +++ b/docs/reference/shell/urlmap.js @@ -0,0 +1,11 @@ +baseURLs = [ + [ 'GLib', 'https://docs.gtk.org/glib/' ], + [ 'GObject', 'https://docs.gtk.org/gobject/' ], + [ 'Gio', 'https://docs.gtk.org/gio/' ], + [ 'GdkPixbuf', 'https://docs.gtk.org/gdk-pixbuf/' ], + [ 'Meta', 'https://gnome.pages.gitlab.gnome.org/mutter/meta/' ], + [ 'Mtk', 'https://gnome.pages.gitlab.gnome.org/mutter/mtk/' ], + [ 'Cogl', 'https://gnome.pages.gitlab.gnome.org/mutter/cogl/' ], + [ 'Clutter', 'https://gnome.pages.gitlab.gnome.org/mutter/clutter/' ], + [ 'St', 'https://gnome.pages/gitlab.gnome.org/gnome-shell/st/' ], +] diff --git a/docs/reference/shell/version.xml.in b/docs/reference/shell/version.xml.in deleted file mode 100644 index d78bda934..000000000 --- a/docs/reference/shell/version.xml.in +++ /dev/null @@ -1 +0,0 @@ -@VERSION@ diff --git a/docs/reference/st/meson.build b/docs/reference/st/meson.build index 0c4b4207b..ad63a9456 100644 --- a/docs/reference/st/meson.build +++ b/docs/reference/st/meson.build @@ -1,23 +1,24 @@ -private_headers = [ - 'st-private.h', - 'st-theme-node-private.h' -] - -configure_file( - input: 'version.xml.in', - output: 'version.xml', - configuration: version_conf +st_toml = configure_file( + input: 'st.toml.in', + output: 'st.toml', + configuration: doc_conf ) -gnome.gtkdoc('st', - main_sgml: 'st-docs.sgml', - src_dir: [ - join_paths(meson.project_source_root(), 'src', 'st'), - join_paths(meson.project_build_root(), 'src', 'st') +custom_target('st-doc', + input: [st_toml, libst_gir[0]], + output: 'st', + command: [ + gidocgen, + 'generate', + gi_docgen_common_args, + '--add-include-path=@0@'.format(meson.current_build_dir() / '../../../src'), + '--add-include-path=@0@'.format(meson.current_build_dir() / '../../../src/st'), + '--add-include-path=@0@'.format(mutter_dep.get_variable('girdir')), + '--config=@INPUT0@', + '--output-dir=@OUTPUT@', + '--content-dir=@0@'.format(meson.current_source_dir()), + '@INPUT1@', ], - scan_args: [ - '--ignore-headers=' + ' '.join(private_headers), - '--rebuild-sections' - ], - install: true + install: true, + install_dir: docs_dir, ) diff --git a/docs/reference/st/st-docs.sgml b/docs/reference/st/st-docs.sgml deleted file mode 100644 index 4e5fd9997..000000000 --- a/docs/reference/st/st-docs.sgml +++ /dev/null @@ -1,69 +0,0 @@ - - - -]> - - - St Reference Manual - - for St &version;. - - - - - - API reference - - Abstract classes and Interfaces - - - - - - Widgets - - - - - - - - Containers - - - - - - - Styling - - - - - - - - - - - API Index - - - - Index of deprecated API - - - - - diff --git a/docs/reference/st/st.toml.in b/docs/reference/st/st.toml.in new file mode 100644 index 000000000..c1f35c7f3 --- /dev/null +++ b/docs/reference/st/st.toml.in @@ -0,0 +1,36 @@ +[library] +namespace = "St" +version = "@MUTTER_API_VERSION@" +browse_url = "https://gitlab.gnome.org/GNOME/gnome-shell/" +repository_url = "https://gitlab.gnome.org/GNOME/gnome-shell.git" +website_url = "https://www.gnome.org" +license = "LGPL-2.0-or-later" +description = "Shell Toolkit" +dependencies = ["GObject-2.0", "Gio-2.0", "Clutter-@MUTTER_API_VERSION@"] +devhelp = true +search_index = true + + [dependencies."GObject-2.0"] + name = "GObject" + description = "The base type system library" + docs_url = "https://docs.gtk.org/gobject" + + [dependencies."Gio-2.0"] + name = "Gio" + description = "GObject Interfaces and Objects, Networking, IPC, and I/O" + docs_url = "https://docs.gtk.org/gio" + + [dependencies."Clutter-@MUTTER_API_VERSION@"] + name = "Clutter" + description = "An OpenGL based 'interactive canvas' library" + docs_url = "https://gnome.pages.gitlab.gnome.org/mutter/clutter/" + +[theme] +name = "basic" +show_index_summary = true + +[source-location] +base_url = "https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/HEAD/" + +[extra] +urlmap_file = "urlmap.js" diff --git a/docs/reference/st/urlmap.js b/docs/reference/st/urlmap.js new file mode 100644 index 000000000..eed228a90 --- /dev/null +++ b/docs/reference/st/urlmap.js @@ -0,0 +1,10 @@ +baseURLs = [ + [ 'GLib', 'https://docs.gtk.org/glib/' ], + [ 'GObject', 'https://docs.gtk.org/gobject/' ], + [ 'Gio', 'https://docs.gtk.org/gio/' ], + [ 'Pango', 'https://docs.gtk.org/pango/' ], + [ 'GdkPixbuf', 'https://docs.gtk.org/gdk-pixbuf/' ], + [ 'Clutter', 'https://gnome.pages.gitlab.gnome.org/mutter/clutter/' ], + [ 'Cogl', 'https://gnome.pages.gitlab.gnome.org/mutter/cogl/' ], + [ 'Meta', 'https://gnome.pages.gitlab.gnome.org/mutter/meta/' ], +] diff --git a/docs/reference/st/version.xml.in b/docs/reference/st/version.xml.in deleted file mode 100644 index d78bda934..000000000 --- a/docs/reference/st/version.xml.in +++ /dev/null @@ -1 +0,0 @@ -@VERSION@ diff --git a/meson.build b/meson.build index 70ba71106..e550dd91a 100644 --- a/meson.build +++ b/meson.build @@ -95,6 +95,11 @@ x11_dep = dependency('x11') schemas_dep = dependency('gsettings-desktop-schemas', version: schemas_req) gnome_desktop_dep = dependency('gnome-desktop-4', version: gnome_desktop_req) +gidocgen_dep = dependency('gi-docgen', + version: '>= 2021.1', + fallback: ['gi-docgen', 'dummy_dep'], + required: get_option('gtk_doc')) + nm_deps = [] if get_option('networkmanager') nm_deps += dependency('libnm', version: nm_req) diff --git a/src/meson.build b/src/meson.build index 070312bd0..748d855a3 100644 --- a/src/meson.build +++ b/src/meson.build @@ -231,7 +231,7 @@ libshell_gir_includes += [ libst_gir[0] ] -gnome.generate_gir(libshell, +libshell_gir = gnome.generate_gir(libshell, sources: libshell_gir_sources, nsversion: mutter_api_version, namespace: 'Shell', diff --git a/subprojects/gi-docgen.wrap b/subprojects/gi-docgen.wrap new file mode 100644 index 000000000..98cd92118 --- /dev/null +++ b/subprojects/gi-docgen.wrap @@ -0,0 +1,6 @@ +[wrap-git] +directory=gi-docgen +url=https://gitlab.gnome.org/GNOME/gi-docgen.git +push-url=ssh://git@gitlab.gnome.org:GNOME/gi-docgen.git +revision=main +depth=1