libdrm: Add --disable-cairo-tests switch and update to upstream patch

Rather than implicitly relying on Cairo being disabled through not being
present, add a configure switch to forcibly disable it.

The updates the code to use a patch backported from upstream git
instead of our custom version.

(From OE-Core rev: fa9ccb23e5788f331cc868ce4bad4abd1eaeee9c)

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Daniel Stone 2012-10-08 20:22:15 +11:00 committed by Richard Purdie
parent 4ebe9d1ebe
commit eb8a8fe503
4 changed files with 76 additions and 41 deletions

View File

@ -18,7 +18,7 @@ DEPENDS += " libpciaccess"
inherit autotools pkgconfig
EXTRA_OECONF += "--disable-cairo"
EXTRA_OECONF += "--disable-cairo-tests"
PACKAGES =+ "${PN}-tests ${PN}-drivers ${PN}-kms"
FILES_${PN}-tests = "${bindir}/dr* ${bindir}/mode*"

View File

@ -0,0 +1,74 @@
commit c81d1df4926072d24b4dad1b488e618e57eff1c6
Author: Daniel Stone <daniel@fooishbar.org>
Date: Thu Oct 4 10:26:37 2012 +1000
configure.ac: Allow forcible disabling of Cairo support
We don't want to build libdrm tests with Cairo support under Poky, since
they're never used and also cause a build loop from libdrm -> cairo ->
mesa-dri -> libdrm.
To avoid variance in build results, introduce a --disable-cairo-tests
switch.
Upstream-Status: Backport
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
diff --git a/configure.ac b/configure.ac
index 290362c..8c28107 100644
--- a/configure.ac
+++ b/configure.ac
@@ -222,11 +222,23 @@ if test "x$EXYNOS" = xyes; then
AC_DEFINE(HAVE_EXYNOS, 1, [Have EXYNOS support])
fi
+AC_ARG_ENABLE([cairo-tests],
+ [AS_HELP_STRING([--enable-cairo-tests],
+ [Enable support for Cairo rendering in tests (default: auto)])],
+ [CAIRO=$enableval], [CAIRO=auto])
PKG_CHECK_MODULES(CAIRO, cairo, [HAVE_CAIRO=yes], [HAVE_CAIRO=no])
-if test "x$HAVE_CAIRO" = xyes; then
- AC_DEFINE(HAVE_CAIRO, 1, [Have cairo support])
+AC_MSG_CHECKING([whether to enable Cairo tests])
+if test "x$CAIRO" = xauto; then
+ CAIRO="$HAVE_CAIRO"
fi
-AM_CONDITIONAL(HAVE_CAIRO, [test "x$HAVE_CAIRO" = xyes])
+if test "x$CAIRO" = xyes; then
+ if ! test "x$HAVE_CAIRO" = xyes; then
+ AC_MSG_ERROR([Cairo support required but not present])
+ fi
+ AC_DEFINE(HAVE_CAIRO, 1, [Have Cairo support])
+fi
+AC_MSG_RESULT([$CAIRO])
+AM_CONDITIONAL(HAVE_CAIRO, [test "x$CAIRO" = xyes])
# For enumerating devices in test case
PKG_CHECK_MODULES(LIBUDEV, libudev, [HAVE_LIBUDEV=yes], [HAVE_LIBUDEV=no])
diff --git a/tests/modetest/Makefile.am b/tests/modetest/Makefile.am
index b5ec771..065ae13 100644
--- a/tests/modetest/Makefile.am
+++ b/tests/modetest/Makefile.am
@@ -1,8 +1,7 @@
AM_CFLAGS = \
-I$(top_srcdir)/include/drm \
-I$(top_srcdir)/libkms/ \
- -I$(top_srcdir) \
- $(CAIRO_CFLAGS)
+ -I$(top_srcdir)
noinst_PROGRAMS = \
modetest
@@ -12,5 +11,9 @@ modetest_SOURCES = \
modetest_LDADD = \
$(top_builddir)/libdrm.la \
- $(top_builddir)/libkms/libkms.la \
- $(CAIRO_LIBS)
+ $(top_builddir)/libkms/libkms.la
+
+if HAVE_CAIRO
+AM_CFLAGS += $(CAIRO_CFLAGS)
+modetest_LDADD += $(CAIRO_LIBS)
+endif

View File

@ -1,39 +0,0 @@
We don't want the cairo dependency. Unfortunately simply checking whether its present
isn't good enough. If its not in DEPENDS, it can disappear half way through building.
We therefore need to explictly disable it.
RP
2012/10/5
Index: libdrm-2.4.39/configure.ac
===================================================================
--- libdrm-2.4.39.orig/configure.ac 2012-08-24 14:54:42.000000000 +0000
+++ libdrm-2.4.39/configure.ac 2012-10-05 11:37:52.484821221 +0000
@@ -63,6 +63,11 @@
[Disable KMS mm abstraction library (default: auto)]),
[LIBKMS=$enableval], [LIBKMS=auto])
+AC_ARG_ENABLE(cairo,
+ AS_HELP_STRING([--disable-cairo],
+ [Disable cairo (default: auto)]),
+ [ENABLECAIRO=$enableval], [ENABLECAIRO=auto])
+
AC_ARG_ENABLE(intel,
AS_HELP_STRING([--disable-intel],
[Enable support for intel's KMS API (default: auto)]),
@@ -201,9 +206,12 @@
AC_DEFINE(HAVE_EXYNOS, 1, [Have EXYNOS support])
fi
-PKG_CHECK_MODULES(CAIRO, cairo, [HAVE_CAIRO=yes], [HAVE_CAIRO=no])
-if test "x$HAVE_CAIRO" = xyes; then
- AC_DEFINE(HAVE_CAIRO, 1, [Have cairo support])
+HAVE_CAIRO=no
+if test "x$ENABLECAIRO" = xyes; then
+ PKG_CHECK_MODULES(CAIRO, cairo, [HAVE_CAIRO=yes], [HAVE_CAIRO=no])
+ if test "x$HAVE_CAIRO" = xyes; then
+ AC_DEFINE(HAVE_CAIRO, 1, [Have cairo support])
+ fi
fi
AM_CONDITIONAL(HAVE_CAIRO, [test "x$HAVE_CAIRO" = xyes])

View File

@ -4,7 +4,7 @@ PR = "${INC_PR}.0"
SRC_URI += "file://installtests.patch \
file://GNU_SOURCE_definition.patch \
file://nocairo.patch \
file://disable-cairo.patch \
"
SRC_URI[md5sum] = "9a299e021d81bab6c82307582c78319d"