make support for server side stuff optional

and make it disabled by default with an EXPERIMENTAL warning

reason: this feature is unfinished and we want to have flexibility for
ABI/API changes, while still being able to make a release soon

Signed-off-by: Christian Linhart <chris@demorecorder.com>
This commit is contained in:
Christian Linhart 2015-06-11 18:58:38 +02:00
parent c5d923d8ff
commit b15c96f950
3 changed files with 18 additions and 2 deletions

View File

@ -252,6 +252,10 @@ if test "x$LAUNCHD" = xyes ; then
AC_DEFINE(HAVE_LAUNCHD, 1, [launchd support available]) AC_DEFINE(HAVE_LAUNCHD, 1, [launchd support available])
fi fi
AC_ARG_WITH(serverside-support, AS_HELP_STRING([--with-serverside-support], [Build with support for server-side usage of xcb. This is still EXPERIMENTAL! ABI/API may change! (default: no)]), [XCB_SERVERSIDE_SUPPORT=$withval], [XCB_SERVERSIDE_SUPPORT=no])
AM_CONDITIONAL(XCB_SERVERSIDE_SUPPORT, test "x$XCB_SERVERSIDE_SUPPORT" = "xyes")
AC_CONFIG_FILES([ AC_CONFIG_FILES([
Makefile Makefile
doc/Makefile doc/Makefile

View File

@ -248,9 +248,15 @@ libman_DATA = $(BUILT_MAN_PAGES)
BUILT_SOURCES = $(EXTSOURCES) $(BUILT_MAN_PAGES) BUILT_SOURCES = $(EXTSOURCES) $(BUILT_MAN_PAGES)
CLEANFILES = $(EXTSOURCES) $(EXTHEADERS) $(BUILT_MAN_PAGES) CLEANFILES = $(EXTSOURCES) $(EXTHEADERS) $(BUILT_MAN_PAGES)
C_CLIENT_PY_EXTRA_ARGS =
if XCB_SERVERSIDE_SUPPORT
C_CLIENT_PY_EXTRA_ARGS += --server-side
endif
$(EXTSOURCES): c_client.py $(XCBPROTO_XCBINCLUDEDIR)/$(@:.c=.xml) $(EXTSOURCES): c_client.py $(XCBPROTO_XCBINCLUDEDIR)/$(@:.c=.xml)
$(AM_V_GEN)$(PYTHON) $(srcdir)/c_client.py -c "$(PACKAGE_STRING)" -l "$(XORG_MAN_PAGE)" \ $(AM_V_GEN)$(PYTHON) $(srcdir)/c_client.py -c "$(PACKAGE_STRING)" -l "$(XORG_MAN_PAGE)" \
-s "$(LIB_MAN_SUFFIX)" -p $(XCBPROTO_XCBPYTHONDIR) \ -s "$(LIB_MAN_SUFFIX)" -p $(XCBPROTO_XCBPYTHONDIR) \
$(C_CLIENT_PY_EXTRA_ARGS) \
$(XCBPROTO_XCBINCLUDEDIR)/$(@:.c=.xml) $(XCBPROTO_XCBINCLUDEDIR)/$(@:.c=.xml)
$(BUILT_MAN_PAGES): $(EXTSOURCES) $(BUILT_MAN_PAGES): $(EXTSOURCES)

View File

@ -8,6 +8,9 @@ import re
# Jump to the bottom of this file for the main routine # Jump to the bottom of this file for the main routine
#config settings (can be changed with commandline options)
config_server_side = False
# Some hacks to make the API more readable, and to keep backwards compability # Some hacks to make the API more readable, and to keep backwards compability
_cname_re = re.compile('([A-Z0-9][a-z]+|[A-Z0-9]+(?![a-z])|[a-z]+)') _cname_re = re.compile('([A-Z0-9][a-z]+|[A-Z0-9]+(?![a-z])|[a-z]+)')
_cname_special_cases = {'DECnet':'decnet'} _cname_special_cases = {'DECnet':'decnet'}
@ -3103,7 +3106,8 @@ def c_request(self, name):
if self.c_need_aux: if self.c_need_aux:
_c_request_helper(self, name, void=True, regular=False, aux=True) _c_request_helper(self, name, void=True, regular=False, aux=True)
_c_request_helper(self, name, void=True, regular=True, aux=True) _c_request_helper(self, name, void=True, regular=True, aux=True)
_c_accessors(self, name, name) if config_server_side:
_c_accessors(self, name, name)
# We generate the manpage afterwards because _c_type_setup has been called. # We generate the manpage afterwards because _c_type_setup has been called.
# TODO: what about aux helpers? # TODO: what about aux helpers?
@ -3214,7 +3218,7 @@ output = {'open' : c_open,
# Check for the argument that specifies path to the xcbgen python package. # Check for the argument that specifies path to the xcbgen python package.
try: try:
opts, args = getopt.getopt(sys.argv[1:], 'c:l:s:p:m') opts, args = getopt.getopt(sys.argv[1:], 'c:l:s:p:m', ["server-side"])
except getopt.GetoptError as err: except getopt.GetoptError as err:
print(err) print(err)
print('Usage: c_client.py -c center_footer -l left_footer -s section [-p path] file.xml') print('Usage: c_client.py -c center_footer -l left_footer -s section [-p path] file.xml')
@ -3229,6 +3233,8 @@ for (opt, arg) in opts:
section=arg section=arg
if opt == '-p': if opt == '-p':
sys.path.insert(1, arg) sys.path.insert(1, arg)
if opt == '--server-side':
config_server_side=True
elif opt == '-m': elif opt == '-m':
manpaths = True manpaths = True
sys.stdout.write('man_MANS = ') sys.stdout.write('man_MANS = ')