blob: e8215da58325139f6ce68acba06dc5db957a0b78 [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;
Brad Bishop316dfdd2018-06-25 12:45:53 -04006# docs/reference/COPYING is with a 'public domain'-like license!
7LICENSE = "LGPLv2.1+ & BSD & PD"
8LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
9 file://glib/glib.h;beginline=4;endline=17;md5=b88abb7f3ad09607e71cb9d530155906 \
10 file://gmodule/COPYING;md5=4fbd65380cdd255951079008b364516c \
11 file://gmodule/gmodule.h;beginline=4;endline=17;md5=b88abb7f3ad09607e71cb9d530155906 \
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080012 file://glib/pcre/pcre.h;beginline=8;endline=36;md5=3e2977dae4ad05217f58c446237298fc \
Patrick Williamsc124f4f2015-09-15 14:41:29 -050013 file://docs/reference/COPYING;md5=f51a5100c17af6bae00735cd791e1fcc"
14BUGTRACKER = "http://bugzilla.gnome.org"
15SECTION = "libs"
16
Brad Bishop6e60e8b2018-02-01 10:27:11 -050017CVE_PRODUCT = "glib"
18
Patrick Williamsc124f4f2015-09-15 14:41:29 -050019BBCLASSEXTEND = "native nativesdk"
20
Brad Bishop316dfdd2018-06-25 12:45:53 -040021DEPENDS = "glib-2.0-native \
22 virtual/libintl \
23 virtual/libiconv \
24 libffi \
25 zlib \
26 ${@bb.utils.contains('PTEST_ENABLED', '1', 'dbus', '', d)}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050027
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050028PACKAGES += "${PN}-codegen ${PN}-utils"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050029
30LEAD_SONAME = "libglib-2.0.*"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050031
Brad Bishop316dfdd2018-06-25 12:45:53 -040032inherit autotools gettext gtk-doc pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache manpages
Patrick Williamsc124f4f2015-09-15 14:41:29 -050033
34S = "${WORKDIR}/glib-${PV}"
35
Brad Bishop6e60e8b2018-02-01 10:27:11 -050036PACKAGECONFIG ??= "system-pcre libmount"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050037# To use the system pcre it must be configured with --enable-unicode-properties
38PACKAGECONFIG[system-pcre] = "--with-pcre=system,--with-pcre=internal,libpcre"
Brad Bishop6e60e8b2018-02-01 10:27:11 -050039PACKAGECONFIG[libmount] = "--enable-libmount,--disable-libmount,util-linux"
40PACKAGECONFIG[manpages] = "--enable-man --with-xml-catalog=${STAGING_ETCDIR_NATIVE}/xml/catalog.xml, --disable-man, libxslt-native xmlto-native"
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080041PACKAGECONFIG[libelf] = "--enable-libelf,--disable-libelf,elfutils"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050042
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080043CORECONF = "--disable-dtrace --disable-fam --disable-systemtap"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050044
45PRINTF = "--enable-included-printf=no"
46PRINTF_darwin = "--enable-included-printf=yes"
47PRINTF_mingw32 = "--enable-included-printf=yes"
48EXTRA_OECONF = "${PRINTF} ${CORECONF}"
49EXTRA_OECONF_class-native = "${CORECONF} --disable-selinux"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050050
Brad Bishop6e60e8b2018-02-01 10:27:11 -050051# Tell configure that we'll have dbus-daemon on the target for the tests
Brad Bishop316dfdd2018-06-25 12:45:53 -040052EXTRA_OECONF_append_class-target = " ${@bb.utils.contains('PTEST_ENABLED', '1', ' ac_cv_prog_DBUS_DAEMON=dbus-daemon', '', d)}"
Brad Bishop6e60e8b2018-02-01 10:27:11 -050053
Patrick Williamsc124f4f2015-09-15 14:41:29 -050054do_configure_prepend() {
Patrick Williamsc0f7c042017-02-23 20:41:17 -060055 sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/gio/gdbus-2.0/codegen/gdbus-codegen.in
Patrick Williamsc124f4f2015-09-15 14:41:29 -050056}
57
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050058FILES_${PN} = "${libdir}/lib*${SOLIBS} \
59 ${libdir}/gio \
60 ${libexecdir}/*gio-querymodules \
61 ${datadir}/glib-2.0/schemas"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050062FILES_${PN}-dev += "${libdir}/glib-2.0/include \
63 ${libdir}/gio/modules/lib*${SOLIBSDEV} \
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050064 ${libdir}/gio/modules/*.la \
65 ${bindir}/glib-genmarshal \
66 ${bindir}/glib-gettextize \
67 ${bindir}/glib-mkenums \
68 ${bindir}/glib-compile-resources \
69 ${datadir}/glib-2.0/gettext/po/Makefile.in.in \
Patrick Williamsc0f7c042017-02-23 20:41:17 -060070 ${datadir}/glib-2.0/schemas/gschema.dtd \
Brad Bishopd7bf8c12018-02-25 22:55:05 -050071 ${datadir}/glib-2.0/valgrind/glib.supp \
Patrick Williamsc0f7c042017-02-23 20:41:17 -060072 ${datadir}/gettext/its"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050073FILES_${PN}-dbg += "${datadir}/glib-2.0/gdb ${datadir}/gdb"
74FILES_${PN}-codegen = "${datadir}/glib-2.0/codegen/*.py \
75 ${bindir}/gdbus-codegen"
76FILES_${PN}-utils = "${bindir}/*"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050077
Brad Bishopd7bf8c12018-02-25 22:55:05 -050078RRECOMMENDS_${PN} += "shared-mime-info"
79# When cross compiling for Windows we don't want to include this
80RRECOMMENDS_${PN}_remove_mingw32 = "shared-mime-info"
81
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050082ARM_INSTRUCTION_SET_armv4 = "arm"
83ARM_INSTRUCTION_SET_armv5 = "arm"
Patrick Williamsc0f7c042017-02-23 20:41:17 -060084# Valgrind runtime detection works using hand-written assembly, which
85# doesn't support mips16e
86CPPFLAGS_append_class-target_mips16e = " -DNVALGRIND=1"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050087
Brad Bishop316dfdd2018-06-25 12:45:53 -040088# GLib generally requires gettext to be present so for USE_NLS to yes. For
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080089# native builds as i18n is disabled globally we have to add a gettext-native dependency.
Brad Bishop316dfdd2018-06-25 12:45:53 -040090USE_NLS_class-target = "yes"
91USE_NLS_class-nativesdk = "yes"
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080092DEPENDS_append_class-native = " gettext-native"
Brad Bishop316dfdd2018-06-25 12:45:53 -040093
94EXEEXT = ""
95EXEEXT_mingw32 = ".exe"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050096
97do_install_append () {
98 if [ -f ${D}${bindir}/gtester-report ]; then
Patrick Williamsc0f7c042017-02-23 20:41:17 -060099 sed ${D}${bindir}/gtester-report -i -e '1s|^#!.*|#!/usr/bin/env python3|'
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500100 fi
101
102 # Remove some unpackaged files
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600103 rm -rf ${D}${datadir}/glib-2.0/codegen/__pycache__
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500104 rm -f ${D}${datadir}/glib-2.0/codegen/*.pyc
105 rm -f ${D}${datadir}/glib-2.0/codegen/*.pyo
106
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500107 if [ -e ${D}${libdir}/charset.alias ]; then
108 rm -f ${D}${libdir}/charset.alias
109 fi
Brad Bishop316dfdd2018-06-25 12:45:53 -0400110
111 # Make sure gio-querymodules is unique among multilibs
112 if test "x${MLPREFIX}" != "x"; then
113 mv ${D}${libexecdir}/gio-querymodules${EXEEXT} ${D}${libexecdir}/${MLPREFIX}gio-querymodules${EXEEXT}
114 fi
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500115}
116
117do_install_append_class-target () {
118 # Tests are only installed on targets, not native builds. Separating this out
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800119 # keeps glib-2.0-native from depending on DISTRO_FEATURES
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500120 if [ -f ${D}${datadir}/installed-tests/glib/gdbus-serialization.test ]; then
121 if ${@bb.utils.contains("DISTRO_FEATURES", "x11", "false", "true", d)}; then
122 rm ${D}${datadir}/installed-tests/glib/gdbus-serialization.test
123 fi
124 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500125}
126
Brad Bishop316dfdd2018-06-25 12:45:53 -0400127CODEGEN_PYTHON_RDEPENDS = "python3 python3-distutils python3-xml"
128CODEGEN_PYTHON_RDEPENDS_mingw32 = ""
129
130RDEPENDS_${PN}-codegen += "${CODEGEN_PYTHON_RDEPENDS}"
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500131
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500132RDEPENDS_${PN}-ptest += "\
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500133 dbus \
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500134 gnome-desktop-testing \
135 tzdata \
136 tzdata-americas \
137 tzdata-asia \
138 tzdata-europe \
139 tzdata-posix \
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500140 shared-mime-info \
141 "
142
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800143# When https://gitlab.gnome.org/GNOME/glib/issues/1343 is
144# fixed add locale-base-pl-pl
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500145RDEPENDS_${PN}-ptest_append_libc-glibc = "\
146 glibc-gconv-utf-16 \
147 glibc-charmap-utf-8 \
148 glibc-gconv-cp1255 \
149 glibc-charmap-cp1255 \
150 glibc-gconv-utf-32 \
151 glibc-gconv-utf-7 \
152 glibc-gconv-euc-jp \
153 glibc-gconv-iso8859-1 \
154 glibc-gconv-iso8859-15 \
155 glibc-charmap-invariant \
156 glibc-localedata-translit-cjk-variants \
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800157 locale-base-tr-tr \
158 locale-base-lt-lt \
159 locale-base-ja-jp.euc-jp \
160 locale-base-fa-ir \
161 locale-base-ru-ru \
162 locale-base-de-de \
163 locale-base-hr-hr \
164 locale-base-el-gr \
165 locale-base-fr-fr \
166 locale-base-es-es \
167 locale-base-en-gb \
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500168 "
169
170INSANE_SKIP_${PN}-ptest += "libdir"