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