qemugl: Use mesa-dri as the main gl provider and just swap libs at runtime
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
This commit is contained in:
parent
111ea0d5cc
commit
f4d34a005a
|
@ -1,12 +0,0 @@
|
|||
prefix=/usr
|
||||
exec_prefix=${prefix}
|
||||
libdir=/usr/lib
|
||||
includedir=/usr/include
|
||||
|
||||
Name: gl
|
||||
Description: QEMU OpenGL library
|
||||
Requires.private: x11 xext xfixes
|
||||
Version: 7.3.0
|
||||
Libs: -L${libdir} -lGL
|
||||
Libs.private: -lm -lpthread -ldl
|
||||
Cflags: -I${includedir}
|
Binary file not shown.
|
@ -0,0 +1,30 @@
|
|||
Index: git/Makefile
|
||||
===================================================================
|
||||
--- git.orig/Makefile 2009-01-19 23:37:36.000000000 +0000
|
||||
+++ git/Makefile 2009-06-09 20:30:37.000000000 +0100
|
||||
@@ -1,9 +1,9 @@
|
||||
GL_CFLAGS := -Wall -g -O2 -fno-strict-aliasing
|
||||
|
||||
-all: libGL.so
|
||||
+all: libGL.so.1.2
|
||||
|
||||
-libGL.so: client_stub.c opengl_client.c glgetv_cst.h opengl_func.h opengl_utils.h opengl_client_xfonts.c mesa_gl.h mesa_glext.h mesa_glx.h mesa_glxext.h
|
||||
- $(CC) -fPIC $(GL_CFLAGS) opengl_client.c -shared -o libGL.so -lX11 -lXfixes -lm -L$(D)/usr/X11R6/lib -lpthread -I.
|
||||
+libGL.so.1.2: client_stub.c opengl_client.c glgetv_cst.h opengl_func.h opengl_utils.h opengl_client_xfonts.c mesa_gl.h mesa_glext.h mesa_glx.h mesa_glxext.h
|
||||
+ $(CC) -fPIC $(GL_CFLAGS) opengl_client.c -shared -o libGL.so.1.2 -lX11 -lXfixes -lm -L$(D)/usr/X11R6/lib -lpthread -I.
|
||||
|
||||
opengl_func.h: gl_func.h
|
||||
|
||||
Index: git/opengl_client.c
|
||||
===================================================================
|
||||
--- git.orig/opengl_client.c 2009-06-09 21:07:15.000000000 +0100
|
||||
+++ git/opengl_client.c 2009-06-09 21:07:33.000000000 +0100
|
||||
@@ -11578,7 +11578,7 @@
|
||||
tab_assoc = calloc(tabSize, sizeof(AssocProcAdress));
|
||||
|
||||
#ifndef WIN32
|
||||
- handle = dlopen(getenv("REAL_LIBGL") ? getenv("REAL_LIBGL") : "libGL.so" ,RTLD_LAZY);
|
||||
+ handle = dlopen(getenv("REAL_LIBGL") ? getenv("REAL_LIBGL") : "libGL.so.1.2" ,RTLD_LAZY);
|
||||
if (!handle) {
|
||||
log_gl("%s\n", dlerror());
|
||||
exit(1);
|
|
@ -8,36 +8,20 @@ DEPENDS = "virtual/libx11 xproto glproto libxfixes"
|
|||
COMPATIBLE_HOST = '(x86_64|i.86.*)-(linux|freebsd.*)'
|
||||
|
||||
SRC_URI = "git://git.o-hand.com/qemugl.git;protocol=git \
|
||||
file://headers.tgz \
|
||||
file://gl.pc"
|
||||
file://versionfix.patch;patch=1"
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
PV = "0.0+git${SRCREV}"
|
||||
PR = "r1"
|
||||
|
||||
PROVIDES = "virtual/libgl"
|
||||
PR = "r5"
|
||||
|
||||
DEFAULT_PREFERENCE = "-1"
|
||||
|
||||
# Multiple virtual/gl providers being built breaks staging
|
||||
EXCLUDE_FROM_WORLD = "1"
|
||||
|
||||
do_install () {
|
||||
install -d ${D}${libdir}
|
||||
install -m 0755 ${S}/libGL.so ${D}${libdir}/
|
||||
ln -s libGL.so ${D}${libdir}/libGL.so.1
|
||||
install -d ${D}{includedir}/GL/
|
||||
cp -pPR ${WORKDIR}/headers/* ${D}{includedir}/GL/
|
||||
install -d ${D}${libdir}/pkgconfig/
|
||||
cp ${WORKDIR}/gl.pc ${D}${libdir}/pkgconfig/
|
||||
install -d ${D}${libdir}/
|
||||
install -m 0755 ${S}/libGL.so.1.2 ${D}${libdir}/libGL-qemu.so.1.2
|
||||
}
|
||||
|
||||
do_stage () {
|
||||
install -d ${STAGING_LIBDIR}/
|
||||
install -m 0755 ${S}/libGL.so ${STAGING_LIBDIR}/
|
||||
ln -s libGL.so ${STAGING_LIBDIR}/libGL.so.1
|
||||
install -d ${STAGING_INCDIR}/GL/
|
||||
cp -pPR ${WORKDIR}/headers/* ${STAGING_INCDIR}/GL/
|
||||
install -d ${STAGING_LIBDIR}/pkgconfig/
|
||||
cp ${WORKDIR}/gl.pc ${STAGING_LIBDIR}/pkgconfig/
|
||||
}
|
||||
pkg_postinst_${PN} () {
|
||||
rm -f $D${libdir}/libGL.so.1.2
|
||||
ln -s libGL-qemu.so.1.2 $D${libdir}/libGL.so.1.2
|
||||
}
|
Loading…
Reference in New Issue