Bug 1256988 - Move MOZ_WIDGET_TOOLKIT to moz.configure. r=chmanchester

This commit is contained in:
Mike Hommey 2016-03-16 13:10:54 +09:00
parent 0366070f0d
commit b6f701b9e1
4 changed files with 65 additions and 62 deletions

View File

@ -191,7 +191,6 @@ def old_configure_options(*options):
'--enable-debug',
'--enable-debug-js-modules',
'--enable-debug-symbols',
'--enable-default-toolkit',
'--enable-directshow',
'--enable-dmd',
'--enable-dtrace',

View File

@ -637,8 +637,6 @@ MOZ_FIX_LINK_PATHS="-Wl,-rpath-link,${DIST}/bin -Wl,-rpath-link,${prefix}/lib"
USE_DEPENDENT_LIBS=1
_PLATFORM_DEFAULT_TOOLKIT=cairo-gtk2
dnl Configure platform-specific CPU architecture compiler options.
dnl ==============================================================
MOZ_ARCH_OPTS
@ -948,7 +946,6 @@ case "$target" in
DLL_SUFFIX=".dylib"
DSO_LDOPTS=''
STRIP="$STRIP -x -S"
_PLATFORM_DEFAULT_TOOLKIT='cairo-cocoa'
LDFLAGS="$LDFLAGS -lobjc"
# The ExceptionHandling framework is needed for Objective-C exception
# logging code in nsObjCExceptions.h. Currently we only use that in debug
@ -992,7 +989,6 @@ case "$target" in
*-android*|*-linuxandroid*)
AC_DEFINE(NO_PW_GECOS)
no_x=yes
_PLATFORM_DEFAULT_TOOLKIT=cairo-android
MOZ_GFX_OPTIMIZE_MOBILE=1
MOZ_OPTIMIZE_FLAGS="-O3 -fno-reorder-functions"
@ -1217,7 +1213,6 @@ case "$target" in
AC_DEFINE(HW_THREADS)
AC_DEFINE(STDC_HEADERS)
AC_DEFINE(WIN32_LEAN_AND_MEAN)
_PLATFORM_DEFAULT_TOOLKIT='cairo-windows'
BIN_SUFFIX='.exe'
MOZ_USER_DIR="Mozilla"

View File

