[Xcb] [PATCH libxcb 1/1] optionally build the GE extension

Christian Linhart chris at demorecorder.com
Fri Jan 20 19:31:19 UTC 2017


xcb contains an xml-definition for the GenericEvent extension
but this extension was neither generated nor built.

This patch enables optional building of the GenericEvent extension
with configure option --enable-ge

By default, the GenericEvent extension is not built.
Normally this is not needed by application programs
because there is implicit support for the GE-extension
for the specific events built with this extension.

But it may be useful for X-protocol analyzers and stuff like that.

Signed-off-by: Christian Linhart <chris at demorecorder.com>
---
 Makefile.am     |  3 +++
 configure.ac    |  3 +++
 src/Makefile.am |  7 +++++++
 xcb-ge.pc.in    | 11 +++++++++++
 4 files changed, 24 insertions(+)
 create mode 100644 xcb-ge.pc.in

diff --git a/Makefile.am b/Makefile.am
index 2475b6e..57c3a7b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -80,14 +80,17 @@ pkgconfig_DATA += xcb-xtest.pc
 endif
 if BUILD_XV
 pkgconfig_DATA += xcb-xv.pc
 endif
 if BUILD_XVMC
 pkgconfig_DATA += xcb-xvmc.pc
 endif
+if BUILD_GE
+pkgconfig_DATA += xcb-ge.pc
+endif
 
 
 AM_TESTS_ENVIRONMENT = \
 	AM_SRCDIR=${srcdir}
 
 TESTS=check-pc-requires
 
diff --git a/configure.ac b/configure.ac
index ec31542..d3165c6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -216,14 +216,15 @@ case $host_os in
 esac
 
 XCB_EXTENSION(Composite, yes)
 XCB_EXTENSION(Damage, yes)
 XCB_EXTENSION(DPMS, yes)
 XCB_EXTENSION(DRI2, yes)
 XCB_EXTENSION(DRI3, $have_sendmsg)
+XCB_EXTENSION(GE, no)
 XCB_EXTENSION(GLX, yes)
 XCB_EXTENSION(Present, yes)
 XCB_EXTENSION(RandR, yes)
 XCB_EXTENSION(Record, yes)
 XCB_EXTENSION(Render, yes)
 XCB_EXTENSION(Resource, yes)
 XCB_EXTENSION(Screensaver, yes)
@@ -267,14 +268,15 @@ tests/Makefile
 AC_CONFIG_FILES([
 xcb.pc
 xcb-composite.pc
 xcb-damage.pc
 xcb-dpms.pc
 xcb-dri2.pc
 xcb-dri3.pc
+xcb-ge.pc
 xcb-glx.pc
 xcb-present.pc
 xcb-randr.pc
 xcb-record.pc
 xcb-render.pc
 xcb-res.pc
 xcb-screensaver.pc
@@ -314,14 +316,15 @@ echo "    XCB buffer size.....: ${xcb_queue_buffer_size}"
 echo ""
 echo "  X11 extensions"
 echo "    Composite...........: ${BUILD_COMPOSITE}"
 echo "    Damage..............: ${BUILD_DAMAGE}"
 echo "    Dpms................: ${BUILD_DPMS}"
 echo "    Dri2................: ${BUILD_DRI2}"
 echo "    Dri3................: ${BUILD_DRI3}"
+echo "    GenericEvent........: ${BUILD_GE}"
 echo "    Glx.................: ${BUILD_GLX}"
 echo "    Randr...............: ${BUILD_RANDR}"
 echo "    Record..............: ${BUILD_RECORD}"
 echo "    Render..............: ${BUILD_RENDER}"
 echo "    Resource............: ${BUILD_RESOURCE}"
 echo "    Screensaver.........: ${BUILD_SCREENSAVER}"
 echo "    selinux.............: ${BUILD_SELINUX}"
diff --git a/src/Makefile.am b/src/Makefile.am
index e06e70b..17b64a8 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -228,14 +228,21 @@ EXTSOURCES += xvmc.c
 if BUILD_XVMC
 lib_LTLIBRARIES += libxcb-xvmc.la
 libxcb_xvmc_la_LDFLAGS = -version-info 0:0:0 -no-undefined @lt_enable_auto_import@
 libxcb_xvmc_la_LIBADD = $(XCB_LIBS)
 nodist_libxcb_xvmc_la_SOURCES = xvmc.c xvmc.h
 endif
 
+EXTSOURCES += ge.c
+if BUILD_GE
+lib_LTLIBRARIES += libxcb-ge.la
+libxcb_ge_la_LDFLAGS = -version-info 0:0:0 -no-undefined @lt_enable_auto_import@
+libxcb_ge_la_LIBADD = $(XCB_LIBS)
+nodist_libxcb_ge_la_SOURCES = ge.c ge.h
+endif
 
 EXTHEADERS=$(EXTSOURCES:.c=.h)
 xcbinclude_HEADERS = xcb.h xcbext.h
 if XCB_HAVE_WIN32
 xcbinclude_HEADERS += xcb_windefs.h
 endif
 nodist_xcbinclude_HEADERS = $(EXTHEADERS)
diff --git a/xcb-ge.pc.in b/xcb-ge.pc.in
new file mode 100644
index 0000000..b5f380d
--- /dev/null
+++ b/xcb-ge.pc.in
@@ -0,0 +1,11 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: XCB GenericEvent
+Description: XCB GenericEvent Extension
+Version: @PACKAGE_VERSION@
+Requires.private: xcb
+Libs: -L${libdir} -lxcb-ge
+Cflags: -I${includedir}
-- 
2.1.4



More information about the Xcb mailing list