blob: 4cdf1411e8e3d14a70b25367289d592462c93867 [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001SUMMARY = "A general-purpose utility library"
2DESCRIPTION = "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."
3HOMEPAGE = "https://developer.gnome.org/glib/"
4
5# pcre is under BSD;
6# docs/reference/COPYING is with a 'public domai'-like license!
7LICENSE = "LGPLv2+ & BSD & PD"
8LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
9 file://glib/glib.h;beginline=4;endline=17;md5=b4f0f4a399c19e5ebb20c31b79d6bc32 \
10 file://gmodule/COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
11 file://gmodule/gmodule.h;beginline=4;endline=17;md5=b4f0f4a399c19e5ebb20c31b79d6bc32 \
12 file://glib/pcre/COPYING;md5=266ebc3ff74ee9ce6fad65577667c0f4 \
13 file://glib/pcre/pcre.h;beginline=11;endline=35;md5=de27f2bf633d20a2b7af0b1983423283 \
14 file://docs/reference/COPYING;md5=f51a5100c17af6bae00735cd791e1fcc"
15BUGTRACKER = "http://bugzilla.gnome.org"
16SECTION = "libs"
17
Brad Bishop6e60e8b2018-02-01 10:27:11 -050018CVE_PRODUCT = "glib"
19
Patrick Williamsc124f4f2015-09-15 14:41:29 -050020BBCLASSEXTEND = "native nativesdk"
21
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050022DEPENDS = "virtual/libiconv libffi zlib glib-2.0-native"
23DEPENDS_append = " ${@bb.utils.contains('PTEST_ENABLED', '1', ' dbus', '', d)}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050024DEPENDS_class-native = "pkgconfig-native gettext-native libffi-native zlib-native"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050025DEPENDS_class-nativesdk = "nativesdk-libtool nativesdk-gettext nativesdk-libffi nativesdk-zlib glib-2.0-native"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050026
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050027PACKAGES += "${PN}-codegen ${PN}-utils"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050028
29LEAD_SONAME = "libglib-2.0.*"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050030
Brad Bishop6e60e8b2018-02-01 10:27:11 -050031inherit autotools gettext gtk-doc pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache python3native manpages
Patrick Williamsc124f4f2015-09-15 14:41:29 -050032
33S = "${WORKDIR}/glib-${PV}"
34
Brad Bishop6e60e8b2018-02-01 10:27:11 -050035PACKAGECONFIG ??= "system-pcre libmount"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050036# To use the system pcre it must be configured with --enable-unicode-properties
37PACKAGECONFIG[system-pcre] = "--with-pcre=system,--with-pcre=internal,libpcre"
Brad Bishop6e60e8b2018-02-01 10:27:11 -050038PACKAGECONFIG[libmount] = "--enable-libmount,--disable-libmount,util-linux"
39PACKAGECONFIG[manpages] = "--enable-man --with-xml-catalog=${STAGING_ETCDIR_NATIVE}/xml/catalog.xml, --disable-man, libxslt-native xmlto-native"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050040
Brad Bishop6e60e8b2018-02-01 10:27:11 -050041CORECONF = "--disable-dtrace --disable-fam --disable-libelf --disable-systemtap"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050042
43PRINTF = "--enable-included-printf=no"
44PRINTF_darwin = "--enable-included-printf=yes"
45PRINTF_mingw32 = "--enable-included-printf=yes"
46EXTRA_OECONF = "${PRINTF} ${CORECONF}"
47EXTRA_OECONF_class-native = "${CORECONF} --disable-selinux"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050048
Brad Bishop6e60e8b2018-02-01 10:27:11 -050049# Tell configure that we'll have dbus-daemon on the target for the tests
50EXTRA_OECONF_class-target_append = " ${@bb.utils.contains('PTEST_ENABLED', '1', ' ac_cv_prog_DBUS_DAEMON=dbus-daemon', '', d)}"
51
Patrick Williamsc124f4f2015-09-15 14:41:29 -050052do_configure_prepend() {
Patrick Williamsc0f7c042017-02-23 20:41:17 -060053 sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/gio/gdbus-2.0/codegen/gdbus-codegen.in
Patrick Williamsc124f4f2015-09-15 14:41:29 -050054}
55
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050056FILES_${PN} = "${libdir}/lib*${SOLIBS} \
57 ${libdir}/gio \
58 ${libexecdir}/*gio-querymodules \
59 ${datadir}/glib-2.0/schemas"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050060FILES_${PN}-dev += "${libdir}/glib-2.0/include \
61 ${libdir}/gio/modules/lib*${SOLIBSDEV} \
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050062 ${libdir}/gio/modules/*.la \
63 ${bindir}/glib-genmarshal \
64 ${bindir}/glib-gettextize \
65 ${bindir}/glib-mkenums \
66 ${bindir}/glib-compile-resources \
67 ${datadir}/glib-2.0/gettext/po/Makefile.in.in \
Patrick Williamsc0f7c042017-02-23 20:41:17 -060068 ${datadir}/glib-2.0/schemas/gschema.dtd \
Brad Bishopd7bf8c12018-02-25 22:55:05 -050069 ${datadir}/glib-2.0/valgrind/glib.supp \
Patrick Williamsc0f7c042017-02-23 20:41:17 -060070 ${datadir}/gettext/its"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050071FILES_${PN}-dbg += "${datadir}/glib-2.0/gdb ${datadir}/gdb"
72FILES_${PN}-codegen = "${datadir}/glib-2.0/codegen/*.py \
73 ${bindir}/gdbus-codegen"
74FILES_${PN}-utils = "${bindir}/*"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050075
Brad Bishopd7bf8c12018-02-25 22:55:05 -050076RRECOMMENDS_${PN} += "shared-mime-info"
77# When cross compiling for Windows we don't want to include this
78RRECOMMENDS_${PN}_remove_mingw32 = "shared-mime-info"
79
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050080ARM_INSTRUCTION_SET_armv4 = "arm"
81ARM_INSTRUCTION_SET_armv5 = "arm"
Patrick Williamsc0f7c042017-02-23 20:41:17 -060082# Valgrind runtime detection works using hand-written assembly, which
83# doesn't support mips16e
84CPPFLAGS_append_class-target_mips16e = " -DNVALGRIND=1"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050085
Patrick Williamsc124f4f2015-09-15 14:41:29 -050086USE_NLS = "yes"
87
88do_install_append () {
89 if [ -f ${D}${bindir}/gtester-report ]; then
Patrick Williamsc0f7c042017-02-23 20:41:17 -060090 sed ${D}${bindir}/gtester-report -i -e '1s|^#!.*|#!/usr/bin/env python3|'
Patrick Williamsc124f4f2015-09-15 14:41:29 -050091 fi
92
93 # Remove some unpackaged files
Patrick Williamsc0f7c042017-02-23 20:41:17 -060094 rm -rf ${D}${datadir}/glib-2.0/codegen/__pycache__
Patrick Williamsc124f4f2015-09-15 14:41:29 -050095 rm -f ${D}${datadir}/glib-2.0/codegen/*.pyc
96 rm -f ${D}${datadir}/glib-2.0/codegen/*.pyo
97
98 # Some distros have both /bin/perl and /usr/bin/perl, but we set perl location
99 # for target as /usr/bin/perl, so fix it to /usr/bin/perl.
100 if [ -f ${D}${bindir}/glib-mkenums ]; then
101 sed -i -e '1s,#!.*perl,#! ${USRBINPATH}/env perl,' ${D}${bindir}/glib-mkenums
102 fi
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500103
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500104 if [ -e ${D}${libdir}/charset.alias ]; then
105 rm -f ${D}${libdir}/charset.alias
106 fi
107}
108
109do_install_append_class-target () {
110 # Tests are only installed on targets, not native builds. Separating this out
111 # keeps glib-2.0-native from depending on ${DISTRO_FEATURES}
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500112 if [ -f ${D}${datadir}/installed-tests/glib/gdbus-serialization.test ]; then
113 if ${@bb.utils.contains("DISTRO_FEATURES", "x11", "false", "true", d)}; then
114 rm ${D}${datadir}/installed-tests/glib/gdbus-serialization.test
115 fi
116 fi
117
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500118 # Make sure gio-querymodules is unique among multilibs
119 if test "x${MLPREFIX}" != "x"; then
120 mv ${D}${libexecdir}/gio-querymodules ${D}${libexecdir}/${MLPREFIX}gio-querymodules
121 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500122}
123
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500124RDEPENDS_${PN}-codegen += "\
125 python3 \
126 python3-distutils \
127 python3-xml \
128 "
129
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500130RDEPENDS_${PN}-ptest += "\
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500131 dbus \
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500132 gnome-desktop-testing \
133 tzdata \
134 tzdata-americas \
135 tzdata-asia \
136 tzdata-europe \
137 tzdata-posix \
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500138 shared-mime-info \
139 "
140
141RDEPENDS_${PN}-ptest_append_libc-glibc = "\
142 glibc-gconv-utf-16 \
143 glibc-charmap-utf-8 \
144 glibc-gconv-cp1255 \
145 glibc-charmap-cp1255 \
146 glibc-gconv-utf-32 \
147 glibc-gconv-utf-7 \
148 glibc-gconv-euc-jp \
149 glibc-gconv-iso8859-1 \
150 glibc-gconv-iso8859-15 \
151 glibc-charmap-invariant \
152 glibc-localedata-translit-cjk-variants \
153 "
154
155INSANE_SKIP_${PN}-ptest += "libdir"