bug 450957 - Make Qt port compile with comm-central, r=Standard8
--- a/config/autoconf.mk.in
+++ b/config/autoconf.mk.in
@@ -159,16 +159,17 @@ MOZ_ZIPWRITER = @MOZ_ZIPWRITER@
MOZ_MORK = @MOZ_MORK@
MOZ_MORKREADER = @MOZ_MORKREADER@
MOZ_NO_XPCOM_OBSOLETE = @MOZ_NO_XPCOM_OBSOLETE@
MOZ_NO_FAST_LOAD = @MOZ_NO_FAST_LOAD@
NS_PRINTING = @NS_PRINTING@
MOZ_CRASHREPORTER = @MOZ_CRASHREPORTER@
MOZ_MOCHITEST = @MOZ_MOCHITEST@
MOZ_HELP_VIEWER = @MOZ_HELP_VIEWER@
+MOC= @MOC@
TAR=@TAR@
# The MOZ_UI_LOCALE var is used to build a particular locale. Do *not*
# use the var to change any binary files. Do *not* use this var unless you
# write rules for the "clean-locale" and "locale" targets.
MOZ_UI_LOCALE = @MOZ_UI_LOCALE@
@@ -464,34 +465,39 @@ MKCSHLIB = @MKCSHLIB@
MKSHLIB_FORCE_ALL = @MKSHLIB_FORCE_ALL@
MKSHLIB_UNFORCE_ALL = @MKSHLIB_UNFORCE_ALL@
DSO_LDOPTS = @DSO_LDOPTS@
DLL_SUFFIX = @DLL_SUFFIX@
NO_LD_ARCHIVE_FLAGS = @NO_LD_ARCHIVE_FLAGS@
GTK_CONFIG = @GTK_CONFIG@
+QT_CONFIG = @QT_CONFIG@
TK_CFLAGS = @TK_CFLAGS@
TK_LIBS = @TK_LIBS@
MOZ_TOOLKIT_REGISTRY_CFLAGS = \
$(TK_CFLAGS)
CAIRO_FT_CFLAGS = @CAIRO_FT_CFLAGS@
MOZ_ENABLE_CAIRO_FT = @MOZ_ENABLE_CAIRO_FT@
MOZ_ENABLE_GLITZ = @MOZ_ENABLE_GLITZ@
MOZ_ENABLE_GTK2 = @MOZ_ENABLE_GTK2@
+MOZ_ENABLE_QT = @MOZ_ENABLE_QT@
MOZ_ENABLE_PHOTON = @MOZ_ENABLE_PHOTON@
MOZ_ENABLE_COCOA = @MOZ_ENABLE_COCOA@
MOZ_ENABLE_XREMOTE = @MOZ_ENABLE_XREMOTE@
MOZ_GTK2_CFLAGS = @MOZ_GTK2_CFLAGS@
MOZ_GTK2_LIBS = @MOZ_GTK2_LIBS@
+MOZ_QT_CFLAGS = @MOZ_QT_CFLAGS@
+MOZ_QT_LIBS = @MOZ_QT_LIBS@
+
MOZ_DBUS_GLIB_CFLAGS = @MOZ_DBUS_GLIB_CFLAGS@
MOZ_DBUS_GLIB_LIBS = @MOZ_DBUS_GLIB_LIBS@
MOZ_ENABLE_DBUS = @MOZ_ENABLE_DBUS@
MOZ_GTHREAD_CFLAGS = @MOZ_GTHREAD_CFLAGS@
MOZ_GTHREAD_LIBS = @MOZ_GTHREAD_LIBS@
FT2_CFLAGS = @FT2_CFLAGS@
--- a/config/rules.mk
+++ b/config/rules.mk
@@ -316,16 +316,20 @@ ALL_TRASH = \
$(SHARED_LIBRARY:$(DLL_SUFFIX)=.exp) $(wildcard *.ilk) \
$(PROGRAM:$(BIN_SUFFIX)=.exp) $(SIMPLE_PROGRAMS:$(BIN_SUFFIX)=.exp) \
$(PROGRAM:$(BIN_SUFFIX)=.lib) $(SIMPLE_PROGRAMS:$(BIN_SUFFIX)=.lib) \
$(SIMPLE_PROGRAMS:$(BIN_SUFFIX)=.$(OBJ_SUFFIX)) \
$(wildcard gts_tmp_*) $(LIBRARY:%.a=.%.timestamp)
ALL_TRASH_DIRS = \
$(GARBAGE_DIRS) /no-such-file
+ifdef QTDIR
+GARBAGE += $(MOCSRCS)
+endif
+
ifdef SIMPLE_PROGRAMS
GARBAGE += $(SIMPLE_PROGRAMS:%=%.$(OBJ_SUFFIX))
endif
ifdef HOST_SIMPLE_PROGRAMS
GARBAGE += $(HOST_SIMPLE_PROGRAMS:%=%.$(OBJ_SUFFIX))
endif
--- a/configure.in
+++ b/configure.in
@@ -971,17 +971,17 @@ MOZ_ZLIB_CFLAGS=
MOZ_ZLIB_LIBS='$(call EXPAND_LIBNAME_PATH,mozz,$(DEPTH)/mozilla/modules/zlib/src)'
MOZ_BZ2_CFLAGS=
MOZ_BZ2_LIBS='$(call EXPAND_LIBNAME_PATH,bz2,$(DEPTH)/mozilla/modules/libbz2/src)'
MOZ_PNG_CFLAGS=
MOZ_PNG_LIBS='$(call EXPAND_LIBNAME_PATH,mozpng,$(DEPTH)/mozilla/modules/libimg/png)'
MOZ_JS_LIBS='-L$(LIBXUL_DIST)/bin -lmozjs'
DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/bin -lxpcom -lxpcom_core'
-MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin'
+MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin:/usr/lib:/usr/local/lib:/lib'
XPCOM_FROZEN_LDOPTS='-L$(LIBXUL_DIST)/bin -lxpcom'
LIBXUL_LIBS='$(XPCOM_FROZEN_LDOPTS) -lxul'
XPCOM_GLUE_LDOPTS='$(LIBXUL_DIST)/lib/$(LIB_PREFIX)xpcomglue_s.$(LIB_SUFFIX) $(XPCOM_FROZEN_LDOPTS)'
XPCOM_STANDALONE_GLUE_LDOPTS='$(LIBXUL_DIST)/lib/$(LIB_PREFIX)xpcomglue.$(LIB_SUFFIX)'
MOZ_COMPONENT_NSPR_LIBS='-L$(LIBXUL_DIST)/bin $(NSPR_LIBS)'
MOZ_XPCOM_OBSOLETE_LIBS='-L$(LIBXUL_DIST)/lib -lxpcom_compat'
@@ -4644,34 +4644,36 @@ MOZ_ARG_HEADER(Toolkit Options)
Select default toolkit
Platform specific defaults:
BeOS - cairo-beos
Mac OS X - cairo-cocoa
Neutrino/QNX - photon
OS/2 - cairo-os2
Win32 - cairo-windows
WinCE - windows
- * - cairo-gtk2],
+ * - cairo-gtk2
+ * - cairo-qt],
[ _DEFAULT_TOOLKIT=$enableval ],
[ _DEFAULT_TOOLKIT=$_PLATFORM_DEFAULT_TOOLKIT])
if test "$_DEFAULT_TOOLKIT" = "photon" \
-o "$_DEFAULT_TOOLKIT" = "cairo-windows" \
-o "$_DEFAULT_TOOLKIT" = "cairo-gtk2" \
+ -o "$_DEFAULT_TOOLKIT" = "cairo-qt" \
-o "$_DEFAULT_TOOLKIT" = "cairo-beos" \
-o "$_DEFAULT_TOOLKIT" = "cairo-os2" \
-o "$_DEFAULT_TOOLKIT" = "cairo-mac" \
-o "$_DEFAULT_TOOLKIT" = "cairo-cocoa"
then
dnl nglayout only supports building with one toolkit,
dnl so ignore everything after the first comma (",").
MOZ_WIDGET_TOOLKIT=`echo "$_DEFAULT_TOOLKIT" | sed -e "s/,.*$//"`
else
if test "$no_x" != "yes"; then
- AC_MSG_ERROR([Toolkit must be cairo-gtk2.])
+ AC_MSG_ERROR([Toolkit must be cairo-gtk2 or cairo-qt.])
else
AC_MSG_ERROR([Toolkit must be $_PLATFORM_DEFAULT_TOOLKIT (if supported).])
fi
fi
AC_DEFINE_UNQUOTED(MOZ_DEFAULT_TOOLKIT,"$MOZ_WIDGET_TOOLKIT")
dnl ========================================================
@@ -4693,16 +4695,25 @@ cairo-gtk2)
MOZ_WIDGET_TOOLKIT=gtk2
MOZ_GFX_TOOLKIT=cairo
MOZ_ENABLE_GTK2=1
MOZ_ENABLE_XREMOTE=1
TK_CFLAGS='$(MOZ_GTK2_CFLAGS)'
TK_LIBS='$(MOZ_GTK2_LIBS)'
AC_DEFINE(MOZ_WIDGET_GTK2)
;;
+cairo-qt)
+ MOZ_WIDGET_TOOLKIT=qt
+ MOZ_GFX_TOOLKIT=cairo
+ MOZ_ENABLE_QT=1
+ MOZ_ENABLE_XREMOTE=1
+ TK_CFLAGS='$(MOZ_QT_CFLAGS)'
+ TK_LIBS='$(MOZ_QT_LIBS)'
+ AC_DEFINE(MOZ_WIDGET_QT)
+ ;;
cairo-beos)
MOZ_WIDGET_TOOLKIT=beos
MOZ_GFX_TOOLKIT=cairo
TK_CFLAGS='$(MOZ_CAIRO_CFLAGS)'
TK_LIBS='$(MOZ_CAIRO_LIBS)'
;;
cairo-os2)
@@ -4775,31 +4786,74 @@ then
fi
TK_LIBS="$TK_LIBS $MOZ_STARTUP_NOTIFICATION_LIBS"
fi
AC_SUBST(MOZ_ENABLE_STARTUP_NOTIFICATION)
AC_SUBST(MOZ_STARTUP_NOTIFICATION_CFLAGS)
AC_SUBST(MOZ_STARTUP_NOTIFICATION_LIBS)
+dnl ========================================================
+dnl = QT support
+dnl ========================================================
+if test "$MOZ_ENABLE_QT"
+then
+ PKG_CHECK_MODULES(MOZ_QT, QtGui QtNetwork QtUiTools QtCore)
+ AC_SUBST(MOZ_QT_CFLAGS)
+ AC_SUBST(MOZ_QT_LIBS)
+
+ MOZ_ARG_WITH_STRING(qtdir,
+ [ --with-qtdir=\$dir Specify Qt directory ],
+ [ QTDIR=$withval])
+
+ if test -z "$QTDIR"; then
+ QTDIR="/usr"
+ fi
+ QTINCDIR="/include/qt"
+ if test ! -d "$QTDIR$QTINCDIR"; then
+ QTINCDIR="/include/X11/qt"
+ fi
+ if test ! -d "$QTDIR$QTINCDIR"; then
+ QTINCDIR="/include"
+ fi
+
+ if test -x "$QTDIR/bin/moc-qt4"; then
+ HOST_MOC="$QTDIR/bin/moc-qt4"
+ else
+ if test -x "$QTDIR/bin/moc"; then
+ HOST_MOC="$QTDIR/bin/moc"
+ else
+ AC_CHECK_PROGS(HOST_MOC, moc, "")
+ fi
+ fi
+ if test -z "$HOST_MOC"; then
+ AC_MSG_ERROR([no acceptable moc preprocessor found])
+ fi
+ MOC=$HOST_MOC
+fi
+
AC_SUBST(GTK_CONFIG)
AC_SUBST(TK_CFLAGS)
AC_SUBST(TK_LIBS)
AC_SUBST(MOZ_ENABLE_GTK2)
AC_SUBST(MOZ_ENABLE_PHOTON)
AC_SUBST(MOZ_ENABLE_COCOA)
AC_SUBST(MOZ_ENABLE_GLITZ)
+AC_SUBST(MOZ_ENABLE_QT)
AC_SUBST(MOZ_ENABLE_XREMOTE)
AC_SUBST(MOZ_GTK2_CFLAGS)
AC_SUBST(MOZ_GTK2_LIBS)
+AC_SUBST(MOZ_QT_CFLAGS)
+AC_SUBST(MOZ_QT_LIBS)
AC_SUBST(MOC)
-if test "$MOZ_ENABLE_GTK2"
+if test "$MOZ_ENABLE_GTK2" \
+|| test "$MOZ_ENABLE_QT"
then
AC_DEFINE(MOZ_X11)
MOZ_X11=1
fi
AC_SUBST(MOZ_X11)
dnl ========================================================
dnl =
@@ -6865,21 +6919,17 @@ if test -n "$CROSS_COMPILE"; then
else
HOST_LIBIDL_CFLAGS="$LIBIDL_CFLAGS"
HOST_LIBIDL_LIBS="$LIBIDL_LIBS"
fi
fi
if test -z "$SKIP_PATH_CHECKS"; then
if test -z "${GLIB_CFLAGS}" || test -z "${GLIB_LIBS}" ; then
- if test "$MOZ_ENABLE_GTK2"; then
- PKG_CHECK_MODULES(GLIB, glib-2.0 >= 1.3.7 gobject-2.0)
- else
- AM_PATH_GLIB(${GLIB_VERSION})
- fi
+ PKG_CHECK_MODULES(GLIB, glib-2.0 >= 1.3.7 gobject-2.0)
fi
fi
if test -z "${GLIB_GMODULE_LIBS}" -a -n "${GLIB_CONFIG}"; then
GLIB_GMODULE_LIBS=`$GLIB_CONFIG gmodule --libs`
fi
AC_SUBST(LIBIDL_CFLAGS)