gtk+3_3.24.43.bb 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. SUMMARY = "Multi-platform toolkit for creating GUIs"
  2. DESCRIPTION = "GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete \
  3. set of widgets, GTK+ is suitable for projects ranging from small one-off projects to complete application suites."
  4. HOMEPAGE = "http://www.gtk.org"
  5. BUGTRACKER = "https://bugzilla.gnome.org/"
  6. SECTION = "libs"
  7. LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
  8. file://gtk/gtk.h;endline=25;md5=1d8dc0fccdbfa26287a271dce88af737 \
  9. file://gdk/gdk.h;endline=25;md5=c920ce39dc88c6f06d3e7c50e08086f2 \
  10. file://tests/testgtk.c;endline=25;md5=cb732daee1d82af7a2bf953cf3cf26f1"
  11. CVE_PRODUCT = "gnome:gtk gtk:gtk\+"
  12. DEPENDS = "glib-2.0 cairo pango atk jpeg libpng gdk-pixbuf gdk-pixbuf-native"
  13. LICENSE = "LGPL-2.0-only & LGPL-2.0-or-later & LGPL-2.1-or-later"
  14. inherit meson gettext pkgconfig gtk-doc update-alternatives gtk-immodules-cache gsettings features_check gobject-introspection
  15. MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
  16. SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar.xz \
  17. file://opengl.patch \
  18. "
  19. SRC_URI[sha256sum] = "7e04f0648515034b806b74ae5d774d87cffb1a2a96c468cb5be476d51bf2f3c7"
  20. S = "${UNPACKDIR}/gtk+-${PV}"
  21. BBCLASSEXTEND = "native nativesdk"
  22. GSETTINGS_PACKAGE:class-native = ""
  23. # versions >= 3.90 are development versions, otherwise like upstream-version-is-even
  24. UPSTREAM_CHECK_REGEX = "[^\d\.](?P<pver>3\.([1-8]?[02468])+(\.\d+)+)\.tar"
  25. ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
  26. do_configure:prepend() {
  27. # These files are generated by wayland-scanner but will race over modification
  28. # time between the copies in the sysroot from wayland-protocols and the copy
  29. # in the source tree. Solve the race by deleting so they need to be regenerated.
  30. rm -f ${S}/modules/input/*-text-input-*.[ch]
  31. }
  32. GTKDOC_MESON_OPTION = 'gtk_doc'
  33. EXTRA_OEMESON = "-Dxinerama=no -Dtests=false"
  34. EXTRA_OEMESON:append:class-native = " -Ddemos=false -Dexamples=false"
  35. PACKAGECONFIG ??= " \
  36. ${@bb.utils.filter('DISTRO_FEATURES', 'opengl x11', d)} \
  37. ${@bb.utils.contains('DISTRO_FEATURES', 'opengl wayland', 'wayland', '', d)} \
  38. "
  39. PACKAGECONFIG:class-native = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
  40. PACKAGECONFIG:class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
  41. PACKAGECONFIG[x11] = "-Dx11_backend=true,-Dx11_backend=false,at-spi2-atk fontconfig libx11 libxext libxcursor libxi libxdamage libxrandr libxrender libxcomposite libxfixes"
  42. # this is provided by oe-core patch that removes epoxy/gl dependency from a X11 build
  43. PACKAGECONFIG[opengl] = "-Dopengl=true,-Dopengl=false,libepoxy"
  44. PACKAGECONFIG[wayland] = "-Dwayland_backend=true,-Dwayland_backend=false,wayland wayland-protocols libxkbcommon virtual/egl virtual/libgles2 wayland-native"
  45. PACKAGECONFIG[cups] = ",,cups,cups gtk3-printbackend-cups"
  46. PACKAGECONFIG[colord] = "-Dcolord=yes,-Dcolord=no,colord"
  47. PACKAGECONFIG[cloudproviders] = "-Dcloudproviders=true,-Dcloudproviders=false,libcloudproviders"
  48. PACKAGECONFIG[tracker3] = "-Dtracker3=true,-Dtracker3=false,tinysparql,localsearch"
  49. prepare_gtk_scripts() {
  50. mv ${D}${bindir}/gtk-update-icon-cache ${D}${bindir}/gtk-update-icon-cache-3.0
  51. # duplicate gtk-query-immodules for post install script update_gtk_immodules_cache
  52. mkdir -p ${D}${libexecdir}
  53. ln ${D}${bindir}/gtk-query-immodules-3.0 ${D}${libexecdir}/${MLPREFIX}gtk-query-immodules-3.0
  54. }
  55. do_install:append:class-target() {
  56. prepare_gtk_scripts
  57. }
  58. do_install:append:class-nativesdk() {
  59. prepare_gtk_scripts
  60. }
  61. do_install:append:class-native() {
  62. create_wrapper ${D}/${bindir}/gtk-update-icon-cache \
  63. GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/2.10.0/loaders.cache
  64. create_wrapper ${D}/${bindir}/gtk-encode-symbolic-svg \
  65. GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/2.10.0/loaders.cache
  66. }
  67. PROVIDES += "gtk-icon-utils"
  68. PACKAGES =+ "${PN}-demo"
  69. LIBV = "3.0.0"
  70. FILES:${PN}-demo = "${bindir}/gtk3-demo \
  71. ${bindir}/gtk3-demo-application \
  72. ${bindir}/gtk3-icon-browser \
  73. ${bindir}/gtk3-widget-factory \
  74. ${datadir}/gtk-3.0/demo \
  75. ${datadir}/applications/gtk3-demo.desktop \
  76. ${datadir}/applications/gtk3-icon-browser.desktop \
  77. ${datadir}/applications/gtk3-widget-factory.desktop \
  78. ${datadir}/icons/hicolor/*/apps/gtk3-demo*.png \
  79. ${datadir}/icons/hicolor/*/apps/gtk3-widget-factory*.png"
  80. FILES:${PN}:append = " ${bindir}/gtk-update-icon-cache-3.0 \
  81. ${bindir}/gtk-query-immodules-3.0 \
  82. ${bindir}/gtk-launch \
  83. ${datadir}/themes ${datadir}/gtk-3.0/emoji \
  84. ${sysconfdir} ${datadir}/glib-2.0/schemas/ \
  85. ${libdir}/gtk-3.0/${LIBV}/engines/libpixmap.so \
  86. ${libdir}/gtk-3.0/modules/*.so"
  87. FILES:${PN}-dev += " \
  88. ${datadir}/gtk-3.0/gtkbuilder.rng \
  89. ${datadir}/gtk-3.0/include \
  90. ${datadir}/gtk-3.0/valgrind \
  91. ${datadir}/gettext/its \
  92. ${libdir}/gtk-3.0/include \
  93. ${libdir}/gtk-3.0/${LIBV}/loaders/*.la \
  94. ${libdir}/gtk-3.0/${LIBV}/immodules/*.la \
  95. ${libdir}/gtk-3.0/3.0.0/printbackends/*.la \
  96. ${libdir}/gtk-3.0/${LIBV}/engines/*.la \
  97. ${libdir}/gtk-3.0/modules/*.la \
  98. ${bindir}/gtk-builder-convert \
  99. ${bindir}/gtk-encode-symbolic-svg \
  100. ${bindir}/gtk-builder-tool \
  101. ${bindir}/gtk-query-settings \
  102. "
  103. GTKBASE_RRECOMMENDS ?= "liberation-fonts \
  104. gdk-pixbuf-loader-png \
  105. gdk-pixbuf-loader-jpeg \
  106. gdk-pixbuf-loader-gif \
  107. gdk-pixbuf-loader-xpm \
  108. shared-mime-info \
  109. adwaita-icon-theme-symbolic \
  110. "
  111. GTKBASE_RRECOMMENDS:class-native ?= "\
  112. "
  113. GTKGLIBC_RRECOMMENDS ?= "${GTKBASE_RRECOMMENDS} glibc-gconv-iso8859-1"
  114. RRECOMMENDS:${PN} = "${GTKBASE_RRECOMMENDS}"
  115. RRECOMMENDS:${PN}:libc-glibc = "${GTKGLIBC_RRECOMMENDS}"
  116. RDEPENDS:${PN}-dev += "${@bb.utils.contains("PACKAGECONFIG", "wayland", "wayland-protocols", "", d)}"
  117. RDEPENDS:${PN}-demo += "librsvg-gtk"
  118. PACKAGES_DYNAMIC += "^gtk3-immodule-.* ^gtk3-printbackend-.*"
  119. ALTERNATIVE:${PN} = "gtk-update-icon-cache"
  120. ALTERNATIVE_TARGET[gtk-update-icon-cache] = "${bindir}/gtk-update-icon-cache-3.0"
  121. ALTERNATIVE_PRIORITY = "30"
  122. python populate_packages:prepend () {
  123. import os.path
  124. gtk_libdir = d.expand('${libdir}/gtk-3.0/${LIBV}')
  125. immodules_root = os.path.join(gtk_libdir, 'immodules')
  126. printmodules_root = os.path.join(gtk_libdir, 'printbackends');
  127. immodules = do_split_packages(d, immodules_root, r'^im-(.*)\.so$', 'gtk3-immodule-%s', 'GTK input module for %s')
  128. if immodules:
  129. d.setVar("GTKIMMODULES_PACKAGES", " ".join(immodules))
  130. do_split_packages(d, printmodules_root, r'^libprintbackend-(.*)\.so$', 'gtk3-printbackend-%s', 'GTK printbackend module for %s')
  131. if (d.getVar('DEBIAN_NAMES')):
  132. d.setVar(d.expand('PKG:${PN}'), '${MLPREFIX}libgtk-3.0')
  133. }