mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-22 03:30:05 +02:00
cairo: Disable static, and add "xcairo" recipe that builds the Xlib backend as a standalone library.
This commit is contained in:
@@ -19,7 +19,7 @@ COPYRIGHT="2000, 2002, 2004-2007 Keith Packard
|
||||
2002-2010 many others"
|
||||
LICENSE="GNU LGPL v2.1
|
||||
MPL v1.1"
|
||||
REVISION="2"
|
||||
REVISION="3"
|
||||
SOURCE_URI="http://cairographics.org/releases/cairo-$portVersion.tar.xz"
|
||||
CHECKSUM_SHA256="5e7b29b3f113ef870d1e3ecf8adf21f923396401604bda16d44be45e66052331"
|
||||
PATCHES="cairo-$portVersion.patchset"
|
||||
@@ -27,6 +27,8 @@ PATCHES="cairo-$portVersion.patchset"
|
||||
ARCHITECTURES="all !x86_gcc2"
|
||||
SECONDARY_ARCHITECTURES="x86"
|
||||
|
||||
# This recipe MUST be kept in sync with xcairo!
|
||||
|
||||
libVersion="2.11600.0"
|
||||
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
|
||||
|
||||
@@ -88,7 +90,8 @@ BUILD()
|
||||
{
|
||||
autoreconf -fi
|
||||
export CFLAGS=-D__BSD_VISIBLE
|
||||
runConfigure ./configure
|
||||
runConfigure ./configure \
|
||||
--disable-static --enable-shared
|
||||
make $jobArgs
|
||||
}
|
||||
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
From 888e4094afccd2016aa72828b7d49263ee80d8db Mon Sep 17 00:00:00 2001
|
||||
From 7fa107c58c2809a9059128e754ce65d96be1e29e Mon Sep 17 00:00:00 2001
|
||||
From: Jerome Duval <jerome.duval@gmail.com>
|
||||
Date: Fri, 3 Oct 2014 18:33:08 +0000
|
||||
Subject: Haiku patch
|
||||
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 2ce1959..c04c05c 100644
|
||||
index 5e33c96..3baa8a8 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -287,6 +287,11 @@ CAIRO_ENABLE_SURFACE_BACKEND(beos, BeOS/Zeta, no, [
|
||||
@@ -270,6 +270,11 @@ CAIRO_ENABLE_SURFACE_BACKEND(beos, BeOS/Zeta, no, [
|
||||
AC_CHECK_LIB(be,main,beos_LIBS="$beos_LIBS -lbe")
|
||||
AC_CHECK_LIB(zeta,main,beos_LIBS="$beos_LIBS -lzeta")
|
||||
;;
|
||||
@@ -21,17 +21,17 @@ index 2ce1959..c04c05c 100644
|
||||
use_beos="no (requires a BeOS platform)"
|
||||
;;
|
||||
--
|
||||
2.10.2
|
||||
2.30.2
|
||||
|
||||
|
||||
From e3e4f468cc12266d121a2ddb99808a090b15e157 Mon Sep 17 00:00:00 2001
|
||||
From cc2b20d99233178bfdc567c0d56ed23bb50825ec Mon Sep 17 00:00:00 2001
|
||||
From: Adrien Destugues <pulkomandy@gmail.com>
|
||||
Date: Mon, 6 Oct 2014 18:07:36 +0200
|
||||
Subject: Add missing include fenv.h.
|
||||
|
||||
|
||||
diff --git a/test/cairo-test.c b/test/cairo-test.c
|
||||
index a351b01..474f34c 100644
|
||||
index d93468b..9d5901d 100644
|
||||
--- a/test/cairo-test.c
|
||||
+++ b/test/cairo-test.c
|
||||
@@ -40,6 +40,7 @@
|
||||
@@ -43,10 +43,10 @@ index a351b01..474f34c 100644
|
||||
#if HAVE_FCFINI
|
||||
#include <fontconfig/fontconfig.h>
|
||||
--
|
||||
2.10.2
|
||||
2.30.2
|
||||
|
||||
|
||||
From 66cf163733ee56380b0525b918b7969849ed0229 Mon Sep 17 00:00:00 2001
|
||||
From 922d7a3f67ebee8dcb0365d04023450e7e17574f Mon Sep 17 00:00:00 2001
|
||||
From: Jerome Duval <jerome.duval@gmail.com>
|
||||
Date: Fri, 21 Nov 2014 22:11:40 +0000
|
||||
Subject: link tests against libnetwork.
|
||||
@@ -66,7 +66,7 @@ index 40b35bc..ee150d9 100644
|
||||
SUBDIRS = micro
|
||||
|
||||
diff --git a/test/Makefile.am b/test/Makefile.am
|
||||
index b2fcd27..cf7e4ad 100644
|
||||
index e3c42ea..6ce956f 100644
|
||||
--- a/test/Makefile.am
|
||||
+++ b/test/Makefile.am
|
||||
@@ -94,7 +94,7 @@ cairo_test_suite_LDADD = \
|
||||
@@ -78,7 +78,7 @@ index b2fcd27..cf7e4ad 100644
|
||||
cairo_test_suite_DEPENDENCIES = \
|
||||
$(top_builddir)/test/pdiff/libpdiff.la \
|
||||
$(top_builddir)/boilerplate/libcairoboilerplate.la \
|
||||
@@ -210,7 +210,7 @@ AM_CPPFLAGS = \
|
||||
@@ -211,7 +211,7 @@ AM_CPPFLAGS = \
|
||||
-I$(top_srcdir)/src \
|
||||
-I$(top_builddir)/src \
|
||||
$(CAIRO_CFLAGS)
|
||||
@@ -88,5 +88,57 @@ index b2fcd27..cf7e4ad 100644
|
||||
$(top_builddir)/boilerplate/libcairoboilerplate.la: $(top_builddir)/src/libcairo.la
|
||||
cd $(top_builddir)/boilerplate && $(MAKE) $(AM_MAKEFLAGS) libcairoboilerplate.la
|
||||
--
|
||||
2.10.2
|
||||
2.30.2
|
||||
|
||||
|
||||
From 6fb43c65d687a5fa703b0f7457d6464bc2929ac4 Mon Sep 17 00:00:00 2001
|
||||
From: Augustin Cavalier <waddlesplash@gmail.com>
|
||||
Date: Fri, 17 Dec 2021 22:56:11 -0500
|
||||
Subject: Xlib: Do not attempt to use shm.
|
||||
|
||||
|
||||
diff --git a/src/cairo-xlib-surface-shm.c b/src/cairo-xlib-surface-shm.c
|
||||
index 1ee1e3d..9803115 100644
|
||||
--- a/src/cairo-xlib-surface-shm.c
|
||||
+++ b/src/cairo-xlib-surface-shm.c
|
||||
@@ -37,12 +37,12 @@
|
||||
|
||||
#include "cairoint.h"
|
||||
|
||||
-#if !CAIRO_HAS_XLIB_XCB_FUNCTIONS
|
||||
+#if 1
|
||||
|
||||
#include "cairo-xlib-private.h"
|
||||
#include "cairo-xlib-surface-private.h"
|
||||
|
||||
-#if !HAVE_X11_EXTENSIONS_XSHM_H || !(HAVE_X11_EXTENSIONS_SHMPROTO_H || HAVE_X11_EXTENSIONS_SHMSTR_H)
|
||||
+#if 1
|
||||
void _cairo_xlib_display_init_shm (cairo_xlib_display_t *display) {}
|
||||
|
||||
cairo_surface_t *
|
||||
diff --git a/src/cairo-xlib-surface.c b/src/cairo-xlib-surface.c
|
||||
index 2a6d896..c46f660 100644
|
||||
--- a/src/cairo-xlib-surface.c
|
||||
+++ b/src/cairo-xlib-surface.c
|
||||
@@ -70,7 +70,9 @@
|
||||
|
||||
#include <X11/extensions/XShm.h>
|
||||
#include <sys/ipc.h>
|
||||
+#ifndef __HAIKU__
|
||||
#include <sys/shm.h>
|
||||
+#endif
|
||||
|
||||
#define XLIB_COORD_MAX 32767
|
||||
|
||||
@@ -1390,7 +1392,7 @@ _cairo_xlib_surface_acquire_source_image (void *abstract_surf
|
||||
*image_extra = NULL;
|
||||
*image_out = (cairo_image_surface_t *)
|
||||
_cairo_xlib_surface_get_shm (abstract_surface, FALSE);
|
||||
- if (*image_out)
|
||||
+ if (*image_out)
|
||||
return (*image_out)->base.status;
|
||||
|
||||
extents.x = extents.y = 0;
|
||||
--
|
||||
2.30.2
|
||||
|
||||
|
||||
122
x11-libs/cairo/xcairo-1.16.0.recipe
Normal file
122
x11-libs/cairo/xcairo-1.16.0.recipe
Normal file
@@ -0,0 +1,122 @@
|
||||
SUMMARY="Multi-platform 2D graphics library"
|
||||
DESCRIPTION="Cairo is a 2D graphics library with support for multiple output \
|
||||
devices. Currently supported output targets include the X Window \
|
||||
System (via both Xlib and XCB), quartz, win32, and image buffers, \
|
||||
as well as PDF, PostScript, and SVG file output. Experimental backends \
|
||||
include OpenGL, BeOS, OS/2, and DirectFB."
|
||||
HOMEPAGE="http://cairographics.org/"
|
||||
COPYRIGHT="2000, 2002, 2004-2007 Keith Packard
|
||||
2002-2003 University of Southern California
|
||||
2004-2010 Red Hat, Inc.
|
||||
2005-2010 Mozilla Corporation
|
||||
2006-2009 Adrian Johnson
|
||||
2007-2009 Chris Wilson
|
||||
2006-2013 Intel Corporation
|
||||
2011 Andrea Canciani
|
||||
2011 Samsung Electronics
|
||||
2010-2011 Linaro Limited
|
||||
2009-2010 Eric Anholt
|
||||
2002-2010 many others"
|
||||
LICENSE="GNU LGPL v2.1
|
||||
MPL v1.1"
|
||||
REVISION="2"
|
||||
SOURCE_URI="http://cairographics.org/releases/cairo-$portVersion.tar.xz"
|
||||
CHECKSUM_SHA256="5e7b29b3f113ef870d1e3ecf8adf21f923396401604bda16d44be45e66052331"
|
||||
PATCHES="cairo-$portVersion.patchset"
|
||||
SOURCE_DIR="cairo-$portVersion"
|
||||
|
||||
ARCHITECTURES="all !x86_gcc2"
|
||||
SECONDARY_ARCHITECTURES="x86"
|
||||
|
||||
libVersion="2.11600.0"
|
||||
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
|
||||
|
||||
PROVIDES="
|
||||
xcairo$secondaryArchSuffix = $portVersion
|
||||
lib:libcairo_xlib$secondaryArchSuffix = $libVersionCompat
|
||||
"
|
||||
REQUIRES="
|
||||
haiku$secondaryArchSuffix
|
||||
cairo$secondaryArchSuffix == $portVersion
|
||||
lib:libpixman_1$secondaryArchSuffix
|
||||
lib:libX11$secondaryArchSuffix
|
||||
"
|
||||
|
||||
PROVIDES_devel="
|
||||
xcairo${secondaryArchSuffix}_devel = $portVersion
|
||||
devel:libcairo_xlib$secondaryArchSuffix = $libVersionCompat
|
||||
"
|
||||
REQUIRES_devel="
|
||||
xcairo$secondaryArchSuffix == $portVersion base
|
||||
cairo${secondaryArchSuffix}_devel == $portVersion
|
||||
devel:libpixman_1$secondaryArchSuffix
|
||||
devel:libX11$secondaryArchSuffix
|
||||
"
|
||||
|
||||
BUILD_REQUIRES="
|
||||
haiku${secondaryArchSuffix}_devel
|
||||
cairo${secondaryArchSuffix}_devel == $portVersion
|
||||
devel:libX11$secondaryArchSuffix
|
||||
"
|
||||
BUILD_PREREQUIRES="
|
||||
cmd:aclocal
|
||||
cmd:autoconf
|
||||
cmd:automake
|
||||
cmd:gcc$secondaryArchSuffix
|
||||
cmd:ld$secondaryArchSuffix
|
||||
cmd:libtoolize
|
||||
cmd:make
|
||||
cmd:pkg_config$secondaryArchSuffix
|
||||
"
|
||||
|
||||
defineDebugInfoPackage xcairo$secondaryArchSuffix \
|
||||
"$libDir"/libcairo-xlib.so.$libVersion
|
||||
|
||||
BUILD()
|
||||
{
|
||||
exit 0
|
||||
autoreconf -fi
|
||||
export CFLAGS=-D__BSD_VISIBLE
|
||||
|
||||
runConfigure ./configure \
|
||||
--disable-static --enable-shared \
|
||||
--enable-xlib
|
||||
make $jobArgs
|
||||
|
||||
# hack: build libcairo-xlib from just the relevant objects
|
||||
rm -f cairo-tmp.a
|
||||
# TODO: these symbols should really all be hidden
|
||||
ar rcs cairo-tmp.a src/.libs/*.o
|
||||
gcc -shared -o libcairo-xlib.so -lcairo -lpixman-1 -lfreetype -lfontconfig \
|
||||
-lX11 -lXext -Wl,--no-undefined \
|
||||
src/.libs/*xlib*.o cairo-tmp.a
|
||||
}
|
||||
|
||||
INSTALL()
|
||||
{
|
||||
# install our custom cairo-xlib
|
||||
mkdir -p $libDir
|
||||
cp libcairo-xlib.so $libDir
|
||||
mv $libDir/libcairo-xlib.so $libDir/libcairo-xlib.so.$libVersion
|
||||
ln -s libcairo-xlib.so.$libVersion $libDir/libcairo-xlib.so.2
|
||||
ln -s libcairo-xlib.so.$libVersion $libDir/libcairo-xlib.so
|
||||
|
||||
# pkg-config
|
||||
mkdir -p $developLibDir/pkgconfig/
|
||||
cp src/cairo-xlib.pc $developLibDir/pkgconfig/
|
||||
sed -i "s/Libs\\:/Libs\\: -lcairo-xlib/" $developLibDir/pkgconfig/cairo-xlib.pc
|
||||
|
||||
# header
|
||||
mkdir -p $includeDir/cairo
|
||||
cp src/cairo-xlib.h $includeDir/cairo/
|
||||
sed -i '/^#if CAIRO_HAS_XLIB_SURFACE.*/i #define CAIRO_HAS_XLIB_SURFACE 1' $includeDir/cairo/cairo-xlib.h
|
||||
|
||||
prepareInstalledDevelLibs \
|
||||
libcairo-xlib
|
||||
|
||||
# make compatibility symlinks
|
||||
ln -s libcairo-xlib.so.$libVersion $libDir/libcairo-xlib.so.2
|
||||
|
||||
packageEntries devel \
|
||||
$developDir
|
||||
}
|
||||
Reference in New Issue
Block a user