Andreas Wacknitz
2024-03-24 3df02058fb3d48a999bbc8d5d56c2910fbc249a4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#
# This file and its contents are supplied under the terms of the
# Common Development and Distribution License ("CDDL"), version 1.0.
# You may only use this file in accordance with the terms of version
# 1.0 of the CDDL.
#
# A full copy of the text of the CDDL should have accompanied this
# source.  A copy of the CDDL is also available via the Internet at
# http://www.illumos.org/license/CDDL.
#
 
#
# Copyright 2024 Geoff Weiss
#
 
include ../../../make-rules/shared-macros.mk
ENV= /usr/bin/env
 
COMPONENT_NAME=        gtk4
COMPONENT_VERSION=    4.10.5
COMPONENT_SUMMARY=    GTK+4 - GIMP Toolkit Library for creation of graphical user interfaces
COMPONENT_SRC=        gtk-$(COMPONENT_VERSION)
COMPONENT_ARCHIVE=    $(COMPONENT_SRC).tar.xz
COMPONENT_ARCHIVE_HASH=    \
    sha256:9bd5e437e41d48e3d6a224c336b0fd3fd490036dceb8956ed74b956369af609b
COMPONENT_ARCHIVE_URL=    https://download.gnome.org/sources/gtk/4.10/$(COMPONENT_ARCHIVE)
COMPONENT_PROJECT_URL=    https://www.gtk.org/
COMPONENT_LICENSE=    LGPLv2
COMPONENT_LICENSE_FILE=    COPYING
COMPONENT_CLASSIFICATION=    Desktop (GNOME)/Libraries
COMPONENT_FMRI=        library/desktop/gtk4
 
BUILD_STYLE=        meson
 
include $(WS_MAKE_RULES)/common.mk
 
PATH=$(PATH.gnu)
 
# Uses isinf, etc. only available in c99 and newer
CFLAGS.gcc += -std=gnu11
 
CONFIGURE_OPTIONS += -Dman-pages=true
# requires encumbered x264 support
CONFIGURE_OPTIONS += -Dmedia-gstreamer=disabled
CONFIGURE_OPTIONS += -Dwayland-backend=false
 
COMPONENT_BUILD_ENV += CC=$(CC)
COMPONENT_BUILD_ENV += CFLAGS="$(CFLAGS)"
 
# Add missing rpaths 
COMPONENT_POST_INSTALL_ACTION  = \
   /usr/bin/elfedit -e 'dyn:value -s  RUNPATH "$(JPEG_LIBDIR)"' $(PROTO_DIR)/usr/bin/gtk4-encode-symbolic-svg ; \
   /usr/bin/elfedit -e 'dyn:value -s  RPATH   "$(JPEG_LIBDIR)"' $(PROTO_DIR)/usr/bin/gtk4-encode-symbolic-svg ; \
   /usr/bin/elfedit -e 'dyn:value -s  RUNPATH "$(JPEG_LIBDIR)"' $(PROTO_DIR)/usr/lib/amd64/libgtk-4.so.1.1000.5 ; \
   /usr/bin/elfedit -e 'dyn:value -s  RPATH   "$(JPEG_LIBDIR)"' $(PROTO_DIR)/usr/lib/amd64/libgtk-4.so.1.1000.5 ;
 
COMPONENT_TEST_TRANSFORMS += \
        '-e "s/seed:[0-9]*/seed:/"'
# get rid of the timestamps from the test results
COMPONENT_TEST_TRANSFORMS += '-e "s/[0-9]*[0-9].[0-9][0-9]s//" '
COMPONENT_TEST_TRANSFORMS += '-e "s/OK      [0-9]//" '
COMPONENT_TEST_TRANSFORMS += \
        '-n ' \
        '-e "/OK/p" '
COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-$(MACH64).master
 
# Build dependencies
REQUIRED_PACKAGES += library/python/docutils
 
# Auto-generated dependencies
REQUIRED_PACKAGES += $(JPEG_IMPLEM_PKG)
REQUIRED_PACKAGES += image/library/libpng16
REQUIRED_PACKAGES += image/library/librsvg
REQUIRED_PACKAGES += image/library/libtiff
REQUIRED_PACKAGES += library/c++/harfbuzz
REQUIRED_PACKAGES += library/desktop/cairo
REQUIRED_PACKAGES += library/desktop/gdk-pixbuf
REQUIRED_PACKAGES += library/desktop/graphene
REQUIRED_PACKAGES += library/desktop/pango
REQUIRED_PACKAGES += library/fribidi
REQUIRED_PACKAGES += library/glib2
REQUIRED_PACKAGES += library/print/cups-libs
REQUIRED_PACKAGES += system/library
REQUIRED_PACKAGES += system/library/fontconfig
REQUIRED_PACKAGES += system/library/math
REQUIRED_PACKAGES += x11/library/libepoxy
REQUIRED_PACKAGES += x11/library/libx11
REQUIRED_PACKAGES += x11/library/libxcursor
REQUIRED_PACKAGES += x11/library/libxdamage
REQUIRED_PACKAGES += x11/library/libxext
REQUIRED_PACKAGES += x11/library/libxfixes
REQUIRED_PACKAGES += x11/library/libxi
REQUIRED_PACKAGES += x11/library/libxinerama
REQUIRED_PACKAGES += x11/library/libxrandr