From b7354d91569384ba884bd3e391210019037ada2c Mon Sep 17 00:00:00 2001 From: Harri Porten Date: Sat, 28 Dec 2002 09:10:43 +0000 Subject: [PATCH] very basic check for Qt integration. Another proof that Qt's build system needs more work for people using it. I didn't want to copy all of KDEs autoconf magic so this is far from perfect, yet. Can we use pkg-config here ? --- ChangeLog | 14 ++++++++++ Makefile.am | 6 ++++- configure.in | 45 +++++++++++++++++++++++++++----- dbus/dbus-connection.c | 2 +- qt/.cvsignore | 7 +++++ qt/Makefile.am | 9 +++++++ qt/{dbus-qthread.cc => dbus-qthread.cpp} | 8 ++++-- 7 files changed, 81 insertions(+), 10 deletions(-) create mode 100644 qt/.cvsignore create mode 100644 qt/Makefile.am rename qt/{dbus-qthread.cc => dbus-qthread.cpp} (95%) diff --git a/ChangeLog b/ChangeLog index 742c656..30013d8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2002-12-28 Harri Porten + + * configure.in: added check for C++ compiler and a very cheesy + check for the Qt integration + + * Makefile.am (SUBDIRS): compile qt subdir if support is enabled + + * qt/Makefile.am: added + + * qt/.cvsignore: added + + * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to + latter, added #ifdef QT_THREAD_SUPPORT guard. + 2002-12-28 Kristian Rietveld * dbus/Makefile.am: fixup export-symbols-regex. diff --git a/Makefile.am b/Makefile.am index dc120d3..a197cf3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -4,7 +4,11 @@ if HAVE_GLIB GLIB_PC=dbus-glib-1.0.pc endif -SUBDIRS=dbus $(GLIB_SUBDIR) bus test doc +if HAVE_QT + QT_SUBDIR=qt +endif + +SUBDIRS=dbus $(GLIB_SUBDIR) $(QT_SUBDIR) bus test doc pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = dbus-1.0.pc $(GLIB_PC) diff --git a/configure.in b/configure.in index 9806da9..a2b8169 100644 --- a/configure.in +++ b/configure.in @@ -17,11 +17,12 @@ AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[The name of the gettext d AM_MAINTAINER_MODE AC_PROG_CC +AC_PROG_CXX AC_ISC_POSIX AC_HEADER_STDC AM_PROG_LIBTOOL -AC_ARG_ENABLE(qt, [ --enable-qt enable Qt-friendly client library],enable_qt=$enableval,enable_qt=no) +AC_ARG_ENABLE(qt, [ --enable-qt enable Qt-friendly client library],enable_qt=$enableval,enable_qt=auto) AC_ARG_ENABLE(glib, [ --enable-glib enable GLib-friendly client library],enable_glib=$enableval,enable_glib=auto) AC_ARG_ENABLE(tests, [ --enable-tests enable unit test code],enable_tests=yes,enable_tests=no) AC_ARG_ENABLE(ansi, [ --enable-ansi enable -ansi -pedantic gcc flags],enable_ansi=yes,enable_ansi=no) @@ -144,11 +145,47 @@ dnl GLib flags AC_SUBST(DBUS_GLIB_CFLAGS) AC_SUBST(DBUS_GLIB_LIBS) +# Qt detection +have_qt=no +if test -n "$QTDIR" -a -f $QTDIR/include/qglobal.h; then + have_qt=yes + DBUS_QT_CXXFLAGS=-I$QTDIR/include +fi + +dnl linking to kdecore will give us a bit of help from libtool +kdelibs=`kde-config --install lib --expandvars 2>/dev/null` +if test -z $kdelibs -a -f $kdelibs/libkdecore.la; then + have_qt=no +else + DBUS_QT_LIBS=$kdelibs/libkdecore.la +fi + +if test x$have_qt = xno ; then + AC_MSG_WARN([Qt development libraries not found]) +fi + +if test x$enable_qt = xyes; then + if test x$have_qt = xno; then + AC_MSG_ERROR([Qt integration explicitly required, and Qt libraries not found]) + fi +fi + +if test x$enable_qt = xno; then + have_qt=no; +fi + +AM_CONDITIONAL(HAVE_QT, test x$have_qt = xyes) + +dnl Qt flags +AC_SUBST(DBUS_QT_CXXFLAGS) +AC_SUBST(DBUS_QT_LIBS) + AC_OUTPUT([ Makefile Doxyfile dbus/Makefile glib/Makefile +qt/Makefile bus/Makefile test/Makefile doc/Makefile @@ -166,14 +203,10 @@ echo " compiler: ${CC} Building unit tests: ${enable_tests} - Building Qt bindings: ${enable_qt} + Building Qt bindings: ${have_qt} Building GLib bindings: ${have_glib} " if test x$enable_tests = xyes; then echo "NOTE: building with unit tests increases the size of the installed library" fi -if test x$enable_qt = xyes; then - echo "NOTE: Qt bindings don't actually exist yet" -fi - diff --git a/dbus/dbus-connection.c b/dbus/dbus-connection.c index e5fa48f..28f1d7f 100644 --- a/dbus/dbus-connection.c +++ b/dbus/dbus-connection.c @@ -122,7 +122,7 @@ _dbus_connection_have_messages_to_send (DBusConnection *connection) } /** - * Gets the next outgoing message. The message remanins in the + * Gets the next outgoing message. The message remains in the * queue, and the caller does not own a reference to it. * * @param connection the connection. diff --git a/qt/.cvsignore b/qt/.cvsignore new file mode 100644 index 0000000..9626b60 --- /dev/null +++ b/qt/.cvsignore @@ -0,0 +1,7 @@ +.deps +.libs +Makefile +Makefile.in +*.lo +*.la + diff --git a/qt/Makefile.am b/qt/Makefile.am new file mode 100644 index 0000000..f23e1dd --- /dev/null +++ b/qt/Makefile.am @@ -0,0 +1,9 @@ +INCLUDES=-I$(top_srcdir) $(DBUS_CLIENT_CFLAGS) $(DBUS_QT_CXXFLAGS) + +lib_LTLIBRARIES=libdbus-qt-1.la + +libdbus_qt_1_la_SOURCES = \ + dbus-qthread.cpp + +libdbus_qt_1_la_LIBADD= $(DBUS_QT_LIBS) $(top_builddir)/dbus/libdbus-1.la +libdbus_qt_1_la_LDFLAGS= -version-info 1:0 diff --git a/qt/dbus-qthread.cc b/qt/dbus-qthread.cpp similarity index 95% rename from qt/dbus-qthread.cc rename to qt/dbus-qthread.cpp index ab26628..5aa0fa1 100644 --- a/qt/dbus-qthread.cc +++ b/qt/dbus-qthread.cpp @@ -1,5 +1,5 @@ /* -*- mode: C; c-file-style: "gnu" -*- */ -/* dbus-qthread.c Qt threads integration +/* dbus-qthread.cpp Qt threads integration * * Copyright (C) 2002 Zack Rusin * @@ -21,8 +21,10 @@ * */ -#include #include +#include + +#if defined(QT_THREAD_SUPPORT) static DBusMutex * dbus_qmutex_new (void); static void dbus_qmutex_free (DBusMutex *mutex); @@ -83,3 +85,5 @@ dbus_qthread_init (void) } } + +#endif // QT_THREAD_SUPPORT -- 2.7.4