xref: /OK3568_Linux_fs/yocto/meta-openembedded/meta-gnome/recipes-gnome/gtk4/gtk4_4.6.2.bb (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunSUMMARY = "Multi-platform toolkit for creating GUIs"
2*4882a593SmuzhiyunDESCRIPTION = "GTK is a multi-platform toolkit for creating graphical user interfaces. Offering a complete \
3*4882a593Smuzhiyunset of widgets, GTK is suitable for projects ranging from small one-off projects to complete application suites."
4*4882a593SmuzhiyunHOMEPAGE = "http://www.gtk.org"
5*4882a593SmuzhiyunBUGTRACKER = "https://bugzilla.gnome.org/"
6*4882a593SmuzhiyunSECTION = "libs"
7*4882a593Smuzhiyun
8*4882a593SmuzhiyunDEPENDS = " \
9*4882a593Smuzhiyun    sassc-native \
10*4882a593Smuzhiyun    glib-2.0 \
11*4882a593Smuzhiyun    libepoxy \
12*4882a593Smuzhiyun    graphene \
13*4882a593Smuzhiyun    cairo \
14*4882a593Smuzhiyun    pango \
15*4882a593Smuzhiyun    atk \
16*4882a593Smuzhiyun    jpeg \
17*4882a593Smuzhiyun    libpng \
18*4882a593Smuzhiyun    librsvg \
19*4882a593Smuzhiyun    tiff \
20*4882a593Smuzhiyun    gdk-pixbuf-native gdk-pixbuf \
21*4882a593Smuzhiyun"
22*4882a593Smuzhiyun
23*4882a593SmuzhiyunLICENSE = "LGPL-2.0-only & LGPL-2.0-or-later & LGPL-2.1-or-later"
24*4882a593SmuzhiyunLIC_FILES_CHKSUM = " \
25*4882a593Smuzhiyun    file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
26*4882a593Smuzhiyun    file://gtk/gtk.h;endline=25;md5=1d8dc0fccdbfa26287a271dce88af737 \
27*4882a593Smuzhiyun    file://gdk/gdk.h;endline=25;md5=c920ce39dc88c6f06d3e7c50e08086f2 \
28*4882a593Smuzhiyun    file://tests/testgtk.c;endline=25;md5=49d06770681b8322466b52ed19d29fb2 \
29*4882a593Smuzhiyun"
30*4882a593Smuzhiyun
31*4882a593SmuzhiyunMAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
32*4882a593Smuzhiyun
33*4882a593SmuzhiyunUPSTREAM_CHECK_REGEX = "gtk-(?P<pver>\d+\.(\d*[02468])+(\.\d+)+)\.tar.xz"
34*4882a593Smuzhiyun
35*4882a593SmuzhiyunSRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk/${MAJ_VER}/gtk-${PV}.tar.xz"
36*4882a593SmuzhiyunSRC_URI[sha256sum] = "ff263af609a50eb76056653592d929459aef4819a444c436f6d52c6f63c1faec"
37*4882a593Smuzhiyun
38*4882a593SmuzhiyunS = "${WORKDIR}/gtk-${PV}"
39*4882a593Smuzhiyun
40*4882a593Smuzhiyuninherit meson gettext pkgconfig gtk-doc update-alternatives gsettings features_check gobject-introspection
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun# TBD: nativesdk
43*4882a593Smuzhiyun# gobject-introspection.bbclass pins introspection off for nativesk. As long as
44*4882a593Smuzhiyun# we do not remove this wisdom or hack gtk4, it is not possible to build
45*4882a593Smuzhiyun# nativesdk-gtk4
46*4882a593SmuzhiyunBBCLASSEXTEND = "native"
47*4882a593Smuzhiyun
48*4882a593SmuzhiyunGSETTINGS_PACKAGE:class-native = ""
49*4882a593Smuzhiyun
50*4882a593SmuzhiyunANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
51*4882a593SmuzhiyunREQUIRED_DISTRO_FEATURES = "opengl"
52*4882a593Smuzhiyun
53*4882a593SmuzhiyunGIR_MESON_ENABLE_FLAG = 'enabled'
54*4882a593SmuzhiyunGIR_MESON_DISABLE_FLAG = 'disabled'
55*4882a593SmuzhiyunGTKDOC_MESON_OPTION = 'gtk_doc'
56*4882a593Smuzhiyun
57*4882a593SmuzhiyunEXTRA_OEMESON = " -Dbuild-tests=false"
58*4882a593Smuzhiyun
59*4882a593SmuzhiyunPACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}"
60*4882a593SmuzhiyunPACKAGECONFIG:class-native = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
61*4882a593SmuzhiyunPACKAGECONFIG:class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
62*4882a593Smuzhiyun
63*4882a593SmuzhiyunPACKAGECONFIG[x11] = "-Dx11-backend=true,-Dx11-backend=false,at-spi2-atk fontconfig libx11 libxext libxcursor libxi libxdamage libxrandr libxrender libxcomposite libxfixes xinerama"
64*4882a593SmuzhiyunPACKAGECONFIG[wayland] = "-Dwayland-backend=true,-Dwayland-backend=false,wayland wayland-protocols libxkbcommon virtual/egl virtual/libgles2 wayland-native"
65*4882a593SmuzhiyunPACKAGECONFIG[cups] = "-Dprint-cups=enabled,-Dprint-cups=disabled,cups"
66*4882a593SmuzhiyunPACKAGECONFIG[colord] = "-Dcolord=enabled,-Dcolord=disabled,colord"
67*4882a593Smuzhiyun# gtk4 wants gstreamer-player-1.0 -> gstreamer1.0-plugins-bad
68*4882a593SmuzhiyunPACKAGECONFIG[gstreamer] = "-Dmedia-gstreamer=enabled,-Dmedia-gstreamer=disabled,gstreamer1.0-plugins-bad"
69*4882a593SmuzhiyunPACKAGECONFIG[tracker] = "-Dtracker=enabled,-Dtracker=disabled,tracker"
70*4882a593Smuzhiyun
71*4882a593Smuzhiyun
72*4882a593Smuzhiyundo_compile:prepend() {
73*4882a593Smuzhiyun    export GIR_EXTRA_LIBS_PATH="${B}/gdk/.libs"
74*4882a593Smuzhiyun}
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun
77*4882a593SmuzhiyunPACKAGES =+ "${PN}-demo"
78*4882a593SmuzhiyunLIBV = "4.0.0"
79*4882a593Smuzhiyun
80*4882a593SmuzhiyunFILES:${PN}-demo = " \
81*4882a593Smuzhiyun    ${datadir}/applications/org.gtk.Demo4.desktop \
82*4882a593Smuzhiyun    ${datadir}/applications/org.gtk.IconBrowser4.desktop \
83*4882a593Smuzhiyun    ${datadir}/applications/org.gtk.WidgetFactory4.desktop \
84*4882a593Smuzhiyun    ${datadir}/icons/hicolor/*/apps/org.gtk.Demo4*.* \
85*4882a593Smuzhiyun    ${datadir}/icons/hicolor/*/apps/org.gtk.IconBrowser4*.* \
86*4882a593Smuzhiyun    ${datadir}/icons/hicolor/*/apps/org.gtk.WidgetFactory4*.* \
87*4882a593Smuzhiyun    ${bindir}/gtk4-demo \
88*4882a593Smuzhiyun    ${bindir}/gtk4-demo-application \
89*4882a593Smuzhiyun    ${bindir}/gtk4-icon-browser \
90*4882a593Smuzhiyun    ${bindir}/gtk4-widget-factory \
91*4882a593Smuzhiyun"
92*4882a593Smuzhiyun
93*4882a593SmuzhiyunFILES:${PN}:append = " \
94*4882a593Smuzhiyun    ${datadir}/glib-2.0/schemas/ \
95*4882a593Smuzhiyun    ${datadir}/gtk-4.0/emoji/ \
96*4882a593Smuzhiyun    ${datadir}/metainfo/ \
97*4882a593Smuzhiyun    ${datadir}/icons/hicolor/*/apps/org.gtk.PrintEditor4*.* \
98*4882a593Smuzhiyun    ${libdir}/gtk-4.0/${LIBV}/printbackends \
99*4882a593Smuzhiyun    ${bindir}/gtk4-update-icon-cache \
100*4882a593Smuzhiyun    ${bindir}/gtk4-launch \
101*4882a593Smuzhiyun"
102*4882a593Smuzhiyun
103*4882a593SmuzhiyunFILES:${PN}-dev += " \
104*4882a593Smuzhiyun    ${datadir}/gtk-4.0/gtk4builder.rng \
105*4882a593Smuzhiyun    ${datadir}/gtk-4.0/include \
106*4882a593Smuzhiyun    ${datadir}/gtk-4.0/valgrind \
107*4882a593Smuzhiyun    ${datadir}/gettext/its \
108*4882a593Smuzhiyun    ${bindir}/gtk4-builder-tool \
109*4882a593Smuzhiyun    ${bindir}/gtk4-encode-symbolic-svg \
110*4882a593Smuzhiyun    ${bindir}/gtk4-query-settings \
111*4882a593Smuzhiyun"
112*4882a593Smuzhiyun
113*4882a593SmuzhiyunGTKBASE_RRECOMMENDS ?= " \
114*4882a593Smuzhiyun    liberation-fonts \
115*4882a593Smuzhiyun    gdk-pixbuf-loader-png \
116*4882a593Smuzhiyun    gdk-pixbuf-loader-jpeg \
117*4882a593Smuzhiyun    gdk-pixbuf-loader-gif \
118*4882a593Smuzhiyun    gdk-pixbuf-loader-xpm \
119*4882a593Smuzhiyun    shared-mime-info \
120*4882a593Smuzhiyun    adwaita-icon-theme-symbolic \
121*4882a593Smuzhiyun"
122*4882a593Smuzhiyun
123*4882a593SmuzhiyunGTKBASE_RRECOMMENDS:class-native ?= ""
124*4882a593Smuzhiyun
125*4882a593SmuzhiyunGTKGLIBC_RRECOMMENDS ?= "${GTKBASE_RRECOMMENDS} glibc-gconv-iso8859-1"
126*4882a593Smuzhiyun
127*4882a593SmuzhiyunRRECOMMENDS:${PN} = "${GTKBASE_RRECOMMENDS}"
128*4882a593SmuzhiyunRRECOMMENDS:${PN}:libc-glibc = "${GTKGLIBC_RRECOMMENDS}"
129*4882a593SmuzhiyunRDEPENDS:${PN}-dev += "${@bb.utils.contains("PACKAGECONFIG", "wayland", "wayland-protocols", "", d)}"
130*4882a593Smuzhiyun
131*4882a593SmuzhiyunPACKAGES_DYNAMIC += "^gtk4-printbackend-.*"
132*4882a593Smuzhiyunpython populate_packages:prepend () {
133*4882a593Smuzhiyun    import os.path
134*4882a593Smuzhiyun
135*4882a593Smuzhiyun    gtk_libdir = d.expand('${libdir}/gtk-3.0/${LIBV}')
136*4882a593Smuzhiyun    printmodules_root = os.path.join(gtk_libdir, 'printbackends');
137*4882a593Smuzhiyun
138*4882a593Smuzhiyun    do_split_packages(d, printmodules_root, r'^libprintbackend-(.*)\.so$', 'gtk4-printbackend-%s', 'GTK printbackend module for %s')
139*4882a593Smuzhiyun
140*4882a593Smuzhiyun    if (d.getVar('DEBIAN_NAMES')):
141*4882a593Smuzhiyun        d.setVar(d.expand('PKG:${PN}'), '${MLPREFIX}libgtk-4.0')
142*4882a593Smuzhiyun}
143