123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204 |
- SUMMARY = "A general-purpose utility library"
- DESCRIPTION = "GLib is a general-purpose utility library, which provides many useful data types, macros, type conversions, string utilities, file utilities, a main loop abstraction, and so on."
- HOMEPAGE = "https://developer.gnome.org/glib/"
- # pcre is under BSD;
- # docs/reference/COPYING is with a 'public domain'-like license!
- LICENSE = "LGPLv2.1+ & BSD & PD"
- LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
- file://glib/glib.h;beginline=4;endline=17;md5=b88abb7f3ad09607e71cb9d530155906 \
- file://gmodule/COPYING;md5=4fbd65380cdd255951079008b364516c \
- file://gmodule/gmodule.h;beginline=4;endline=17;md5=b88abb7f3ad09607e71cb9d530155906 \
- file://glib/pcre/pcre.h;beginline=8;endline=36;md5=3e2977dae4ad05217f58c446237298fc \
- file://docs/reference/COPYING;md5=f51a5100c17af6bae00735cd791e1fcc"
- BUGTRACKER = "http://bugzilla.gnome.org"
- SECTION = "libs"
- CVE_PRODUCT = "glib"
- BBCLASSEXTEND = "native nativesdk"
- DEPENDS = "glib-2.0-native \
- virtual/libintl \
- virtual/libiconv \
- libffi \
- zlib"
- PACKAGES += "${PN}-codegen ${PN}-utils"
- LEAD_SONAME = "libglib-2.0.*"
- inherit meson gettext gtk-doc pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache manpages
- DEPENDS_append_class-target = "${@' gtk-doc' if d.getVar('GTKDOC_ENABLED') == 'True' else ''}"
- GTKDOC_MESON_OPTION = "gtk_doc"
- # This avoids the need to depend on target python3, which in case of mingw is not even possible.
- # meson's python configuration pokes into python3 configuration, so this provides the native config to it.
- unset _PYTHON_SYSCONFIGDATA_NAME
- S = "${WORKDIR}/glib-${PV}"
- PACKAGECONFIG ??= "system-pcre libmount \
- ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
- # To use the system pcre it must be configured with --enable-unicode-properties
- PACKAGECONFIG[system-pcre] = "-Dinternal_pcre=false,-Dinternal_pcre=true,libpcre"
- PACKAGECONFIG[libmount] = "-Dlibmount=enabled,-Dlibmount=disabled,util-linux"
- PACKAGECONFIG[manpages] = "-Dman=true, -Dman=false, libxslt-native xmlto-native"
- # libelf is auto-detected without a configuration option
- PACKAGECONFIG[libelf] = ",,elfutils"
- PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false,dbus"
- EXTRA_OEMESON = "-Ddtrace=false -Dfam=false -Dsystemtap=false -Dselinux=disabled"
- do_configure_prepend() {
- sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/gio/gdbus-2.0/codegen/gdbus-codegen.in
- }
- FILES_${PN} = "${libdir}/lib*${SOLIBS} \
- ${libdir}/gio \
- ${libexecdir} \
- gio-querymodules \
- ${datadir}/glib-2.0/schemas"
- FILES_${PN}-utils += "${bindir}/glib-genmarshal \
- ${bindir}/glib-gettextize \
- ${bindir}/glib-mkenums \
- ${bindir}/glib-compile-resources"
- FILES_${PN}-dev += "${libdir}/glib-2.0/include \
- ${libdir}/gio/modules/lib*${SOLIBSDEV} \
- ${libdir}/gio/modules/*.la \
- ${datadir}/glib-2.0/gettext/po/Makefile.in.in \
- ${datadir}/glib-2.0/schemas/gschema.dtd \
- ${datadir}/glib-2.0/valgrind/glib.supp \
- ${datadir}/gettext/its"
- FILES_${PN}-dbg += "${datadir}/glib-2.0/gdb ${datadir}/gdb"
- FILES_${PN}-codegen = "${datadir}/glib-2.0/codegen/*.py \
- ${bindir}/gdbus-codegen"
- FILES_${PN}-utils = "${bindir}/*"
- SHAREDMIMEDEP = "shared-mime-info"
- SHAREDMIMEDEP_class-native = ""
- # When cross compiling for Windows we don't want to include this
- SHAREDMIMEDEP_mingw32 = ""
- RRECOMMENDS_${PN} += "${SHAREDMIMEDEP}"
- ARM_INSTRUCTION_SET_armv4 = "arm"
- ARM_INSTRUCTION_SET_armv5 = "arm"
- # Valgrind runtime detection works using hand-written assembly, which
- # doesn't support mips16e
- CPPFLAGS_append_class-target_mips16e = " -DNVALGRIND=1"
- # GLib generally requires gettext to be present so for USE_NLS to yes. For
- # native builds as i18n is disabled globally we have to add a gettext-native dependency.
- USE_NLS_class-target = "yes"
- USE_NLS_class-nativesdk = "yes"
- DEPENDS_append_class-native = " gettext-native"
- EXEEXT = ""
- EXEEXT_mingw32 = ".exe"
- do_install_append () {
- if [ -f ${D}${bindir}/gtester-report ]; then
- sed ${D}${bindir}/gtester-report -i -e '1s|^#!.*|#!/usr/bin/env python3|'
- fi
- # Remove some unpackaged files
- rm -rf ${D}${datadir}/glib-2.0/codegen/__pycache__
- rm -f ${D}${datadir}/glib-2.0/codegen/*.pyc
- rm -f ${D}${datadir}/glib-2.0/codegen/*.pyo
- if [ -e ${D}${libdir}/charset.alias ]; then
- rm -f ${D}${libdir}/charset.alias
- fi
- # Make sure gio-querymodules is unique among multilibs
- if test "x${MLPREFIX}" != "x"; then
- mv ${D}${libexecdir}/gio-querymodules${EXEEXT} ${D}${libexecdir}/${MLPREFIX}gio-querymodules${EXEEXT}
- fi
- # Autotools does this, meson does not
- mkdir -p ${D}${libdir}/gio/modules
- }
- do_install_append_class-target () {
- # Tests are only installed on targets, not native builds. Separating this out
- # keeps glib-2.0-native from depending on DISTRO_FEATURES
- if [ -f ${D}${datadir}/installed-tests/glib/gdbus-serialization.test ]; then
- if ${@bb.utils.contains("DISTRO_FEATURES", "x11", "false", "true", d)}; then
- rm ${D}${datadir}/installed-tests/glib/gdbus-serialization.test
- fi
- fi
- if [ -f ${D}${datadir}/installed-tests/glib/static-link.test ]; then
- if test "x${MLPREFIX}" != "x"; then
- mv ${D}${datadir}/installed-tests/glib/static-link.test ${D}${datadir}/installed-tests/glib/${MLPREFIX}static-link.test
- fi
- fi
- }
- # As we do not build python3 for windows, makes no sense to ship the script that's using it
- do_install_append_mingw32() {
- rm -f ${D}${bindir}/gtester-report
- }
- CODEGEN_PYTHON_RDEPENDS = "python3 python3-distutils python3-xml"
- CODEGEN_PYTHON_RDEPENDS_mingw32 = ""
- RDEPENDS_${PN}-codegen += "${CODEGEN_PYTHON_RDEPENDS}"
- RDEPENDS_${PN}-ptest += "${PN}-utils"
- RDEPENDS_${PN}-ptest += "\
- coreutils \
- libgcc \
- dbus \
- gnome-desktop-testing \
- tzdata \
- tzdata-americas \
- tzdata-asia \
- tzdata-europe \
- tzdata-posix \
- shared-mime-info \
- ${PN}-locale-ja \
- ${PN}-locale-fr \
- ${PN}-locale-el \
- ${PN}-locale-hr \
- ${PN}-locale-lt \
- ${PN}-locale-pl \
- ${PN}-locale-ru \
- ${PN}-locale-th \
- python3-core \
- python3-modules \
- python3-dbusmock \
- ${PN}-codegen \
- "
- RDEPENDS_${PN}-ptest_append_libc-glibc = "\
- glibc-gconv-utf-16 \
- glibc-charmap-utf-8 \
- glibc-gconv-cp1255 \
- glibc-charmap-cp1255 \
- glibc-gconv-utf-32 \
- glibc-gconv-utf-7 \
- glibc-gconv-euc-jp \
- glibc-gconv-iso8859-1 \
- glibc-gconv-iso8859-15 \
- glibc-charmap-invariant \
- glibc-localedata-translit-cjk-variants \
- locale-base-tr-tr \
- locale-base-lt-lt \
- locale-base-ja-jp.euc-jp \
- locale-base-fa-ir \
- locale-base-ru-ru \
- locale-base-de-de \
- locale-base-hr-hr \
- locale-base-el-gr \
- locale-base-fr-fr \
- locale-base-es-es \
- locale-base-en-gb \
- locale-base-en-us \
- locale-base-pl-pl \
- locale-base-pl-pl.iso-8859-2 \
- "
|