From f87bb7d848015c371095ef3ff423eee81e6d8ecd Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Wed, 5 May 2021 17:18:47 +0200 Subject: [PATCH] gi-docgen: add a recipe and class This seems to be the gtk-doc successor, and gnome projects such as pango and gdk-pixbuf have started transitioning to it. Signed-off-by: Alexander Kanavin Signed-off-by: Richard Purdie --- meta/classes/gi-docgen.bbclass | 24 +++++++++++++++++++ meta/conf/distro/include/maintainers.inc | 1 + meta/recipes-gnome/gi-docgen/gi-docgen_git.bb | 22 +++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 meta/classes/gi-docgen.bbclass create mode 100644 meta/recipes-gnome/gi-docgen/gi-docgen_git.bb diff --git a/meta/classes/gi-docgen.bbclass b/meta/classes/gi-docgen.bbclass new file mode 100644 index 0000000000..5750f7028d --- /dev/null +++ b/meta/classes/gi-docgen.bbclass @@ -0,0 +1,24 @@ +# gi-docgen is a new gnome documentation generator, which +# seems to be a successor to gtk-doc: +# https://gitlab.gnome.org/GNOME/gi-docgen + +# This variable is set to True if api-documentation is in +# DISTRO_FEATURES, and False otherwise. +GIDOCGEN_ENABLED ?= "${@bb.utils.contains('DISTRO_FEATURES', 'api-documentation', 'True', 'False', d)}" +# When building native recipes, disable gi-docgen, as it is not necessary, +# pulls in additional dependencies, and makes build times longer +GIDOCGEN_ENABLED_class-native = "False" +GIDOCGEN_ENABLED_class-nativesdk = "False" + +# meson: default option name to enable/disable gi-docgen. This matches most +# projects' configuration. In doubts - check meson_options.txt in project's +# source path. +GIDOCGEN_MESON_OPTION ?= 'gtk_doc' +GIDOCGEN_MESON_ENABLE_FLAG ?= 'true' +GIDOCGEN_MESON_DISABLE_FLAG ?= 'false' + +# Auto enable/disable based on GIDOCGEN_ENABLED +EXTRA_OEMESON_prepend = "-D${GIDOCGEN_MESON_OPTION}=${@bb.utils.contains('GIDOCGEN_ENABLED', 'True', '${GIDOCGEN_MESON_ENABLE_FLAG}', '${GIDOCGEN_MESON_DISABLE_FLAG}', d)} " + +DEPENDS_append = "${@' gi-docgen-native gi-docgen' if d.getVar('GIDOCGEN_ENABLED') == 'True' else ''}" + diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc index 0c3e3628ba..bfebd68acf 100644 --- a/meta/conf/distro/include/maintainers.inc +++ b/meta/conf/distro/include/maintainers.inc @@ -205,6 +205,7 @@ RECIPE_MAINTAINER_pn-gdk-pixbuf = "Ross Burton " RECIPE_MAINTAINER_pn-gettext = "Robert Yang " RECIPE_MAINTAINER_pn-gettext-minimal-native = "Robert Yang " RECIPE_MAINTAINER_pn-ghostscript = "Hongxu Jia " +RECIPE_MAINTAINER_pn-gi-docgen = "Alexander Kanavin " RECIPE_MAINTAINER_pn-git = "Robert Yang " RECIPE_MAINTAINER_pn-glew = "Anuj Mittal " RECIPE_MAINTAINER_pn-glib-2.0 = "Anuj Mittal " diff --git a/meta/recipes-gnome/gi-docgen/gi-docgen_git.bb b/meta/recipes-gnome/gi-docgen/gi-docgen_git.bb new file mode 100644 index 0000000000..4d779a9bdd --- /dev/null +++ b/meta/recipes-gnome/gi-docgen/gi-docgen_git.bb @@ -0,0 +1,22 @@ +SUMMARY = "Documentation tool for GObject-based libraries" +DESCRIPTION = "GI-DocGen is a document generator for GObject-based libraries. GObject is \ +the base type system of the GNOME project. GI-Docgen reuses the \ +introspection data generated by GObject-based libraries to generate the API \ +reference of these libraries, as well as other ancillary documentation." +HOMEPAGE = "https://gnome.pages.gitlab.gnome.org/gi-docgen/" + +LICENSE = "GPLv3+ & Apache-2.0" +LIC_FILES_CHKSUM = "file://gi-docgen.py;beginline=1;endline=5;md5=2dc0f1f01202478cfe813c0e7f80b326" + +SRC_URI = "git://gitlab.gnome.org/GNOME/gi-docgen.git;protocol=https;branch=main" + +PV = "2021.5" +SRCREV = "7dee859321573f9c843ef7fb136f11142cb6ddf8" + +S = "${WORKDIR}/git" + +inherit setuptools3 + +RDEPENDS_${PN} += "python3-asyncio python3-core python3-jinja2 python3-json python3-markdown python3-markupsafe python3-pygments python3-toml python3-typogrify python3-xml" + +BBCLASSEXTEND = "native" -- 2.40.1