@ -837,8 +837,6 @@ MOZ_FS_LAYOUT=unix
USE_DEPENDENT_LIBS=1
_PLATFORM_DEFAULT_TOOLKIT=cairo-gtk3
dnl Configure platform-specific CPU architecture compiler options.
dnl ==============================================================
if test "$COMPILE_ENVIRONMENT"; then
@ -1482,12 +1480,10 @@ case "$target" in
if test -n "$MOZ_IOS"; then
AC_DEFINE(XP_IOS)
AC_DEFINE(XP_DARWIN)
_PLATFORM_DEFAULT_TOOLKIT='cairo-uikit'
direct_nspr_config=1
else
AC_DEFINE(XP_MACOSX)
AC_DEFINE(XP_DARWIN)
_PLATFORM_DEFAULT_TOOLKIT='cairo-cocoa'
# The ExceptionHandling framework is needed for Objective-C exception
# logging code in nsObjCExceptions.h. Currently we only use that in debug
# builds.
@ -1538,12 +1534,10 @@ case "$target" in
AC_DEFINE(NO_PW_GECOS)
no_x=yes
if test -n "$gonkdir"; then
_PLATFORM_DEFAULT_TOOLKIT=cairo-gonk
_PLATFORM_HAVE_RIL=1
MOZ_B2G_FM=1
MOZ_SYNTH_PICO=1
else
_PLATFORM_DEFAULT_TOOLKIT=cairo-android
if test "$COMPILE_ENVIRONMENT"; then
MOZ_LINKER=1
fi
@ -1806,7 +1800,6 @@ case "$target" in
AC_DEFINE(WIN32_LEAN_AND_MEAN)
dnl See http://support.microsoft.com/kb/143208 to use STL
AC_DEFINE(NOMINMAX)
_PLATFORM_DEFAULT_TOOLKIT='cairo-windows'
BIN_SUFFIX='.exe'
MOZ_USER_DIR="Mozilla"
@ -3420,38 +3413,6 @@ dnl =
dnl ========================================================
MOZ_ARG_HEADER(Toolkit Options)
dnl ========================================================
dnl = Select the default toolkit
dnl ========================================================
MOZ_ARG_ENABLE_STRING(default-toolkit,
[ --enable-default-toolkit=TK
Select default toolkit
Platform specific defaults:
Mac OS X - cairo-cocoa
Win32 - cairo-windows
* - cairo-gtk2
* - cairo-gtk3
* - cairo-qt],
[ _DEFAULT_TOOLKIT=$enableval ],
[ _DEFAULT_TOOLKIT=$_PLATFORM_DEFAULT_TOOLKIT])
if test "$_DEFAULT_TOOLKIT" = "cairo-windows" \
-o "$_DEFAULT_TOOLKIT" = "cairo-gtk2" \
-o "$_DEFAULT_TOOLKIT" = "cairo-gtk2-x11" \
-o "$_DEFAULT_TOOLKIT" = "cairo-gtk3" \
-o "$_DEFAULT_TOOLKIT" = "cairo-qt" \
-o "$_DEFAULT_TOOLKIT" = "cairo-cocoa" \
-o "$_DEFAULT_TOOLKIT" = "cairo-uikit" \
-o "$_DEFAULT_TOOLKIT" = "cairo-android" \
-o "$_DEFAULT_TOOLKIT" = "cairo-gonk"
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
AC_MSG_ERROR([You must specify a default toolkit (perhaps $_PLATFORM_DEFAULT_TOOLKIT).])
fi
MOZ_ARG_WITHOUT_BOOL(x,
[ --without-x Build without X11],
WITHOUT_X11=1)
@ -3464,14 +3425,12 @@ MOZ_WIDGET_GTK=
case "$MOZ_WIDGET_TOOLKIT" in
cairo-windows)
MOZ_WIDGET_TOOLKIT=windows
windows)
MOZ_PDF_PRINTING=1
MOZ_INSTRUMENT_EVENT_LOOP=1
;;
cairo-gtk3)
MOZ_WIDGET_TOOLKIT=gtk3
gtk3)
MOZ_ENABLE_GTK=1
MOZ_ENABLE_GTK3=1
MOZ_ENABLE_XREMOTE=1
@ -3487,8 +3446,7 @@ cairo-gtk3)
MOZ_INSTRUMENT_EVENT_LOOP=1
;;
cairo-gtk2|cairo-gtk2-x11)
MOZ_WIDGET_TOOLKIT=gtk2
gtk2)
MOZ_ENABLE_GTK=1
MOZ_ENABLE_GTK2=1
MOZ_ENABLE_XREMOTE=1
@ -3505,8 +3463,7 @@ cairo-gtk2|cairo-gtk2-x11)
MOZ_INSTRUMENT_EVENT_LOOP=1
;;
cairo-qt)
MOZ_WIDGET_TOOLKIT=qt
qt)
MOZ_ENABLE_QT=1
if test -z "$WITHOUT_X11"; then
MOZ_ENABLE_XREMOTE=1
@ -3522,8 +3479,7 @@ cairo-qt)
AC_DEFINE(QT_NO_KEYWORDS)
;;
cairo-cocoa)
MOZ_WIDGET_TOOLKIT=cocoa
cocoa)
AC_DEFINE(MOZ_WIDGET_COCOA)
LDFLAGS="$LDFLAGS -framework Cocoa -lobjc"
# Use -Wl as a trick to avoid -framework and framework names from
@ -3537,8 +3493,7 @@ cairo-cocoa)
MOZ_INSTRUMENT_EVENT_LOOP=1
;;
cairo-uikit)
MOZ_WIDGET_TOOLKIT=uikit
uikit)
AC_DEFINE(MOZ_WIDGET_UIKIT)
LDFLAGS="$LDFLAGS -framework UIKit -lobjc"
TK_CFLAGS="-DNO_X11"
@ -3549,17 +3504,15 @@ cairo-uikit)
MOZ_FS_LAYOUT=bundle
;;
cairo-android)
android)
AC_DEFINE(MOZ_WIDGET_ANDROID)
MOZ_WIDGET_TOOLKIT=android
MOZ_PDF_PRINTING=1
MOZ_INSTRUMENT_EVENT_LOOP=1
;;
cairo-gonk)
gonk)
AC_DEFINE(MOZ_WIDGET_GONK)
AC_DEFINE(MOZ_TOUCH)
MOZ_WIDGET_TOOLKIT=gonk
MOZ_PDF_PRINTING=1
MOZ_TOUCH=1
MOZ_INSTRUMENT_EVENT_LOOP=1
@ -7746,7 +7699,6 @@ AC_SUBST(WINDRES)
AC_SUBST(IMPLIB)
AC_SUBST(FILTER)
AC_SUBST(BIN_FLAGS)
AC_SUBST(MOZ_WIDGET_TOOLKIT)
AC_SUBST(MOZ_AUTH_EXTENSION)
AC_SUBST(MOZ_PREF_EXTENSIONS)
AC_SUBST(MOZ_DEBUG)

View File

@ -5,3 +5,60 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
include('../js/moz.configure')
# Default toolkit
# ==============================================================
# Normally, we'd want to use the `default` field on the option, but that
# requires --target to be resolved at --help time, which requires to run
# config.guess, which we want to avoid. Even better, we could actually set
# `choices` depending on the target, but that doesn't pan out for the same
# reason.
option('--enable-default-toolkit', nargs=1,
choices=('cairo-windows', 'cairo-gtk2', 'cairo-gtk2-x11', 'cairo-gtk3',
'cairo-qt', 'cairo-cocoa', 'cairo-uikit', 'cairo-android',
'cairo-gonk'),
help='Select default toolkit')
@depends('--enable-default-toolkit', target, gonkdir)
def toolkit(value, target, gonkdir):
# Define possible choices for each platform. The default is the first one
# listed when there are several.
os = target.os
if target.os == 'WINNT':
platform_choices = ('cairo-windows',)
elif target.os == 'OSX':
platform_choices = ('cairo-cocoa',)
elif target.os == 'iOS':
platform_choices = ('cairo-uikit',)
elif target.os == 'Android':
if gonkdir:
platform_choices = ('cairo-gonk',)
os = 'B2G'
else:
platform_choices = ('cairo-android',)
else:
platform_choices = ('cairo-gtk3', 'cairo-gtk2', 'cairo-gtk2-x11',
'cairo-qt')
if value:
if value[0] not in platform_choices:
error(
'`%s` is not a valid value for --enable-default-toolkit on %s\n'
'Valid values: %s'
% (value[0], os, ', '.join(platform_choices)))
return value[0]
return platform_choices[0]
@depends(toolkit)
def toolkit(toolkit):
if toolkit == 'cairo-gtk2-x11':
widget_toolkit = 'gtk2'
else:
widget_toolkit = toolkit.replace('cairo-', '')
set_config('MOZ_WIDGET_TOOLKIT', widget_toolkit)
add_old_configure_assignment('MOZ_WIDGET_TOOLKIT', widget_toolkit)
return widget_toolkit