blob: 7ebed0e5fdeac03660e8426006442250b049d1f3 [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 \
Brad Bishop19323692019-04-05 15:28:33 -040025 zlib"
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 Bishop6dbb3162019-11-25 09:41:34 -050031inherit meson gettext gtk-doc pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache manpages features_check
Brad Bishop19323692019-04-05 15:28:33 -040032
Brad Bishopc342db32019-05-15 21:57:59 -040033GTKDOC_MESON_OPTION = "gtk_doc"
Brad Bishop19323692019-04-05 15:28:33 -040034
35# This avoids the need to depend on target python3, which in case of mingw is not even possible.
36# meson's python configuration pokes into python3 configuration, so this provides the native config to it.
37unset _PYTHON_SYSCONFIGDATA_NAME
Patrick Williamsc124f4f2015-09-15 14:41:29 -050038
39S = "${WORKDIR}/glib-${PV}"
40
Brad Bishop19323692019-04-05 15:28:33 -040041PACKAGECONFIG ??= "system-pcre libmount \
42 ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050043# To use the system pcre it must be configured with --enable-unicode-properties
Brad Bishop19323692019-04-05 15:28:33 -040044PACKAGECONFIG[system-pcre] = "-Dinternal_pcre=false,-Dinternal_pcre=true,libpcre"
45PACKAGECONFIG[libmount] = "-Dlibmount=true,-Dlibmount=false,util-linux"
46PACKAGECONFIG[manpages] = "-Dman=true, -Dman=false, libxslt-native xmlto-native"
47# libelf is auto-detected without a configuration option
48PACKAGECONFIG[libelf] = ",,elfutils"
49PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false,dbus"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050050
Brad Bishop15ae2502019-06-18 21:44:24 -040051EXTRA_OEMESON = "-Ddtrace=false -Dfam=false -Dsystemtap=false -Dselinux=disabled"
Brad Bishop6e60e8b2018-02-01 10:27:11 -050052
Patrick Williamsc124f4f2015-09-15 14:41:29 -050053do_configure_prepend() {
Patrick Williamsc0f7c042017-02-23 20:41:17 -060054 sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/gio/gdbus-2.0/codegen/gdbus-codegen.in
Patrick Williamsc124f4f2015-09-15 14:41:29 -050055}
56
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050057FILES_${PN} = "${libdir}/lib*${SOLIBS} \
58 ${libdir}/gio \
59 ${libexecdir}/*gio-querymodules \
60 ${datadir}/glib-2.0/schemas"
Andrew Geissler82c905d2020-04-13 13:39:40 -050061
62FILES_${PN}-utils += "${bindir}/glib-genmarshal \
63 ${bindir}/glib-gettextize \
64 ${bindir}/glib-mkenums \
65 ${bindir}/glib-compile-resources"
66
Patrick Williamsc124f4f2015-09-15 14:41:29 -050067FILES_${PN}-dev += "${libdir}/glib-2.0/include \
68 ${libdir}/gio/modules/lib*${SOLIBSDEV} \
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050069 ${libdir}/gio/modules/*.la \
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050070 ${datadir}/glib-2.0/gettext/po/Makefile.in.in \
Patrick Williamsc0f7c042017-02-23 20:41:17 -060071 ${datadir}/glib-2.0/schemas/gschema.dtd \
Brad Bishopd7bf8c12018-02-25 22:55:05 -050072 ${datadir}/glib-2.0/valgrind/glib.supp \
Patrick Williamsc0f7c042017-02-23 20:41:17 -060073 ${datadir}/gettext/its"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050074FILES_${PN}-dbg += "${datadir}/glib-2.0/gdb ${datadir}/gdb"
75FILES_${PN}-codegen = "${datadir}/glib-2.0/codegen/*.py \
76 ${bindir}/gdbus-codegen"
77FILES_${PN}-utils = "${bindir}/*"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050078
Brad Bishop19323692019-04-05 15:28:33 -040079SHAREDMIMEDEP = "shared-mime-info"
80SHAREDMIMEDEP_class-native = ""
Brad Bishopd7bf8c12018-02-25 22:55:05 -050081# When cross compiling for Windows we don't want to include this
Brad Bishop19323692019-04-05 15:28:33 -040082SHAREDMIMEDEP_mingw32 = ""
83
84RRECOMMENDS_${PN} += "${SHAREDMIMEDEP}"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050085
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050086ARM_INSTRUCTION_SET_armv4 = "arm"
87ARM_INSTRUCTION_SET_armv5 = "arm"
Patrick Williamsc0f7c042017-02-23 20:41:17 -060088# Valgrind runtime detection works using hand-written assembly, which
89# doesn't support mips16e
90CPPFLAGS_append_class-target_mips16e = " -DNVALGRIND=1"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050091
Brad Bishop316dfdd2018-06-25 12:45:53 -040092# GLib generally requires gettext to be present so for USE_NLS to yes. For
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080093# native builds as i18n is disabled globally we have to add a gettext-native dependency.
Brad Bishop316dfdd2018-06-25 12:45:53 -040094USE_NLS_class-target = "yes"
95USE_NLS_class-nativesdk = "yes"
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080096DEPENDS_append_class-native = " gettext-native"
Brad Bishop316dfdd2018-06-25 12:45:53 -040097
98EXEEXT = ""
99EXEEXT_mingw32 = ".exe"
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500100
101do_install_append () {
102 if [ -f ${D}${bindir}/gtester-report ]; then
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600103 sed ${D}${bindir}/gtester-report -i -e '1s|^#!.*|#!/usr/bin/env python3|'
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500104 fi
105
106 # Remove some unpackaged files
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600107 rm -rf ${D}${datadir}/glib-2.0/codegen/__pycache__
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500108 rm -f ${D}${datadir}/glib-2.0/codegen/*.pyc
109 rm -f ${D}${datadir}/glib-2.0/codegen/*.pyo
110
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500111 if [ -e ${D}${libdir}/charset.alias ]; then
112 rm -f ${D}${libdir}/charset.alias
113 fi
Brad Bishop316dfdd2018-06-25 12:45:53 -0400114
115 # Make sure gio-querymodules is unique among multilibs
116 if test "x${MLPREFIX}" != "x"; then
117 mv ${D}${libexecdir}/gio-querymodules${EXEEXT} ${D}${libexecdir}/${MLPREFIX}gio-querymodules${EXEEXT}
118 fi
Brad Bishop19323692019-04-05 15:28:33 -0400119 # Autotools does this, meson does not
120 mkdir -p ${D}${libdir}/gio/modules
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500121}
122
123do_install_append_class-target () {
124 # Tests are only installed on targets, not native builds. Separating this out
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800125 # keeps glib-2.0-native from depending on DISTRO_FEATURES
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500126 if [ -f ${D}${datadir}/installed-tests/glib/gdbus-serialization.test ]; then
127 if ${@bb.utils.contains("DISTRO_FEATURES", "x11", "false", "true", d)}; then
128 rm ${D}${datadir}/installed-tests/glib/gdbus-serialization.test
129 fi
130 fi
Andrew Geissler82c905d2020-04-13 13:39:40 -0500131 if [ -f ${D}${datadir}/installed-tests/glib/static-link.test ]; then
132 if test "x${MLPREFIX}" != "x"; then
133 mv ${D}${datadir}/installed-tests/glib/static-link.test ${D}${datadir}/installed-tests/glib/${MLPREFIX}static-link.test
134 fi
135 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500136}
137
Brad Bishop19323692019-04-05 15:28:33 -0400138# As we do not build python3 for windows, makes no sense to ship the script that's using it
139do_install_append_mingw32() {
140 rm -f ${D}${bindir}/gtester-report
141}
142
Brad Bishop316dfdd2018-06-25 12:45:53 -0400143CODEGEN_PYTHON_RDEPENDS = "python3 python3-distutils python3-xml"
144CODEGEN_PYTHON_RDEPENDS_mingw32 = ""
145
146RDEPENDS_${PN}-codegen += "${CODEGEN_PYTHON_RDEPENDS}"
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500147
Andrew Geissler82c905d2020-04-13 13:39:40 -0500148RDEPENDS_${PN}-ptest += "${PN}-utils"
149
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500150RDEPENDS_${PN}-ptest += "\
Brad Bishop15ae2502019-06-18 21:44:24 -0400151 coreutils \
Brad Bishop393846f2019-05-20 12:24:11 -0400152 libgcc \
Brad Bishop6e60e8b2018-02-01 10:27:11 -0500153 dbus \
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500154 gnome-desktop-testing \
155 tzdata \
156 tzdata-americas \
157 tzdata-asia \
158 tzdata-europe \
159 tzdata-posix \
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500160 shared-mime-info \
Brad Bishopc342db32019-05-15 21:57:59 -0400161 ${PN}-locale-ja \
162 ${PN}-locale-fr \
163 ${PN}-locale-el \
164 ${PN}-locale-hr \
165 ${PN}-locale-lt \
166 ${PN}-locale-pl \
167 ${PN}-locale-ru \
168 ${PN}-locale-th \
Brad Bishopf3f93bb2019-10-16 14:33:32 -0400169 python3-core \
170 python3-modules \
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500171 "
172
173RDEPENDS_${PN}-ptest_append_libc-glibc = "\
174 glibc-gconv-utf-16 \
175 glibc-charmap-utf-8 \
176 glibc-gconv-cp1255 \
177 glibc-charmap-cp1255 \
178 glibc-gconv-utf-32 \
179 glibc-gconv-utf-7 \
180 glibc-gconv-euc-jp \
181 glibc-gconv-iso8859-1 \
182 glibc-gconv-iso8859-15 \
183 glibc-charmap-invariant \
184 glibc-localedata-translit-cjk-variants \
Brad Bishop1a4b7ee2018-12-16 17:11:34 -0800185 locale-base-tr-tr \
186 locale-base-lt-lt \
187 locale-base-ja-jp.euc-jp \
188 locale-base-fa-ir \
189 locale-base-ru-ru \
190 locale-base-de-de \
191 locale-base-hr-hr \
192 locale-base-el-gr \
193 locale-base-fr-fr \
194 locale-base-es-es \
195 locale-base-en-gb \
Brad Bishopc342db32019-05-15 21:57:59 -0400196 locale-base-en-us \
Brad Bishop19323692019-04-05 15:28:33 -0400197 locale-base-pl-pl \
Brad Bishopc342db32019-05-15 21:57:59 -0400198 locale-base-pl-pl.iso-8859-2 \
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500199 "