blob: 2e8ab1c771a10f62f3567f2a6f44e7975802b254 [file] [log] [blame]
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08001SUMMARY = "Documentation generator for glib-based software"
2DESCRIPTION = "Gtk-doc is a set of scripts that extract specially formatted comments \
3 from glib-based software and produce a set of html documentation files from them"
Andrew Geissler6ce62a22020-11-30 19:58:47 -06004HOMEPAGE = "https://www.gtk.org/docs/"
Andrew Geissler7e0e3c02022-02-25 20:34:39 +00005LICENSE = "GPL-2.0-only"
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08006LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
7
Patrick Williamsac13d5f2023-11-24 18:59:46 -06008GNOMEBASEBUILDCLASS = "autotools"
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08009inherit gnomebase
10
11# Configure the scripts correctly (and build their dependencies) only if they are actually
12# going to be used; otheriwse we need only the m4/makefile includes from the gtk-doc tarball.
13PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "api-documentation", "working-scripts", "", d)}"
14
15# This will cause target gtk-doc to hardcode paths of native dependencies
16# into its scripts. This means that target gtk-doc package is broken;
17# hopefully no one minds because its scripts are not used for anything during build
18# and shouldn't be used on targets.
Brad Bishop15ae2502019-06-18 21:44:24 -040019PACKAGECONFIG[working-scripts] = ",,libxslt-native xmlto-native python3-six python3-pygments"
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080020PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,glib-2.0"
21
Andrew Geissler615f2f12022-07-15 14:00:58 -050022CACHED_CONFIGUREVARS += "ac_cv_path_XSLTPROC=xsltproc"
23
Andrew Geisslerd1e89492021-02-12 15:35:20 -060024SRC_URI[archive.sha256sum] = "cc1b709a20eb030a278a1f9842a362e00402b7f834ae1df4c1998a723152bf43"
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080025SRC_URI += "file://0001-Do-not-hardocode-paths-to-perl-python-in-scripts.patch \
26 file://0001-Do-not-error-out-if-xsltproc-is-not-found.patch \
27 file://conditionaltests.patch \
28 file://no-clobber.patch \
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080029 "
Patrick Williams213cb262021-08-07 19:21:33 -050030SRC_URI:append:class-native = " file://pkg-config-native.patch"
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080031
32BBCLASSEXTEND = "native nativesdk"
33
34# Do not check for XML catalogs when building because that
35# information is not used for anything during build. Recipe
36# dependencies make sure we have all the right bits.
Patrick Williams213cb262021-08-07 19:21:33 -050037do_configure:prepend() {
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080038 sed -i -e 's,^JH_CHECK_XML_CATALOG.*,,' ${S}/configure.ac
39}
40
Patrick Williams213cb262021-08-07 19:21:33 -050041do_install:append () {
Andrew Geissler82c905d2020-04-13 13:39:40 -050042 # configure values for python3 and pkg-config encoded in scripts
43 for fn in ${bindir}/gtkdoc-depscan \
44 ${bindir}/gtkdoc-mkhtml2 \
Andrew Geissler90fd73c2021-03-05 15:25:55 -060045 ${datadir}/gtk-doc/python/gtkdoc/config_data.py \
Andrew Geissler4ed12e12020-06-05 18:00:41 -050046 ${datadir}/gtk-doc/python/gtkdoc/config.py; do
Andrew Geissler82c905d2020-04-13 13:39:40 -050047 sed -e 's,${RECIPE_SYSROOT_NATIVE}/usr/bin/pkg-config,${bindir}/pkg-config,' \
48 -e 's,${HOSTTOOLS_DIR}/python3,${bindir}/python3,' \
Andrew Geissler615f2f12022-07-15 14:00:58 -050049 -e '1s|^#!.*|#!/usr/bin/env python3|' \
Andrew Geissler82c905d2020-04-13 13:39:40 -050050 -i ${D}$fn
51 done
52}
53
Patrick Williams213cb262021-08-07 19:21:33 -050054FILES:${PN} += "${datadir}/sgml"
55FILES:${PN}-doc = ""
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080056
Patrick Williams213cb262021-08-07 19:21:33 -050057SYSROOT_PREPROCESS_FUNCS:append:class-native = " gtkdoc_makefiles_sysroot_preprocess"
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080058gtkdoc_makefiles_sysroot_preprocess() {
59 # Patch the gtk-doc makefiles so that the qemu wrapper is used to run transient binaries
60 # instead of libtool wrapper or running them directly
61 sed -i \
62 -e "s|GTKDOC_RUN =.*|GTKDOC_RUN = \$(top_builddir)/gtkdoc-qemuwrapper|" \
63 ${SYSROOT_DESTDIR}${datadir}/gtk-doc/data/gtk-doc*make
64}