summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorentin Noël <corentin.noel@collabora.com>2023-03-05 18:31:25 +0100
committerCorentin Noël <tintou@noel.tf>2023-03-05 22:05:22 +0100
commit29bc653a181d905640dcf7540bbeacf00dfe0f62 (patch)
tree9abae59287c1722f578ef61d61384519f043496a
parent25fe550accd22e57153fe26eb822aa2974d220fb (diff)
downloadevolution-data-server-tintou/gi-docgen.tar.gz
docs: Add gi-docgen based documentation for all the librariestintou/gi-docgen
Allows to have documentation for all the libraries of the project.
-rw-r--r--.gitlab-ci.yml2
-rw-r--r--CMakeLists.txt5
-rw-r--r--cmake/modules/GIDocgen.cmake59
-rw-r--r--data/org.gnome.evolution-data-server.nightly.json41
-rw-r--r--docs/reference/CMakeLists.txt108
-rw-r--r--docs/reference/camel.toml.in28
-rw-r--r--docs/reference/libebackend.toml.in36
-rw-r--r--docs/reference/libebook-contacts.toml.in36
-rw-r--r--docs/reference/libebook.toml.in46
-rw-r--r--docs/reference/libecal.toml.in36
-rw-r--r--docs/reference/libedata-book.toml.in41
-rw-r--r--docs/reference/libedata-cal.toml.in41
-rw-r--r--docs/reference/libedataserver.toml.in31
-rw-r--r--docs/reference/libedataserverui.toml.in36
-rw-r--r--docs/reference/libedataserverui4.toml.in36
-rw-r--r--docs/reference/urlmap-gtk3.js15
-rw-r--r--docs/reference/urlmap-gtk4.js17
-rw-r--r--docs/reference/urlmap.js9
18 files changed, 619 insertions, 4 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1bb0505ae..a20126cd7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -20,7 +20,6 @@ flatpak:
- jq -M '(.modules[] | select(.name=="evolution-data-server")).sources[0].url = env.CI_REPOSITORY_URL' ${MANIFEST_PATH} > tmp.json && mv tmp.json ${MANIFEST_PATH}
- jq -M 'del((.modules[] | select(.name=="evolution-data-server")).sources[0].branch)' ${MANIFEST_PATH} > tmp.json && mv tmp.json ${MANIFEST_PATH}
- jq -M '(.modules[] | select(.name=="evolution-data-server")).sources[0].commit = env.CI_COMMIT_SHA' ${MANIFEST_PATH} > tmp.json && mv tmp.json ${MANIFEST_PATH}
-
- >
xvfb-run -a -s "-screen 0 1024x768x24"
flatpak-builder --keep-build-dirs --user --disable-rofiles-fuse flatpak_app --repo=repo --ccache ${BRANCH:+--default-branch=$BRANCH} ${MANIFEST_PATH}
@@ -38,4 +37,5 @@ flatpak:
- ".flatpak-builder/build/${FLATPAK_MODULE}/evolution-data-server-config.h"
- ".flatpak-builder/build/${FLATPAK_MODULE}/CMakeFiles/CMakeError.log"
- ".flatpak-builder/build/${FLATPAK_MODULE}/CMakeFiles/CMakeOutput.log"
+ - ".flatpak-builder/build/${FLATPAK_MODULE}/docs/reference/"
expire_in: 14 days
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6e5a84c94..8f2096319 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -278,6 +278,7 @@ include(CheckTarget)
include(DistTargets)
include(GLibTools)
include(GObjectIntrospection)
+include(GIDocgen)
include(GtkDoc)
include(InstalledTests)
include(PkgConfigEx)
@@ -993,6 +994,4 @@ add_subdirectory(src)
add_subdirectory(tests)
# Add it as the last, because it looks for targets defined above
-if(ENABLE_GTK_DOC)
- add_subdirectory(docs)
-endif(ENABLE_GTK_DOC)
+add_subdirectory(docs)
diff --git a/cmake/modules/GIDocgen.cmake b/cmake/modules/GIDocgen.cmake
new file mode 100644
index 000000000..7a661404c
--- /dev/null
+++ b/cmake/modules/GIDocgen.cmake
@@ -0,0 +1,59 @@
+# GIDocgen.cmake
+#
+# Adds an option -DENABLE_GI_DOCGEN=OFF and helper commands
+#
+# Functions:
+#
+# gi_docgen(_output_filename_noext _define_name _enums_header ...)
+# runs glib-mkenums to generate enumtypes .h and .c files from multiple
+# _enums_header. It searches for files in the current source directory and
+# exports to the current binary directory.
+
+include(CMakeParseArguments)
+
+add_printable_option(ENABLE_GI_DOCGEN "Use gi-docgen to build documentation" OFF)
+if(ENABLE_GI_DOCGEN)
+ if(NOT ENABLE_INTROSPECTION)
+ message(FATAL_ERROR "Documentation generation with gi-docgen require introspection generation to be enabled, use -DENABLE_INTROSPECTION=ON to enable it, or disable gi-docgen documentation generation with -DENABLE_GI_DOCGEN=OFF")
+ endif(NOT ENABLE_INTROSPECTION)
+ find_program(GI_DOCGEN gi-docgen)
+ if(NOT GI_DOCGEN)
+ message(FATAL_ERROR "The gi-docgen command is not found. Install it or disable documentation generation with -DENABLE_GI_DOCGEN=OFF")
+ endif(NOT GI_DOCGEN)
+endif(ENABLE_GI_DOCGEN)
+
+macro(generate_gi_documentation _target _config _gir_path)
+ cmake_parse_arguments(GIDOCGEN_ARG "" "" "CONTENT_DIRS;INCLUDE_PATHS;TEMPLATE_DIRS" ${ARGN} )
+
+ set(EXTRA_ARGS)
+ foreach(_item IN LISTS GIDOCGEN_ARG_CONTENT_DIRS)
+ list(APPEND EXTRA_ARGS "--content-dir=${_item}")
+ endforeach()
+ foreach(_item IN LISTS GIDOCGEN_ARG_INCLUDE_PATHS)
+ list(APPEND EXTRA_ARGS "--add-include-path=${_item}")
+ endforeach()
+ foreach(_item IN LISTS GIDOCGEN_ARG_TEMPLATE_DIRS)
+ list(APPEND EXTRA_ARGS "--templates-dir=${_item}")
+ endforeach()
+ get_filename_component(_gir_filename ${_gir_path} NAME)
+ gir_girfilename_to_target(_gir_target ${_gir_filename})
+ add_custom_target(
+ ${_target}-doc ALL
+ COMMAND
+ ${GI_DOCGEN}
+ generate
+ --config ${_config}
+ --content-dir ${CMAKE_CURRENT_SOURCE_DIR}
+ --no-namespace-dir
+ --output-dir ${CMAKE_CURRENT_BINARY_DIR}/${_target}
+ --quiet
+ ${EXTRA_ARGS}
+ ${_gir_path}
+ DEPENDS
+ ${_gir_target}
+ WORKING_DIRECTORY
+ ${CMAKE_CURRENT_BINARY_DIR}
+ COMMENT
+ "Generate documentation for ${_target}"
+ )
+endmacro(generate_gi_documentation)
diff --git a/data/org.gnome.evolution-data-server.nightly.json b/data/org.gnome.evolution-data-server.nightly.json
index ad0b0386c..316655aaf 100644
--- a/data/org.gnome.evolution-data-server.nightly.json
+++ b/data/org.gnome.evolution-data-server.nightly.json
@@ -222,6 +222,46 @@
},
{
+ "name": "python3-gi-docgen",
+ "buildsystem": "simple",
+ "build-commands": [
+ "pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"gi-docgen\" --no-build-isolation"
+ ],
+ "sources": [
+ {
+ "type": "file",
+ "url": "https://files.pythonhosted.org/packages/da/ed/1da76d11aa858ee23dac5b52d9ac2db7df02b89f7679d5d8970bcd44b59c/smartypants-2.0.1-py2.py3-none-any.whl",
+ "sha256": "8db97f7cbdf08d15b158a86037cd9e116b4cf37703d24e0419a0d64ca5808f0d"
+ },
+ {
+ "type": "file",
+ "url": "https://files.pythonhosted.org/packages/8a/bf/64959d6187d42472acb846bcf462347c9124952c05bd57e5769d5f28f9a6/typogrify-2.0.7.tar.gz",
+ "sha256": "8be4668cda434163ce229d87ca273a11922cb1614cb359970b7dc96eed13cb38"
+ },
+ {
+ "type": "file",
+ "url": "https://files.pythonhosted.org/packages/97/75/10a9ebee3fd790d20926a90a2547f0bf78f371b2f13aa822c759680ca7b9/tomli-2.0.1-py3-none-any.whl",
+ "sha256": "939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"
+ },
+ {
+ "type": "file",
+ "url": "https://files.pythonhosted.org/packages/95/7e/68018b70268fb4a2a605e2be44ab7b4dd7ce7808adae6c5ef32e34f4b55a/MarkupSafe-2.1.2.tar.gz",
+ "sha256": "abcabc8c2b26036d62d4c746381a6f7cf60aafcc653198ad678306986b09450d"
+ },
+ {
+ "type": "file",
+ "url": "https://files.pythonhosted.org/packages/bc/c3/f068337a370801f372f2f8f6bad74a5c140f6fda3d9de154052708dd3c65/Jinja2-3.1.2-py3-none-any.whl",
+ "sha256": "6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"
+ },
+ {
+ "type": "file",
+ "url": "https://files.pythonhosted.org/packages/2c/57/9b927fab538fe9acc932411aaa54785e3911917291773b1a95b7cfcdd0be/gi_docgen-2023.1-py2.py3-none-any.whl",
+ "sha256": "05959ff3489862a3e0bbef66ac0301c71d47bfe5e99883309e97b0197e50d27a"
+ }
+ ]
+ },
+
+ {
"name": "evolution-data-server",
"buildsystem": "cmake-ninja",
"cleanup": [
@@ -242,6 +282,7 @@
"-DENABLE_VALA_BINDINGS=ON",
"-DENABLE_INSTALLED_TESTS=ON",
"-DENABLE_GTK_DOC=OFF",
+ "-DENABLE_GI_DOCGEN=ON",
"-DWITH_LIBDB=OFF",
"-DWITH_PRIVATE_DOCS=OFF",
"-DWITH_PHONENUMBER=OFF",
diff --git a/docs/reference/CMakeLists.txt b/docs/reference/CMakeLists.txt
index 9a9144b7e..fca59de73 100644
--- a/docs/reference/CMakeLists.txt
+++ b/docs/reference/CMakeLists.txt
@@ -1,6 +1,114 @@
+if(ENABLE_GTK_DOC)
add_subdirectory(camel)
add_subdirectory(evolution-data-server)
if(WITH_PRIVATE_DOCS)
add_subdirectory(private)
endif(WITH_PRIVATE_DOCS)
+endif(ENABLE_GTK_DOC)
+
+if (ENABLE_GI_DOCGEN)
+ set(CAMEL_GIR_PATH "${CMAKE_BINARY_DIR}/src/camel")
+ configure_file(camel.toml.in camel.toml @ONLY)
+ generate_gi_documentation(
+ camel
+ ${CMAKE_CURRENT_BINARY_DIR}/camel.toml
+ "${CAMEL_GIR_PATH}/Camel-${API_VERSION}.gir"
+ )
+ set(EDATASERVER_GIR_PATH "${CMAKE_BINARY_DIR}/src/libedataserver")
+ configure_file(libedataserver.toml.in libedataserver.toml @ONLY)
+ generate_gi_documentation(
+ libedataserver
+ ${CMAKE_CURRENT_BINARY_DIR}/libedataserver.toml
+ "${EDATASERVER_GIR_PATH}/EDataServer-${API_VERSION}.gir"
+ INCLUDE_PATHS
+ ${CAMEL_GIR_PATH}
+ )
+ set(EBACKEND_GIR_PATH "${CMAKE_BINARY_DIR}/src/libebackend")
+ configure_file(libebackend.toml.in libebackend.toml @ONLY)
+ generate_gi_documentation(
+ libebackend
+ ${CMAKE_CURRENT_BINARY_DIR}/libebackend.toml
+ "${EBACKEND_GIR_PATH}/EBackend-${API_VERSION}.gir"
+ INCLUDE_PATHS
+ ${CAMEL_GIR_PATH}
+ ${EDATASERVER_GIR_PATH}
+ )
+ set(EBOOK_CONTACTS_GIR_PATH "${CMAKE_BINARY_DIR}/src/addressbook/libebook-contacts")
+ configure_file(libebook-contacts.toml.in libebook-contacts.toml @ONLY)
+ generate_gi_documentation(
+ libebook-contacts
+ ${CMAKE_CURRENT_BINARY_DIR}/libebook-contacts.toml
+ "${EBOOK_CONTACTS_GIR_PATH}/EBookContacts-${API_VERSION}.gir"
+ INCLUDE_PATHS
+ ${CAMEL_GIR_PATH}
+ ${EDATASERVER_GIR_PATH}
+ )
+ set(EDATA_BOOK_GIR_PATH "${CMAKE_BINARY_DIR}/src/addressbook/libedata-book")
+ configure_file(libedata-book.toml.in libedata-book.toml @ONLY)
+ generate_gi_documentation(
+ libedata-book
+ ${CMAKE_CURRENT_BINARY_DIR}/libedata-book.toml
+ "${EDATA_BOOK_GIR_PATH}/EDataBook-${API_VERSION}.gir"
+ INCLUDE_PATHS
+ ${CAMEL_GIR_PATH}
+ ${EDATASERVER_GIR_PATH}
+ ${EBOOK_CONTACTS_GIR_PATH}
+ )
+ set(EBOOK_GIR_PATH "${CMAKE_BINARY_DIR}/src/addressbook/libebook")
+ configure_file(libebook.toml.in libebook.toml @ONLY)
+ generate_gi_documentation(
+ libebook
+ ${CMAKE_CURRENT_BINARY_DIR}/libebook.toml
+ "${EBOOK_GIR_PATH}/EBook-${API_VERSION}.gir"
+ INCLUDE_PATHS
+ ${CAMEL_GIR_PATH}
+ ${EDATASERVER_GIR_PATH}
+ ${EBOOK_CONTACTS_GIR_PATH}
+ ${EDATA_BOOK_GIR_PATH}
+ )
+ set(ECAL_GIR_PATH "${CMAKE_BINARY_DIR}/src/calendar/libecal")
+ configure_file(libecal.toml.in libecal.toml @ONLY)
+ generate_gi_documentation(
+ libecal
+ ${CMAKE_CURRENT_BINARY_DIR}/libecal.toml
+ "${ECAL_GIR_PATH}/ECal-${CAL_API_VERSION}.gir"
+ INCLUDE_PATHS
+ ${CAMEL_GIR_PATH}
+ ${EDATASERVER_GIR_PATH}
+ )
+ set(EDATA_CAL_GIR_PATH "${CMAKE_BINARY_DIR}/src/calendar/libedata-cal")
+ configure_file(libedata-cal.toml.in libedata-cal.toml @ONLY)
+ generate_gi_documentation(
+ libedata-cal
+ ${CMAKE_CURRENT_BINARY_DIR}/libedata-cal.toml
+ "${EDATA_CAL_GIR_PATH}/EDataCal-${CAL_API_VERSION}.gir"
+ INCLUDE_PATHS
+ ${CAMEL_GIR_PATH}
+ ${EDATASERVER_GIR_PATH}
+ ${ECAL_GIR_PATH}
+ )
+ set(EDATASERVERUI_GIR_PATH "${CMAKE_BINARY_DIR}/src/libedataserverui")
+ if(ENABLE_GTK)
+ configure_file(libedataserverui.toml.in libedataserverui.toml @ONLY)
+ generate_gi_documentation(
+ libedataserverui
+ ${CMAKE_CURRENT_BINARY_DIR}/libedataserverui.toml
+ "${EDATASERVERUI_GIR_PATH}/EDataServerUI-${API_VERSION}.gir"
+ INCLUDE_PATHS
+ ${CAMEL_GIR_PATH}
+ ${EDATASERVER_GIR_PATH}
+ )
+ endif(ENABLE_GTK)
+ if(ENABLE_GTK4)
+ configure_file(libedataserverui4.toml.in libedataserverui4.toml @ONLY)
+ generate_gi_documentation(
+ libedataserverui4
+ ${CMAKE_CURRENT_BINARY_DIR}/libedataserverui4.toml
+ "${EDATASERVERUI_GIR_PATH}/EDataServerUI4-${LIBEDATASERVERUI4_API_VERSION}.gir"
+ INCLUDE_PATHS
+ ${CAMEL_GIR_PATH}
+ ${EDATASERVER_GIR_PATH}
+ )
+ endif(ENABLE_GTK4)
+endif (ENABLE_GI_DOCGEN)
diff --git a/docs/reference/camel.toml.in b/docs/reference/camel.toml.in
new file mode 100644
index 000000000..363df4753
--- /dev/null
+++ b/docs/reference/camel.toml.in
@@ -0,0 +1,28 @@
+# SPDX-FileCopyrightText: 2023 GNOME Foundation
+#
+# SPDX-License-Identifier: CC0-1.0
+
+[library]
+namespace = "Camel"
+version = "@PROJECT_VERSION@"
+browse_url = "https://gitlab.gnome.org/GNOME/evolution-data-server/"
+repository_url = "https://gitlab.gnome.org/GNOME/evolution-data-server.git"
+authors = "Evolution Data Server Development Team"
+license = "GPL-2.0-only"
+description = "The Evolution MIME message handling library"
+dependencies = [ "GObject-2.0" ]
+devhelp = true
+search_index = true
+
+ [dependencies."GObject-2.0"]
+ name = "GObject"
+ description = "The base type system library"
+ docs_url = "https://developer.gnome.org/gobject/stable"
+
+[theme]
+name = "basic"
+show_index_summary = true
+show_class_hierarchy = true
+
+[source-location]
+base_url = "https://gitlab.gnome.org/GNOME/evolution-data-server/-/blob/master/"
diff --git a/docs/reference/libebackend.toml.in b/docs/reference/libebackend.toml.in
new file mode 100644
index 000000000..aa97e8c5d
--- /dev/null
+++ b/docs/reference/libebackend.toml.in
@@ -0,0 +1,36 @@
+# SPDX-FileCopyrightText: 2023 GNOME Foundation
+#
+# SPDX-License-Identifier: CC0-1.0
+
+[library]
+namespace = "EBackend"
+version = "@PROJECT_VERSION@"
+browse_url = "https://gitlab.gnome.org/GNOME/evolution-data-server/"
+repository_url = "https://gitlab.gnome.org/GNOME/evolution-data-server.git"
+authors = "Evolution Data Server Development Team"
+license = "GPL-2.0-only"
+description = "Utility library for Evolution Data Server Backends"
+dependencies = [ "GObject-2.0", "EDataServer-@API_VERSION@" ]
+devhelp = true
+search_index = true
+
+ [dependencies."GObject-2.0"]
+ name = "GObject"
+ description = "The base type system library"
+ docs_url = "https://developer.gnome.org/gobject/stable"
+
+ [dependencies."EDataServer-@API_VERSION@"]
+ name = "EDataServer"
+ description = "Utility library for Evolution Data Server"
+ docs_url = "https://gnome.pages.gitlab.gnome.org/evolution-data-server/libedataserver"
+
+[theme]
+name = "basic"
+show_index_summary = true
+show_class_hierarchy = true
+
+[source-location]
+base_url = "https://gitlab.gnome.org/GNOME/evolution-data-server/-/blob/master/"
+
+[extra]
+urlmap_file = "urlmap.js"
diff --git a/docs/reference/libebook-contacts.toml.in b/docs/reference/libebook-contacts.toml.in
new file mode 100644
index 000000000..f77b66c9d
--- /dev/null
+++ b/docs/reference/libebook-contacts.toml.in
@@ -0,0 +1,36 @@
+# SPDX-FileCopyrightText: 2023 GNOME Foundation
+#
+# SPDX-License-Identifier: CC0-1.0
+
+[library]
+namespace = "EBookContacts"
+version = "@PROJECT_VERSION@"
+browse_url = "https://gitlab.gnome.org/GNOME/evolution-data-server/"
+repository_url = "https://gitlab.gnome.org/GNOME/evolution-data-server.git"
+authors = "Evolution Data Server Development Team"
+license = "GPL-2.0-only"
+description = "Client library for evolution contacts and vcard structures"
+dependencies = [ "GObject-2.0", "EDataServer-@API_VERSION@" ]
+devhelp = true
+search_index = true
+
+ [dependencies."GObject-2.0"]
+ name = "GObject"
+ description = "The base type system library"
+ docs_url = "https://developer.gnome.org/gobject/stable"
+
+ [dependencies."EDataServer-@API_VERSION@"]
+ name = "EDataServer"
+ description = "Utility library for Evolution Data Server"
+ docs_url = "https://gnome.pages.gitlab.gnome.org/evolution-data-server/libedataserver"
+
+[theme]
+name = "basic"
+show_index_summary = true
+show_class_hierarchy = true
+
+[source-location]
+base_url = "https://gitlab.gnome.org/GNOME/evolution-data-server/-/blob/master/"
+
+[extra]
+urlmap_file = "urlmap.js"
diff --git a/docs/reference/libebook.toml.in b/docs/reference/libebook.toml.in
new file mode 100644
index 000000000..e0fe1b7f6
--- /dev/null
+++ b/docs/reference/libebook.toml.in
@@ -0,0 +1,46 @@
+# SPDX-FileCopyrightText: 2023 GNOME Foundation
+#
+# SPDX-License-Identifier: CC0-1.0
+
+[library]
+namespace = "EBook"
+version = "@PROJECT_VERSION@"
+browse_url = "https://gitlab.gnome.org/GNOME/evolution-data-server/"
+repository_url = "https://gitlab.gnome.org/GNOME/evolution-data-server.git"
+authors = "Evolution Data Server Development Team"
+license = "GPL-2.0-only"
+description = "Client library for evolution address books"
+dependencies = [ "GObject-2.0", "EDataServer-@API_VERSION@", "EBookContacts-@API_VERSION@", "EDataBook-@API_VERSION@" ]
+devhelp = true
+search_index = true
+
+ [dependencies."GObject-2.0"]
+ name = "GObject"
+ description = "The base type system library"
+ docs_url = "https://developer.gnome.org/gobject/stable"
+
+ [dependencies."EDataServer-@API_VERSION@"]
+ name = "EDataServer"
+ description = "Utility library for Evolution Data Server"
+ docs_url = "https://gnome.pages.gitlab.gnome.org/evolution-data-server/libedataserver"
+
+ [dependencies."EBookContacts-@API_VERSION@"]
+ name = "EBookContacts"
+ description = "Client library for evolution contacts and vcard structures"
+ docs_url = "https://gnome.pages.gitlab.gnome.org/evolution-data-server/libebook-contacts"
+
+ [dependencies."EDataBook-@API_VERSION@"]
+ name = "EDataBook"
+ description = "Backend library for evolution address books"
+ docs_url = "https://gnome.pages.gitlab.gnome.org/evolution-data-server/libedatabook"
+
+[theme]
+name = "basic"
+show_index_summary = true
+show_class_hierarchy = true
+
+[source-location]
+base_url = "https://gitlab.gnome.org/GNOME/evolution-data-server/-/blob/master/"
+
+[extra]
+urlmap_file = "urlmap.js"
diff --git a/docs/reference/libecal.toml.in b/docs/reference/libecal.toml.in
new file mode 100644
index 000000000..9f9df5d51
--- /dev/null
+++ b/docs/reference/libecal.toml.in
@@ -0,0 +1,36 @@
+# SPDX-FileCopyrightText: 2023 GNOME Foundation
+#
+# SPDX-License-Identifier: CC0-1.0
+
+[library]
+namespace = "ECal"
+version = "@PROJECT_VERSION@"
+browse_url = "https://gitlab.gnome.org/GNOME/evolution-data-server/"
+repository_url = "https://gitlab.gnome.org/GNOME/evolution-data-server.git"
+authors = "Evolution Data Server Development Team"
+license = "GPL-2.0-only"
+description = "Client library for evolution calendars"
+dependencies = [ "GObject-2.0", "EDataServer-@API_VERSION@" ]
+devhelp = true
+search_index = true
+
+ [dependencies."GObject-2.0"]
+ name = "GObject"
+ description = "The base type system library"
+ docs_url = "https://developer.gnome.org/gobject/stable"
+
+ [dependencies."EDataServer-@API_VERSION@"]
+ name = "EDataServer"
+ description = "Utility library for Evolution Data Server"
+ docs_url = "https://gnome.pages.gitlab.gnome.org/evolution-data-server/libedataserver"
+
+[theme]
+name = "basic"
+show_index_summary = true
+show_class_hierarchy = true
+
+[source-location]
+base_url = "https://gitlab.gnome.org/GNOME/evolution-data-server/-/blob/master/"
+
+[extra]
+urlmap_file = "urlmap.js"
diff --git a/docs/reference/libedata-book.toml.in b/docs/reference/libedata-book.toml.in
new file mode 100644
index 000000000..f243a1333
--- /dev/null
+++ b/docs/reference/libedata-book.toml.in
@@ -0,0 +1,41 @@
+# SPDX-FileCopyrightText: 2023 GNOME Foundation
+#
+# SPDX-License-Identifier: CC0-1.0
+
+[library]
+namespace = "EDataBook"
+version = "@PROJECT_VERSION@"
+browse_url = "https://gitlab.gnome.org/GNOME/evolution-data-server/"
+repository_url = "https://gitlab.gnome.org/GNOME/evolution-data-server.git"
+authors = "Evolution Data Server Development Team"
+license = "GPL-2.0-only"
+description = "Backend library for evolution address books"
+dependencies = [ "GObject-2.0", "EDataServer-@API_VERSION@", "EBookContacts-@API_VERSION@" ]
+devhelp = true
+search_index = true
+
+ [dependencies."GObject-2.0"]
+ name = "GObject"
+ description = "The base type system library"
+ docs_url = "https://developer.gnome.org/gobject/stable"
+
+ [dependencies."EDataServer-@API_VERSION@"]
+ name = "EDataServer"
+ description = "Utility library for Evolution Data Server"
+ docs_url = "https://gnome.pages.gitlab.gnome.org/evolution-data-server/libedataserver"
+
+ [dependencies."EBookContacts-@API_VERSION@"]
+ name = "EBookContacts"
+ description = "Client library for evolution contacts and vcard structures"
+ docs_url = "https://gnome.pages.gitlab.gnome.org/evolution-data-server/libebook-contacts"
+
+[theme]
+name = "basic"
+show_index_summary = true
+show_class_hierarchy = true
+
+[source-location]
+base_url = "https://gitlab.gnome.org/GNOME/evolution-data-server/-/blob/master/"
+
+[extra]
+urlmap_file = "urlmap.js"
diff --git a/docs/reference/libedata-cal.toml.in b/docs/reference/libedata-cal.toml.in
new file mode 100644
index 000000000..cb6b6fe6c
--- /dev/null
+++ b/docs/reference/libedata-cal.toml.in
@@ -0,0 +1,41 @@
+# SPDX-FileCopyrightText: 2023 GNOME Foundation
+#
+# SPDX-License-Identifier: CC0-1.0
+
+[library]
+namespace = "EDataCal"
+version = "@PROJECT_VERSION@"
+browse_url = "https://gitlab.gnome.org/GNOME/evolution-data-server/"
+repository_url = "https://gitlab.gnome.org/GNOME/evolution-data-server.git"
+authors = "Evolution Data Server Development Team"
+license = "GPL-2.0-only"
+description = "Backend library for evolution calendars"
+dependencies = [ "GObject-2.0", "EDataServer-@API_VERSION@", "ECal-@CAL_API_VERSION@" ]
+devhelp = true
+search_index = true
+
+ [dependencies."GObject-2.0"]
+ name = "GObject"
+ description = "The base type system library"
+ docs_url = "https://developer.gnome.org/gobject/stable"
+
+ [dependencies."EDataServer-@API_VERSION@"]
+ name = "EDataServer"
+ description = "Utility library for Evolution Data Server"
+ docs_url = "https://gnome.pages.gitlab.gnome.org/evolution-data-server/libedataserver"
+
+ [dependencies."ECal-@CAL_API_VERSION@"]
+ name = "ECal"
+ description = "Client library for evolution calendars"
+ docs_url = "https://gnome.pages.gitlab.gnome.org/evolution-data-server/libebook-contacts"
+
+[theme]
+name = "basic"
+show_index_summary = true
+show_class_hierarchy = true
+
+[source-location]
+base_url = "https://gitlab.gnome.org/GNOME/evolution-data-server/-/blob/master/"
+
+[extra]
+urlmap_file = "urlmap.js"
diff --git a/docs/reference/libedataserver.toml.in b/docs/reference/libedataserver.toml.in
new file mode 100644
index 000000000..0cf394ac3
--- /dev/null
+++ b/docs/reference/libedataserver.toml.in
@@ -0,0 +1,31 @@
+# SPDX-FileCopyrightText: 2023 GNOME Foundation
+#
+# SPDX-License-Identifier: CC0-1.0
+
+[library]
+namespace = "EDataServer"
+version = "@PROJECT_VERSION@"
+browse_url = "https://gitlab.gnome.org/GNOME/evolution-data-server/"
+repository_url = "https://gitlab.gnome.org/GNOME/evolution-data-server.git"
+authors = "Evolution Data Server Development Team"
+license = "GPL-2.0-only"
+description = "Utility library for Evolution Data Server"
+dependencies = [ "GObject-2.0" ]
+devhelp = true
+search_index = true
+
+ [dependencies."GObject-2.0"]
+ name = "GObject"
+ description = "The base type system library"
+ docs_url = "https://developer.gnome.org/gobject/stable"
+
+[theme]
+name = "basic"
+show_index_summary = true
+show_class_hierarchy = true
+
+[source-location]
+base_url = "https://gitlab.gnome.org/GNOME/evolution-data-server/-/blob/master/"
+
+[extra]
+urlmap_file = "urlmap.js"
diff --git a/docs/reference/libedataserverui.toml.in b/docs/reference/libedataserverui.toml.in
new file mode 100644
index 000000000..7b5c81a3b
--- /dev/null
+++ b/docs/reference/libedataserverui.toml.in
@@ -0,0 +1,36 @@
+# SPDX-FileCopyrightText: 2023 GNOME Foundation
+#
+# SPDX-License-Identifier: CC0-1.0
+
+[library]
+namespace = "EDataServerUI"
+version = "@PROJECT_VERSION@"
+browse_url = "https://gitlab.gnome.org/GNOME/evolution-data-server/"
+repository_url = "https://gitlab.gnome.org/GNOME/evolution-data-server.git"
+authors = "Evolution Data Server Development Team"
+license = "GPL-2.0-only"
+description = "UI utility library for Evolution Data Server (Gtk3 version)"
+dependencies = [ "GObject-2.0", "EDataServer-@API_VERSION@" ]
+devhelp = true
+search_index = true
+
+ [dependencies."GObject-2.0"]
+ name = "GObject"
+ description = "The base type system library"
+ docs_url = "https://developer.gnome.org/gobject/stable"
+
+ [dependencies."EDataServer-@API_VERSION@"]
+ name = "EDataServer"
+ description = "Utility library for Evolution Data Server"
+ docs_url = "https://gnome.pages.gitlab.gnome.org/evolution-data-server/libedataserver"
+
+[theme]
+name = "basic"
+show_index_summary = true
+show_class_hierarchy = true
+
+[source-location]
+base_url = "https://gitlab.gnome.org/GNOME/evolution-data-server/-/blob/master/"
+
+[extra]
+urlmap_file = "urlmap-gtk3.js"
diff --git a/docs/reference/libedataserverui4.toml.in b/docs/reference/libedataserverui4.toml.in
new file mode 100644
index 000000000..0a1cfc998
--- /dev/null
+++ b/docs/reference/libedataserverui4.toml.in
@@ -0,0 +1,36 @@
+# SPDX-FileCopyrightText: 2023 GNOME Foundation
+#
+# SPDX-License-Identifier: CC0-1.0
+
+[library]
+namespace = "EDataServerUI4"
+version = "@PROJECT_VERSION@"
+browse_url = "https://gitlab.gnome.org/GNOME/evolution-data-server/"
+repository_url = "https://gitlab.gnome.org/GNOME/evolution-data-server.git"
+authors = "Evolution Data Server Development Team"
+license = "GPL-2.0-only"
+description = "UI utility library for Evolution Data Server (Gtk4 version)"
+dependencies = [ "GObject-2.0", "EDataServer-@API_VERSION@" ]
+devhelp = true
+search_index = true
+
+ [dependencies."GObject-2.0"]
+ name = "GObject"
+ description = "The base type system library"
+ docs_url = "https://developer.gnome.org/gobject/stable"
+
+ [dependencies."EDataServer-@API_VERSION@"]
+ name = "EDataServer"
+ description = "Utility library for Evolution Data Server"
+ docs_url = "https://gnome.pages.gitlab.gnome.org/evolution-data-server/libedataserver"
+
+[theme]
+name = "basic"
+show_index_summary = true
+show_class_hierarchy = true
+
+[source-location]
+base_url = "https://gitlab.gnome.org/GNOME/evolution-data-server/-/blob/master/"
+
+[extra]
+urlmap_file = "urlmap-gtk4.js"
diff --git a/docs/reference/urlmap-gtk3.js b/docs/reference/urlmap-gtk3.js
new file mode 100644
index 000000000..f42d97f0d
--- /dev/null
+++ b/docs/reference/urlmap-gtk3.js
@@ -0,0 +1,15 @@
+// SPDX-FileCopyrightText: 2021 GNOME Foundation
+// SPDX-License-Identifier: LGPL-2.1-or-later
+
+// A map between namespaces and base URLs for their online documentation
+baseURLs = [
+ [ 'Atk', 'https://docs.gtk.org/atk/' ],
+ [ 'GLib', 'https://docs.gtk.org/glib/' ],
+ [ 'GObject', 'https://docs.gtk.org/gobject/' ],
+ [ 'Gio', 'https://docs.gtk.org/gio/' ],
+ [ 'Gdk', 'https://docs.gtk.org/gdk3/' ],
+ [ 'Gtk', 'https://docs.gtk.org/gtk3/' ],
+ [ 'Pango', 'https://docs.gtk.org/Pango/' ],
+ [ 'PangoCairo', 'https://docs.gtk.org/PangoCairo/' ],
+ [ 'GdkPixbuf', 'https://docs.gtk.org/gdk-pixbuf/' ],
+]
diff --git a/docs/reference/urlmap-gtk4.js b/docs/reference/urlmap-gtk4.js
new file mode 100644
index 000000000..0e30f9a6b
--- /dev/null
+++ b/docs/reference/urlmap-gtk4.js
@@ -0,0 +1,17 @@
+// SPDX-FileCopyrightText: 2021 GNOME Foundation
+// SPDX-License-Identifier: LGPL-2.1-or-later
+
+// A map between namespaces and base URLs for their online documentation
+baseURLs = [
+ [ 'GLib', 'https://docs.gtk.org/glib/' ],
+ [ 'GObject', 'https://docs.gtk.org/gobject/' ],
+ [ 'Gio', 'https://docs.gtk.org/gio/' ],
+ [ 'Gdk', 'https://docs.gtk.org/gdk4/' ],
+ [ 'GdkWayland', 'https://docs.gtk.org/gdk4-wayland/' ],
+ [ 'GdkX11', 'https://docs.gtk.org/gdk4-x11/' ],
+ [ 'Gsk', 'https://docs.gtk.org/gsk4/' ],
+ [ 'Gtk', 'https://docs.gtk.org/gtk4/' ],
+ [ 'Pango', 'https://docs.gtk.org/Pango/' ],
+ [ 'PangoCairo', 'https://docs.gtk.org/PangoCairo/' ],
+ [ 'GdkPixbuf', 'https://docs.gtk.org/gdk-pixbuf/' ],
+]
diff --git a/docs/reference/urlmap.js b/docs/reference/urlmap.js
new file mode 100644
index 000000000..deae96b96
--- /dev/null
+++ b/docs/reference/urlmap.js
@@ -0,0 +1,9 @@
+// SPDX-FileCopyrightText: 2021 GNOME Foundation
+// SPDX-License-Identifier: LGPL-2.1-or-later
+
+// A map between namespaces and base URLs for their online documentation
+baseURLs = [
+ [ 'GLib', 'https://docs.gtk.org/glib/' ],
+ [ 'GObject', 'https://docs.gtk.org/gobject/' ],
+ [ 'Gio', 'https://docs.gtk.org/gio/' ],
+]