cairo: enable X integration

This commit is contained in:
Jeremy Soller 2025-05-04 18:15:16 -06:00
parent a775a29fb4
commit d4fef6be80
No known key found for this signature in database
GPG Key ID: 670FDFB5428E05CA
2 changed files with 57 additions and 11 deletions

View File

@ -1,6 +1,7 @@
[source]
tar = "https://www.cairographics.org/releases/cairo-1.18.4.tar.xz"
blake3 = "b9fa14e02f85ec4e72396c62236c98502d04dbbdf8daf01ab9557a1c7aa7106e"
patches = ["redox.patch"]
[build]
dependencies = [
@ -12,8 +13,14 @@ dependencies = [
"libffi",
"libiconv",
"libpng",
"libpthread-stubs",
"libx11",
"libxau",
"libxcb",
"libxext",
"pcre2",
"pixman",
"x11proto",
"zlib",
]
template = "custom"
@ -24,5 +31,6 @@ DYNAMIC_INIT
#TODO: why is -lexpat not automatic?
cookbook_meson \
-Dc_args="-DCAIRO_NO_MUTEX=1 -DM_SQRT2=1.41421356237309504880 -DM_LN2=0.69314718055994530942 -lexpat" \
-Dxlib-xcb=enabled \
-Dtests=disabled
"""

View File

@ -1,12 +1,50 @@
diff -ruwN source/src/cairoint.h source-new/src/cairoint.h
--- source/src/cairoint.h 2018-08-16 19:10:53.000000000 -0600
+++ source-new/src/cairoint.h 2019-10-02 19:55:59.131388156 -0600
@@ -187,7 +187,7 @@
static inline int cairo_const
_cairo_popcount (uint32_t mask)
diff -ruwN cairo-1.18.4/meson.build source/meson.build
--- cairo-1.18.4/meson.build 2025-03-08 05:35:35.000000000 -0700
+++ source/meson.build 2025-05-04 18:07:04.594213814 -0600
@@ -440,13 +440,13 @@
if feature_conf.get('CAIRO_HAS_XCB_SURFACE', 0) == 1
xcbshm_dep = dependency('xcb-shm', required: get_option('xcb'))
if xcbshm_dep.found()
- feature_conf.set('CAIRO_HAS_XCB_SHM_FUNCTIONS', 1)
- deps += [xcbshm_dep]
- built_features += [{
- 'name': 'cairo-xcb-shm',
- 'description': 'XCB/SHM functions',
- 'deps': [xcbshm_dep],
- }]
+ #feature_conf.set('CAIRO_HAS_XCB_SHM_FUNCTIONS', 1)
+ #deps += [xcbshm_dep]
+ #built_features += [{
+ # 'name': 'cairo-xcb-shm',
+ # 'description': 'XCB/SHM functions',
+ # 'deps': [xcbshm_dep],
+ #}]
endif
endif
diff -ruwN cairo-1.18.4/perf/Makefile.in source/perf/Makefile.in
--- cairo-1.18.4/perf/Makefile.in 1969-12-31 17:00:00.000000000 -0700
+++ source/perf/Makefile.in 2025-05-01 12:52:11.400963345 -0600
@@ -0,0 +1,3 @@
+all:
+
+install:
diff -ruwN cairo-1.18.4/src/cairo-ps-surface.c source/src/cairo-ps-surface.c
--- cairo-1.18.4/src/cairo-ps-surface.c 2025-03-08 05:35:35.000000000 -0700
+++ source/src/cairo-ps-surface.c 2025-05-04 18:08:43.821264417 -0600
@@ -102,7 +102,7 @@
#define DEBUG_FALLBACK(s)
#endif
-#ifndef HAVE_CTIME_R
+#if !defined(HAVE_CTIME_R) && !defined(__redox__)
static char *ctime_r(const time_t *timep, char *buf)
{
-#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+#if !defined(__redox__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
return __builtin_popcount (mask);
#else
register int y;
(void)buf;
diff -ruwN cairo-1.18.4/test/Makefile.in source/test/Makefile.in
--- cairo-1.18.4/test/Makefile.in 1969-12-31 17:00:00.000000000 -0700
+++ source/test/Makefile.in 2025-05-01 12:52:11.400963345 -0600
@@ -0,0 +1,3 @@
+all:
+
+install: