diff --git a/configure b/configure
index 43eed32807b..89426f27f48 100755
--- a/configure
+++ b/configure
@@ -384,6 +384,16 @@ filterLibraryOptions()
filterPathOptions -L "$DEFAULT_LIBDIRS"
}
+substPrefix()
+{
+ base=${1#$QT_SYSROOT_PREFIX}
+ if [ x"$base" != x"$1" ]; then
+ echo "$QT_EXT_PREFIX$base"
+ else
+ echo "$1"
+ fi
+}
+
#-------------------------------------------------------------------------------
# device options
#-------------------------------------------------------------------------------
@@ -1013,6 +1023,7 @@ QT_HOST_PREFIX=
QT_HOST_BINS=
QT_HOST_LIBS=
QT_HOST_DATA=
+QT_EXT_PREFIX=
#flags for SQL drivers
QT_CFLAGS_PSQL=
@@ -1138,6 +1149,7 @@ while [ "$#" -gt 0 ]; do
-hostdatadir| \
-hostbindir| \
-hostlibdir| \
+ -extprefix| \
-sysroot| \
-depths| \
-make| \
@@ -1346,6 +1358,9 @@ while [ "$#" -gt 0 ]; do
hostlibdir)
QT_HOST_LIBS="$VAL"
;;
+ extprefix)
+ QT_EXT_PREFIX="$VAL"
+ ;;
pkg-config)
if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
CFG_PKGCONFIG="$VAL"
@@ -3161,6 +3176,39 @@ if [ -z "$QT_INSTALL_TESTS" ]; then #default
fi
QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
+#------- sysroot-external install paths --------
+
+QT_SYSROOT_PREFIX=$QT_INSTALL_PREFIX
+QT_SYSROOT_DOCS=$QT_INSTALL_DOCS
+QT_SYSROOT_HEADERS=$QT_INSTALL_HEADERS
+QT_SYSROOT_LIBS=$QT_INSTALL_LIBS
+QT_SYSROOT_LIBEXECS=$QT_INSTALL_LIBEXECS
+QT_SYSROOT_BINS=$QT_INSTALL_BINS
+QT_SYSROOT_PLUGINS=$QT_INSTALL_PLUGINS
+QT_SYSROOT_IMPORTS=$QT_INSTALL_IMPORTS
+QT_SYSROOT_QML=$QT_INSTALL_QML
+QT_SYSROOT_ARCHDATA=$QT_INSTALL_ARCHDATA
+QT_SYSROOT_DATA=$QT_INSTALL_DATA
+QT_SYSROOT_TRANSLATIONS=$QT_INSTALL_TRANSLATIONS
+QT_SYSROOT_EXAMPLES=$QT_INSTALL_EXAMPLES
+QT_SYSROOT_TESTS=$QT_INSTALL_TESTS
+if [ -n "$QT_EXT_PREFIX" ]; then
+ QT_INSTALL_PREFIX=$QT_EXT_PREFIX
+ QT_INSTALL_DOCS=`substPrefix "$QT_INSTALL_DOCS"`
+ QT_INSTALL_HEADERS=`substPrefix "$QT_INSTALL_HEADERS"`
+ QT_INSTALL_LIBS=`substPrefix "$QT_INSTALL_LIBS"`
+ QT_INSTALL_LIBEXECS=`substPrefix "$QT_INSTALL_LIBEXECS"`
+ QT_INSTALL_BINS=`substPrefix "$QT_INSTALL_BINS"`
+ QT_INSTALL_PLUGINS=`substPrefix "$QT_INSTALL_PLUGINS"`
+ QT_INSTALL_IMPORTS=`substPrefix "$QT_INSTALL_IMPORTS"`
+ QT_INSTALL_QML=`substPrefix "$QT_INSTALL_QML"`
+ QT_INSTALL_ARCHDATA=`substPrefix "$QT_INSTALL_ARCHDATA"`
+ QT_INSTALL_DATA=`substPrefix "$QT_INSTALL_DATA"`
+ QT_INSTALL_TRANSLATIONS=`substPrefix "$QT_INSTALL_TRANSLATIONS"`
+ QT_INSTALL_EXAMPLES=`substPrefix "$QT_INSTALL_EXAMPLES"`
+ QT_INSTALL_TESTS=`substPrefix "$QT_INSTALL_TESTS"`
+fi
+
#------- host paths --------
if [ -z "$QT_HOST_PREFIX" ]; then
@@ -3328,10 +3376,13 @@ Installation options:
-prefix
...... This will install everything relative to
(default $QT_INSTALL_PREFIX)
+ -extprefix ... When -sysroot is used, install everything to ,
+ rather than into SYSROOT/PREFIX.
+
-hostprefix [dir] .. Tools and libraries needed when developing
applications are installed in [dir]. If [dir] is
not given, the current build directory will be used.
- (default PREFIX)
+ (default EXTPREFIX)
You may use these to separate different parts of the install:
@@ -3857,6 +3908,12 @@ esac
shortxspec=`echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"`
shortspec=`echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"`
+if [ -z "$QT_EXT_PREFIX" ]; then
+ QMAKE_SYSROOTIFY=y
+else
+ QMAKE_SYSROOTIFY=n
+fi
+
cat > "$outpath/src/corelib/global/qconfig.cpp.new" <> "$outpath/src/corelib/global/qconfig.cpp.new" < NUL
+ else: \
+ PKG_CONFIG += 2> /dev/null
+
return($$PKG_CONFIG)
}
diff --git a/mkspecs/wince50standard-armv4i-msvc2005/default_post.prf b/mkspecs/wince50standard-armv4i-msvc2005/default_post.prf
deleted file mode 100644
index 900d758cc3e..00000000000
--- a/mkspecs/wince50standard-armv4i-msvc2005/default_post.prf
+++ /dev/null
@@ -1,7 +0,0 @@
-# Visual Studio has some definitions set internally.
-# Thus we do not need to redefine these.
-equals(TEMPLATE, "vc.*") {
- DEFINES -= _M_ARM
- QMAKE_CXXFLAGS += -fp:precise
-}
-
diff --git a/mkspecs/wince50standard-armv4i-msvc2005/qmake.conf b/mkspecs/wince50standard-armv4i-msvc2005/qmake.conf
deleted file mode 100644
index 5883c75579b..00000000000
--- a/mkspecs/wince50standard-armv4i-msvc2005/qmake.conf
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# qmake configuration for wince50standard-armv4i-msvc2005
-#
-# Written for Microsoft VC2005.NET with Standard SDK for WindowsCE 5.0 (ARMV4I)
-#
-include(../common/wince/qmake.conf)
-
-CE_SDK = STANDARDSDK_500
-CE_ARCH = ARMV4I
-
-DEFINES += STANDARDSHELL_UI_MODEL _WIN32_WCE=0x500 $$CE_ARCH _ARMV4I_ armv4i _ARM_ ARM _M_ARM ARM __arm__ Q_OS_WINCE_STD QT_NO_PRINTER QT_NO_PRINTDIALOG
-
-QMAKE_CFLAGS += -QRarch4T -QRinterwork-return
-
-QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:THUMB /ENTRY:mainACRTStartup
-QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:THUMB
-QMAKE_LFLAGS_DLL = /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:THUMB /DLL
-QMAKE_LIBFLAGS = $$QMAKE_LFLAGS_WINDOWS
-QMAKE_LIBFLAGS_RELEASE = /LTCG
-QMAKE_LIBS = corelibc.lib
-QMAKE_LIBS_CORE = corelibc.lib ole32.lib oleaut32.lib uuid.lib commctrl.lib coredll.lib winsock.lib
-QMAKE_LIBS_GUI = ceshell.lib ole32.lib $$QMAKE_LIBS_CORE
-QMAKE_LIBS_NETWORK = ws2.lib
diff --git a/mkspecs/wince50standard-armv4i-msvc2005/qplatformdefs.h b/mkspecs/wince50standard-armv4i-msvc2005/qplatformdefs.h
deleted file mode 100644
index 6de176b47cf..00000000000
--- a/mkspecs/wince50standard-armv4i-msvc2005/qplatformdefs.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "../common/wince/qplatformdefs.h"
-
diff --git a/mkspecs/wince50standard-armv4i-msvc2008/default_post.prf b/mkspecs/wince50standard-armv4i-msvc2008/default_post.prf
deleted file mode 100644
index 778a2746d62..00000000000
--- a/mkspecs/wince50standard-armv4i-msvc2008/default_post.prf
+++ /dev/null
@@ -1 +0,0 @@
-include(../wince50standard-armv4i-msvc2005/default_post.prf)
diff --git a/mkspecs/wince50standard-armv4i-msvc2008/qmake.conf b/mkspecs/wince50standard-armv4i-msvc2008/qmake.conf
deleted file mode 100644
index 16046a34f66..00000000000
--- a/mkspecs/wince50standard-armv4i-msvc2008/qmake.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-include(../wince50standard-armv4i-msvc2005/qmake.conf)
-QMAKE_COMPILER_DEFINES -= _MSC_VER=1400
-QMAKE_COMPILER_DEFINES += _MSC_VER=1500
diff --git a/mkspecs/wince50standard-armv4i-msvc2008/qplatformdefs.h b/mkspecs/wince50standard-armv4i-msvc2008/qplatformdefs.h
deleted file mode 100644
index 6de176b47cf..00000000000
--- a/mkspecs/wince50standard-armv4i-msvc2008/qplatformdefs.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "../common/wince/qplatformdefs.h"
-
diff --git a/mkspecs/wince50standard-mipsii-msvc2005/default_post.prf b/mkspecs/wince50standard-mipsii-msvc2005/default_post.prf
deleted file mode 100644
index 4dbcf35d6cd..00000000000
--- a/mkspecs/wince50standard-mipsii-msvc2005/default_post.prf
+++ /dev/null
@@ -1,7 +0,0 @@
-# Visual Studio has some definitions set internally.
-# Thus we do not need to redefine these.
-contains(TEMPLATE, "vc.*") {
- DEFINES -= _M_MRX000=3000
- QMAKE_CXXFLAGS += -fp:precise
-}
-
diff --git a/mkspecs/wince50standard-mipsii-msvc2005/qmake.conf b/mkspecs/wince50standard-mipsii-msvc2005/qmake.conf
deleted file mode 100644
index 40ef0566ae3..00000000000
--- a/mkspecs/wince50standard-mipsii-msvc2005/qmake.conf
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# qmake configuration for wince50standard-mipsii-msvc2005
-#
-# Written for Microsoft VC2005.NET with Standard SDK for WindowsCE 5.0 (MIPSII)
-#
-include(../common/wince/qmake.conf)
-
-CE_SDK = STANDARDSDK_500
-CE_ARCH = MIPSII
-
-DEFINES += STANDARDSHELL_UI_MODEL _WIN32_WCE=0x500 _M_MRX000=3000 MIPS _MIPS_ Q_OS_WINCE_STD QT_NO_PRINTER QT_NO_PRINTDIALOG
-
-QMAKE_CFLAGS += -QMmips2
-QMAKE_CXXFLAGS += -QMmips2
-
-QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:MIPS /ENTRY:mainACRTStartup
-QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:MIPS
-QMAKE_LFLAGS_DLL = /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:MIPS /DLL
-QMAKE_LIBFLAGS = $$QMAKE_LFLAGS_WINDOWS
-QMAKE_LIBFLAGS_RELEASE = /LTCG
-QMAKE_LIBS = corelibc.lib
-QMAKE_LIBS_CORE = corelibc.lib ole32.lib oleaut32.lib uuid.lib commctrl.lib coredll.lib winsock.lib
-QMAKE_LIBS_GUI = ceshell.lib ole32.lib $$QMAKE_LIBS_CORE
-QMAKE_LIBS_NETWORK = ws2.lib
diff --git a/mkspecs/wince50standard-mipsii-msvc2005/qplatformdefs.h b/mkspecs/wince50standard-mipsii-msvc2005/qplatformdefs.h
deleted file mode 100644
index 6de176b47cf..00000000000
--- a/mkspecs/wince50standard-mipsii-msvc2005/qplatformdefs.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "../common/wince/qplatformdefs.h"
-
diff --git a/mkspecs/wince50standard-mipsii-msvc2008/default_post.prf b/mkspecs/wince50standard-mipsii-msvc2008/default_post.prf
deleted file mode 100644
index d4237849588..00000000000
--- a/mkspecs/wince50standard-mipsii-msvc2008/default_post.prf
+++ /dev/null
@@ -1 +0,0 @@
-include(../wince50standard-mipsii-msvc2005/default_post.prf)
diff --git a/mkspecs/wince50standard-mipsii-msvc2008/qmake.conf b/mkspecs/wince50standard-mipsii-msvc2008/qmake.conf
deleted file mode 100644
index 457fddec21c..00000000000
--- a/mkspecs/wince50standard-mipsii-msvc2008/qmake.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-include(../wince50standard-mipsii-msvc2005/qmake.conf)
-QMAKE_COMPILER_DEFINES -= _MSC_VER=1400
-QMAKE_COMPILER_DEFINES += _MSC_VER=1500
diff --git a/mkspecs/wince50standard-mipsii-msvc2008/qplatformdefs.h b/mkspecs/wince50standard-mipsii-msvc2008/qplatformdefs.h
deleted file mode 100644
index 6de176b47cf..00000000000
--- a/mkspecs/wince50standard-mipsii-msvc2008/qplatformdefs.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "../common/wince/qplatformdefs.h"
-
diff --git a/mkspecs/wince50standard-mipsiv-msvc2005/qmake.conf b/mkspecs/wince50standard-mipsiv-msvc2005/qmake.conf
deleted file mode 100644
index b94f3f35d94..00000000000
--- a/mkspecs/wince50standard-mipsiv-msvc2005/qmake.conf
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# qmake configuration for wince50standard-mipsiv-msvc2005
-#
-# Written for Microsoft VC2005.NET with Standard SDK for WindowsCE 5.0 (MIPSIV)
-#
-include(../common/wince/qmake.conf)
-
-CE_SDK = STANDARDSDK_500
-CE_ARCH = MIPSIV
-
-DEFINES += STANDARDSHELL_UI_MODEL _WIN32_WCE=0x500 _M_MRX000=4000 MIPS _MIPS_ Q_OS_WINCE_STD QT_NO_PRINTER QT_NO_PRINTDIALOG MIPS_HAS_FPU
-
-QMAKE_CFLAGS += -QMmips4
-QMAKE_CXXFLAGS += -QMmips4
-
-QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:MIPSFPU /ENTRY:mainACRTStartup
-QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:MIPSFPU
-QMAKE_LFLAGS_DLL = /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:MIPSFPU /DLL
-QMAKE_LIBFLAGS = $$QMAKE_LFLAGS_WINDOWS
-QMAKE_LIBFLAGS_RELEASE = /LTCG
-QMAKE_LIBS = corelibc.lib
-QMAKE_LIBS_CORE = corelibc.lib ole32.lib oleaut32.lib uuid.lib commctrl.lib coredll.lib winsock.lib
-QMAKE_LIBS_GUI = ceshell.lib ole32.lib $$QMAKE_LIBS_CORE
-QMAKE_LIBS_NETWORK = ws2.lib
diff --git a/mkspecs/wince50standard-mipsiv-msvc2005/qplatformdefs.h b/mkspecs/wince50standard-mipsiv-msvc2005/qplatformdefs.h
deleted file mode 100644
index 6de176b47cf..00000000000
--- a/mkspecs/wince50standard-mipsiv-msvc2005/qplatformdefs.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "../common/wince/qplatformdefs.h"
-
diff --git a/mkspecs/wince50standard-mipsiv-msvc2008/qmake.conf b/mkspecs/wince50standard-mipsiv-msvc2008/qmake.conf
deleted file mode 100644
index 77e773b55ca..00000000000
--- a/mkspecs/wince50standard-mipsiv-msvc2008/qmake.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-include(../wince50standard-mipsiv-msvc2005/qmake.conf)
-QMAKE_COMPILER_DEFINES -= _MSC_VER=1400
-QMAKE_COMPILER_DEFINES += _MSC_VER=1500
diff --git a/mkspecs/wince50standard-mipsiv-msvc2008/qplatformdefs.h b/mkspecs/wince50standard-mipsiv-msvc2008/qplatformdefs.h
deleted file mode 100644
index 6de176b47cf..00000000000
--- a/mkspecs/wince50standard-mipsiv-msvc2008/qplatformdefs.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "../common/wince/qplatformdefs.h"
-
diff --git a/mkspecs/wince50standard-sh4-msvc2005/qmake.conf b/mkspecs/wince50standard-sh4-msvc2005/qmake.conf
deleted file mode 100644
index 3fdfdbfe434..00000000000
--- a/mkspecs/wince50standard-sh4-msvc2005/qmake.conf
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# qmake configuration for wincestandard50-sh4-msvc2005
-#
-# Written for Microsoft VC2005.NET with Standard SDK for WindowsCE 5.0 (SH4)
-#
-include(../common/wince/qmake.conf)
-
-CE_SDK = STANDARDSDK_500
-CE_ARCH = SH4
-
-DEFINES += STANDARDSHELL_UI_MODEL _WIN32_WCE=0x500 _M_SH SHx _SHX_ Q_OS_WINCE_STD QT_NO_PRINTER QT_NO_PRINTDIALOG
-
-QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t- -QSsh4
-
-QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:WINDOWSCE,5.00 /ENTRY:mainACRTStartup
-QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWSCE,5.00
-QMAKE_LFLAGS_DLL = /SUBSYSTEM:WINDOWSCE,5.00 /DLL
-QMAKE_LIBFLAGS = $$QMAKE_LFLAGS_WINDOWS
-QMAKE_LIBFLAGS_RELEASE = /LTCG
-QMAKE_LIBS = corelibc.lib
-QMAKE_LIBS_CORE = corelibc.lib ole32.lib oleaut32.lib uuid.lib commctrl.lib coredll.lib winsock.lib
-QMAKE_LIBS_GUI = ceshell.lib ole32.lib $$QMAKE_LIBS_CORE
-QMAKE_LIBS_NETWORK = ws2.lib
diff --git a/mkspecs/wince50standard-sh4-msvc2005/qplatformdefs.h b/mkspecs/wince50standard-sh4-msvc2005/qplatformdefs.h
deleted file mode 100644
index 6de176b47cf..00000000000
--- a/mkspecs/wince50standard-sh4-msvc2005/qplatformdefs.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "../common/wince/qplatformdefs.h"
-
diff --git a/mkspecs/wince50standard-sh4-msvc2008/qmake.conf b/mkspecs/wince50standard-sh4-msvc2008/qmake.conf
deleted file mode 100644
index 5deb0462bc3..00000000000
--- a/mkspecs/wince50standard-sh4-msvc2008/qmake.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-include(../wince50standard-sh4-msvc2005/qmake.conf)
-QMAKE_COMPILER_DEFINES -= _MSC_VER=1400
-QMAKE_COMPILER_DEFINES += _MSC_VER=1500
diff --git a/mkspecs/wince50standard-sh4-msvc2008/qplatformdefs.h b/mkspecs/wince50standard-sh4-msvc2008/qplatformdefs.h
deleted file mode 100644
index 6de176b47cf..00000000000
--- a/mkspecs/wince50standard-sh4-msvc2008/qplatformdefs.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "../common/wince/qplatformdefs.h"
-
diff --git a/mkspecs/wince50standard-x86-msvc2005/default_post.prf b/mkspecs/wince50standard-x86-msvc2005/default_post.prf
deleted file mode 100644
index 2436efb2070..00000000000
--- a/mkspecs/wince50standard-x86-msvc2005/default_post.prf
+++ /dev/null
@@ -1,6 +0,0 @@
-# Visual Studio has some definitions set internally.
-# Thus we do not need to redefine these.
-equals(TEMPLATE, "vc.*") {
- QMAKE_CXXFLAGS += -fp:precise
-}
-
diff --git a/mkspecs/wince50standard-x86-msvc2005/qmake.conf b/mkspecs/wince50standard-x86-msvc2005/qmake.conf
deleted file mode 100644
index 850711d4c14..00000000000
--- a/mkspecs/wince50standard-x86-msvc2005/qmake.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# qmake configuration for wince50standard-x86-msvc2005
-#
-# Written for Microsoft VC2005.NET with Standard SDK for WindowsCE 5.0 (x86)
-#
-include(../common/wince/qmake.conf)
-
-CE_SDK = STANDARDSDK_500
-CE_ARCH = x86
-
-DEFINES += STANDARDSHELL_UI_MODEL _WIN32_WCE=0x500 $$CE_ARCH _X86_ _M_IX86 Q_OS_WINCE_STD QT_NO_PRINTER QT_NO_PRINTDIALOG
-
-QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:X86 /ENTRY:mainACRTStartup
-QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:X86
-QMAKE_LFLAGS_DLL = /SUBSYSTEM:WINDOWSCE,5.00 /MACHINE:X86 /DLL /SAFESEH:NO
-QMAKE_LIBFLAGS = $$QMAKE_LFLAGS_WINDOWS
-QMAKE_LIBFLAGS_RELEASE = /LTCG
-QMAKE_LIBS = corelibc.lib coredll.lib
-QMAKE_LIBS_CORE = corelibc.lib ole32.lib oleaut32.lib uuid.lib commctrl.lib coredll.lib winsock.lib
-QMAKE_LIBS_GUI = ceshell.lib ole32.lib $$QMAKE_LIBS_CORE
-QMAKE_LIBS_NETWORK = ws2.lib $$QMAKE_LIBS_GUI
diff --git a/mkspecs/wince50standard-x86-msvc2005/qplatformdefs.h b/mkspecs/wince50standard-x86-msvc2005/qplatformdefs.h
deleted file mode 100644
index 6de176b47cf..00000000000
--- a/mkspecs/wince50standard-x86-msvc2005/qplatformdefs.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "../common/wince/qplatformdefs.h"
-
diff --git a/mkspecs/wince50standard-x86-msvc2008/default_post.prf b/mkspecs/wince50standard-x86-msvc2008/default_post.prf
deleted file mode 100644
index f2d9c333963..00000000000
--- a/mkspecs/wince50standard-x86-msvc2008/default_post.prf
+++ /dev/null
@@ -1 +0,0 @@
-include(../wince50standard-x86-msvc2005/default_post.prf)
diff --git a/mkspecs/wince50standard-x86-msvc2008/qmake.conf b/mkspecs/wince50standard-x86-msvc2008/qmake.conf
deleted file mode 100644
index 961147100ba..00000000000
--- a/mkspecs/wince50standard-x86-msvc2008/qmake.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-include(../wince50standard-x86-msvc2005/qmake.conf)
-QMAKE_COMPILER_DEFINES -= _MSC_VER=1400
-QMAKE_COMPILER_DEFINES += _MSC_VER=1500
diff --git a/mkspecs/wince50standard-x86-msvc2008/qplatformdefs.h b/mkspecs/wince50standard-x86-msvc2008/qplatformdefs.h
deleted file mode 100644
index 6de176b47cf..00000000000
--- a/mkspecs/wince50standard-x86-msvc2008/qplatformdefs.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "../common/wince/qplatformdefs.h"
-
diff --git a/mkspecs/wince70embedded-armv4i-msvc2008/default_post.prf b/mkspecs/wince70embedded-armv4i-msvc2008/default_post.prf
deleted file mode 100644
index f2d9c333963..00000000000
--- a/mkspecs/wince70embedded-armv4i-msvc2008/default_post.prf
+++ /dev/null
@@ -1 +0,0 @@
-include(../wince50standard-x86-msvc2005/default_post.prf)
diff --git a/mkspecs/wince70embedded-x86-msvc2008/default_post.prf b/mkspecs/wince70embedded-x86-msvc2008/default_post.prf
deleted file mode 100644
index f2d9c333963..00000000000
--- a/mkspecs/wince70embedded-x86-msvc2008/default_post.prf
+++ /dev/null
@@ -1 +0,0 @@
-include(../wince50standard-x86-msvc2005/default_post.prf)
diff --git a/mkspecs/wincewm50pocket-msvc2005/default_post.prf b/mkspecs/wincewm50pocket-msvc2005/default_post.prf
deleted file mode 100644
index 84ea15e0955..00000000000
--- a/mkspecs/wincewm50pocket-msvc2005/default_post.prf
+++ /dev/null
@@ -1,7 +0,0 @@
-# Visual Studio has some definitions set internally.
-# Thus we do not need to redefine these.
-contains(TEMPLATE, "vc.*") {
- DEFINES -= _M_ARM
- QMAKE_CXXFLAGS += -fp:precise
-}
-
diff --git a/mkspecs/wincewm50pocket-msvc2005/qmake.conf b/mkspecs/wincewm50pocket-msvc2005/qmake.conf
deleted file mode 100644
index f92cdb50f98..00000000000
--- a/mkspecs/wincewm50pocket-msvc2005/qmake.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# qmake configuration for wincepocket50-msvc2005
-#
-# Written for Microsoft VC2005.NET with Windows Mobile 5.0 SDK for Pocket PC (ARMV4I)
-#
-include(../common/wince/qmake.conf)
-
-CE_SDK = Windows Mobile 5.0 Pocket PC SDK
-CE_ARCH = ARMV4I
-
-DEFINES += _WIN32_WCE=0x501 $$CE_ARCH _ARMV4I_ armv4i _ARM_ ARM _M_ARM ARM __arm__ Q_OS_WINCE_WM QT_NO_PRINTER QT_NO_PRINTDIALOG
-
-QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:WINDOWSCE,5.01 /MACHINE:THUMB /ENTRY:mainACRTStartup
-QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWSCE,5.01 /MACHINE:THUMB
-QMAKE_LFLAGS_DLL = /SUBSYSTEM:WINDOWSCE,5.01 /MACHINE:THUMB /DLL
-QMAKE_LIBFLAGS = $$QMAKE_LFLAGS_WINDOWS
-QMAKE_LIBFLAGS_RELEASE = /LTCG
-QMAKE_LIBS = corelibc.lib
-QMAKE_LIBS_CORE = corelibc.lib ole32.lib oleaut32.lib uuid.lib commctrl.lib coredll.lib winsock.lib
-QMAKE_LIBS_GUI = ceshell.lib ole32.lib uuid.lib
-QMAKE_LIBS_NETWORK = ws2.lib
diff --git a/mkspecs/wincewm50pocket-msvc2005/qplatformdefs.h b/mkspecs/wincewm50pocket-msvc2005/qplatformdefs.h
deleted file mode 100644
index 6de176b47cf..00000000000
--- a/mkspecs/wincewm50pocket-msvc2005/qplatformdefs.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "../common/wince/qplatformdefs.h"
-
diff --git a/mkspecs/wincewm50pocket-msvc2008/default_post.prf b/mkspecs/wincewm50pocket-msvc2008/default_post.prf
deleted file mode 100644
index c4f6ea9390a..00000000000
--- a/mkspecs/wincewm50pocket-msvc2008/default_post.prf
+++ /dev/null
@@ -1 +0,0 @@
-include(../wincewm50pocket-msvc2005/default_post.prf)
diff --git a/mkspecs/wincewm50pocket-msvc2008/qmake.conf b/mkspecs/wincewm50pocket-msvc2008/qmake.conf
deleted file mode 100644
index a22eef07a90..00000000000
--- a/mkspecs/wincewm50pocket-msvc2008/qmake.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-include(../wincewm50pocket-msvc2005/qmake.conf)
-QMAKE_COMPILER_DEFINES -= _MSC_VER=1400
-QMAKE_COMPILER_DEFINES += _MSC_VER=1500
diff --git a/mkspecs/wincewm50pocket-msvc2008/qplatformdefs.h b/mkspecs/wincewm50pocket-msvc2008/qplatformdefs.h
deleted file mode 100644
index 6de176b47cf..00000000000
--- a/mkspecs/wincewm50pocket-msvc2008/qplatformdefs.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "../common/wince/qplatformdefs.h"
-
diff --git a/mkspecs/wincewm50smart-msvc2005/default_post.prf b/mkspecs/wincewm50smart-msvc2005/default_post.prf
deleted file mode 100644
index 84ea15e0955..00000000000
--- a/mkspecs/wincewm50smart-msvc2005/default_post.prf
+++ /dev/null
@@ -1,7 +0,0 @@
-# Visual Studio has some definitions set internally.
-# Thus we do not need to redefine these.
-contains(TEMPLATE, "vc.*") {
- DEFINES -= _M_ARM
- QMAKE_CXXFLAGS += -fp:precise
-}
-
diff --git a/mkspecs/wincewm50smart-msvc2005/qmake.conf b/mkspecs/wincewm50smart-msvc2005/qmake.conf
deleted file mode 100644
index 9ac41c28663..00000000000
--- a/mkspecs/wincewm50smart-msvc2005/qmake.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# qmake configuration for wincesmart50-msvc2005
-#
-# Written for Microsoft VC2005.NET with Windows Mobile 5.0 SDK for Smartphone (ARMV4I)
-#
-include(../common/wince/qmake.conf)
-
-CE_SDK = Windows Mobile 5.0 Smartphone SDK
-CE_ARCH = ARMV4I
-
-DEFINES += SMARTPHONE2003_UI_MODEL _WIN32_WCE=0x501 $$CE_ARCH _ARMV4I_ armv4i _ARM_ ARM _M_ARM ARM __arm__ Q_OS_WINCE_WM QT_NO_PRINTER QT_NO_PRINTDIALOG QT_KEYPAD_NAVIGATION
-
-QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:WINDOWSCE,5.01 /MACHINE:THUMB /ENTRY:mainACRTStartup
-QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWSCE,5.01 /MACHINE:THUMB
-QMAKE_LFLAGS_DLL = /SUBSYSTEM:WINDOWSCE,5.01 /MACHINE:THUMB /DLL
-QMAKE_LIBFLAGS = $$QMAKE_LFLAGS_WINDOWS
-QMAKE_LIBFLAGS_RELEASE = /LTCG
-QMAKE_LIBS = corelibc.lib
-QMAKE_LIBS_CORE = corelibc.lib ole32.lib oleaut32.lib uuid.lib commctrl.lib coredll.lib winsock.lib
-QMAKE_LIBS_GUI = ceshell.lib ole32.lib uuid.lib
-QMAKE_LIBS_NETWORK = ws2.lib
diff --git a/mkspecs/wincewm50smart-msvc2005/qplatformdefs.h b/mkspecs/wincewm50smart-msvc2005/qplatformdefs.h
deleted file mode 100644
index 6de176b47cf..00000000000
--- a/mkspecs/wincewm50smart-msvc2005/qplatformdefs.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "../common/wince/qplatformdefs.h"
-
diff --git a/mkspecs/wincewm50smart-msvc2008/default_post.prf b/mkspecs/wincewm50smart-msvc2008/default_post.prf
deleted file mode 100644
index 912944d79d4..00000000000
--- a/mkspecs/wincewm50smart-msvc2008/default_post.prf
+++ /dev/null
@@ -1 +0,0 @@
-include(../wincewm50smart-msvc2005/default_post.prf)
diff --git a/mkspecs/wincewm50smart-msvc2008/qmake.conf b/mkspecs/wincewm50smart-msvc2008/qmake.conf
deleted file mode 100644
index 847b2f38acb..00000000000
--- a/mkspecs/wincewm50smart-msvc2008/qmake.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-include(../wincewm50smart-msvc2005/qmake.conf)
-QMAKE_COMPILER_DEFINES -= _MSC_VER=1400
-QMAKE_COMPILER_DEFINES += _MSC_VER=1500
diff --git a/mkspecs/wincewm50smart-msvc2008/qplatformdefs.h b/mkspecs/wincewm50smart-msvc2008/qplatformdefs.h
deleted file mode 100644
index 6de176b47cf..00000000000
--- a/mkspecs/wincewm50smart-msvc2008/qplatformdefs.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "../common/wince/qplatformdefs.h"
-
diff --git a/mkspecs/wincewm60professional-msvc2005/default_post.prf b/mkspecs/wincewm60professional-msvc2005/default_post.prf
deleted file mode 100644
index 84ea15e0955..00000000000
--- a/mkspecs/wincewm60professional-msvc2005/default_post.prf
+++ /dev/null
@@ -1,7 +0,0 @@
-# Visual Studio has some definitions set internally.
-# Thus we do not need to redefine these.
-contains(TEMPLATE, "vc.*") {
- DEFINES -= _M_ARM
- QMAKE_CXXFLAGS += -fp:precise
-}
-
diff --git a/mkspecs/wincewm60professional-msvc2005/qmake.conf b/mkspecs/wincewm60professional-msvc2005/qmake.conf
deleted file mode 100644
index 029ea08652c..00000000000
--- a/mkspecs/wincewm60professional-msvc2005/qmake.conf
+++ /dev/null
@@ -1,13 +0,0 @@
-include(../wincewm50pocket-msvc2005/qmake.conf)
-
-CE_SDK = Windows Mobile 6 Professional SDK
-CE_ARCH = ARMV4I
-
-DEFINES -= _WIN32_WCE=0x501
-DEFINES += _WIN32_WCE=0x502
-
-QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:WINDOWSCE,5.02 /MACHINE:THUMB /ENTRY:mainACRTStartup
-QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWSCE,5.02 /MACHINE:THUMB
-QMAKE_LFLAGS_DLL = /SUBSYSTEM:WINDOWSCE,5.02 /MACHINE:THUMB /DLL
-QMAKE_LIBFLAGS = $$QMAKE_LFLAGS_WINDOWS
-
diff --git a/mkspecs/wincewm60professional-msvc2005/qplatformdefs.h b/mkspecs/wincewm60professional-msvc2005/qplatformdefs.h
deleted file mode 100644
index 6de176b47cf..00000000000
--- a/mkspecs/wincewm60professional-msvc2005/qplatformdefs.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "../common/wince/qplatformdefs.h"
-
diff --git a/mkspecs/wincewm60professional-msvc2008/default_post.prf b/mkspecs/wincewm60professional-msvc2008/default_post.prf
deleted file mode 100644
index 86bc964a519..00000000000
--- a/mkspecs/wincewm60professional-msvc2008/default_post.prf
+++ /dev/null
@@ -1 +0,0 @@
-include(../wincewm60professional-msvc2005/default_post.prf)
diff --git a/mkspecs/wincewm60professional-msvc2008/qmake.conf b/mkspecs/wincewm60professional-msvc2008/qmake.conf
deleted file mode 100644
index 67e7410c7ab..00000000000
--- a/mkspecs/wincewm60professional-msvc2008/qmake.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-include(../wincewm60professional-msvc2005/qmake.conf)
-QMAKE_COMPILER_DEFINES -= _MSC_VER=1400
-QMAKE_COMPILER_DEFINES += _MSC_VER=1500
diff --git a/mkspecs/wincewm60professional-msvc2008/qplatformdefs.h b/mkspecs/wincewm60professional-msvc2008/qplatformdefs.h
deleted file mode 100644
index 6de176b47cf..00000000000
--- a/mkspecs/wincewm60professional-msvc2008/qplatformdefs.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "../common/wince/qplatformdefs.h"
-
diff --git a/mkspecs/wincewm60standard-msvc2005/default_post.prf b/mkspecs/wincewm60standard-msvc2005/default_post.prf
deleted file mode 100644
index 84ea15e0955..00000000000
--- a/mkspecs/wincewm60standard-msvc2005/default_post.prf
+++ /dev/null
@@ -1,7 +0,0 @@
-# Visual Studio has some definitions set internally.
-# Thus we do not need to redefine these.
-contains(TEMPLATE, "vc.*") {
- DEFINES -= _M_ARM
- QMAKE_CXXFLAGS += -fp:precise
-}
-
diff --git a/mkspecs/wincewm60standard-msvc2005/qmake.conf b/mkspecs/wincewm60standard-msvc2005/qmake.conf
deleted file mode 100644
index aa1ade030aa..00000000000
--- a/mkspecs/wincewm60standard-msvc2005/qmake.conf
+++ /dev/null
@@ -1,18 +0,0 @@
-include(../wincewm50smart-msvc2005/qmake.conf)
-
-CE_SDK = Windows Mobile 6 Standard SDK
-CE_ARCH = ARMV4I
-
-DEFINES -= _WIN32_WCE=0x501
-DEFINES += _WIN32_WCE=0x502
-
-# Windows Mobile 6 Standard edition defines
-# GWES_ICONCURS=1 although there is no cursor support
-
-DEFINES += QT_NO_CURSOR
-
-QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:WINDOWSCE,5.02 /MACHINE:THUMB /ENTRY:mainACRTStartup
-QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWSCE,5.02 /MACHINE:THUMB
-QMAKE_LFLAGS_DLL = /SUBSYSTEM:WINDOWSCE,5.02 /MACHINE:THUMB /DLL
-QMAKE_LIBFLAGS = $$QMAKE_LFLAGS_WINDOWS
-
diff --git a/mkspecs/wincewm60standard-msvc2005/qplatformdefs.h b/mkspecs/wincewm60standard-msvc2005/qplatformdefs.h
deleted file mode 100644
index 6de176b47cf..00000000000
--- a/mkspecs/wincewm60standard-msvc2005/qplatformdefs.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "../common/wince/qplatformdefs.h"
-
diff --git a/mkspecs/wincewm60standard-msvc2008/default_post.prf b/mkspecs/wincewm60standard-msvc2008/default_post.prf
deleted file mode 100644
index 5e3af26af63..00000000000
--- a/mkspecs/wincewm60standard-msvc2008/default_post.prf
+++ /dev/null
@@ -1 +0,0 @@
-include(../wincewm60standard-msvc2005/default_post.prf)
diff --git a/mkspecs/wincewm60standard-msvc2008/qmake.conf b/mkspecs/wincewm60standard-msvc2008/qmake.conf
deleted file mode 100644
index ff184375c10..00000000000
--- a/mkspecs/wincewm60standard-msvc2008/qmake.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-include(../wincewm60standard-msvc2005/qmake.conf)
-QMAKE_COMPILER_DEFINES -= _MSC_VER=1400
-QMAKE_COMPILER_DEFINES += _MSC_VER=1500
diff --git a/mkspecs/wincewm60standard-msvc2008/qplatformdefs.h b/mkspecs/wincewm60standard-msvc2008/qplatformdefs.h
deleted file mode 100644
index 6de176b47cf..00000000000
--- a/mkspecs/wincewm60standard-msvc2008/qplatformdefs.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "../common/wince/qplatformdefs.h"
-
diff --git a/mkspecs/wincewm65professional-msvc2005/default_post.prf b/mkspecs/wincewm65professional-msvc2005/default_post.prf
deleted file mode 100644
index 86bc964a519..00000000000
--- a/mkspecs/wincewm65professional-msvc2005/default_post.prf
+++ /dev/null
@@ -1 +0,0 @@
-include(../wincewm60professional-msvc2005/default_post.prf)
diff --git a/mkspecs/wincewm65professional-msvc2005/qmake.conf b/mkspecs/wincewm65professional-msvc2005/qmake.conf
deleted file mode 100644
index 561c0495c97..00000000000
--- a/mkspecs/wincewm65professional-msvc2005/qmake.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-include(../wincewm60professional-msvc2005/qmake.conf)
-
-DEFINES += QT_WINCE_GESTURES
-QMAKE_LIBS_GUI += TouchGestureCore.lib
-
diff --git a/mkspecs/wincewm65professional-msvc2005/qplatformdefs.h b/mkspecs/wincewm65professional-msvc2005/qplatformdefs.h
deleted file mode 100644
index 6de176b47cf..00000000000
--- a/mkspecs/wincewm65professional-msvc2005/qplatformdefs.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "../common/wince/qplatformdefs.h"
-
diff --git a/mkspecs/wincewm65professional-msvc2008/default_post.prf b/mkspecs/wincewm65professional-msvc2008/default_post.prf
deleted file mode 100644
index c8545618438..00000000000
--- a/mkspecs/wincewm65professional-msvc2008/default_post.prf
+++ /dev/null
@@ -1 +0,0 @@
-include(../wincewm65professional-msvc2005/default_post.prf)
diff --git a/mkspecs/wincewm65professional-msvc2008/qmake.conf b/mkspecs/wincewm65professional-msvc2008/qmake.conf
deleted file mode 100644
index 552c7c8be73..00000000000
--- a/mkspecs/wincewm65professional-msvc2008/qmake.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-include(../wincewm65professional-msvc2005/qmake.conf)
-QMAKE_COMPILER_DEFINES -= _MSC_VER=1400
-QMAKE_COMPILER_DEFINES += _MSC_VER=1500
diff --git a/mkspecs/wincewm65professional-msvc2008/qplatformdefs.h b/mkspecs/wincewm65professional-msvc2008/qplatformdefs.h
deleted file mode 100644
index 6de176b47cf..00000000000
--- a/mkspecs/wincewm65professional-msvc2008/qplatformdefs.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "../common/wince/qplatformdefs.h"
-
diff --git a/qmake/Makefile.unix b/qmake/Makefile.unix
index 2f8f07eb2d3..a77b1b22dc0 100644
--- a/qmake/Makefile.unix
+++ b/qmake/Makefile.unix
@@ -92,7 +92,8 @@ CPPFLAGS = -g $(EXTRA_CPPFLAGS) \
-I$(SOURCE_PATH)/tools/shared \
-DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DPROEVALUATOR_FULL \
-DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_NO_COMPONENT -DQT_NO_COMPRESS \
- -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM
+ -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM \
+ -DQT_CRYPTOGRAPHICHASH_ONLY_SHA1
CXXFLAGS = $(EXTRA_CXXFLAGS) $(CPPFLAGS)
diff --git a/qmake/Makefile.win32 b/qmake/Makefile.win32
index 979155678e6..9a772d97609 100644
--- a/qmake/Makefile.win32
+++ b/qmake/Makefile.win32
@@ -41,7 +41,7 @@ CFLAGS_BARE = -c -Fo./ \
-DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DPROEVALUATOR_FULL \
-DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_NO_COMPONENT -DQT_NO_COMPRESS \
-DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM \
- -DUNICODE
+ -DUNICODE -DQT_CRYPTOGRAPHICHASH_ONLY_SHA1
CFLAGS = -Yuqmake_pch.h -FIqmake_pch.h -Fpqmake_pch.pch $(CFLAGS_BARE) $(CFLAGS) $(EXTRA_CPPFLAGS)
CXXFLAGS_BARE = $(CFLAGS_BARE)
diff --git a/qmake/doc/snippets/code/doc_src_qmake-manual.pro b/qmake/doc/snippets/code/doc_src_qmake-manual.pro
index 0ee47858875..aa3f7f3502a 100644
--- a/qmake/doc/snippets/code/doc_src_qmake-manual.pro
+++ b/qmake/doc/snippets/code/doc_src_qmake-manual.pro
@@ -915,3 +915,64 @@ greaterThan(TMP_VALUE, x456): message("Condition may be true.")
#! [173]
message("First line$$escape_expand(\\n)Second line")
#! [173]
+
+
+#! [174]
+TEMPLATE = subdirs
+SUBDIRS = one two three
+prepareRecursiveTarget(check)
+#! [174]
+
+
+#! [175]
+two.CONFIG += no_check_target
+#! [175]
+
+
+#! [176]
+QMAKE_EXTRA_TARGETS += check
+#! [176]
+
+
+#! [177]
+# /features/mycheck.prf
+equals(TEMPLATE, subdirs) {
+ prepareRecursiveTarget(check)
+} else {
+ check.commands = echo hello user
+}
+QMAKE_EXTRA_TARGETS += check
+#! [177]
+
+
+#! [178]
+# /.qmake.conf
+CONFIG += mycheck
+#! [178]
+
+
+#! [179]
+# /project.pro
+load(configure)
+#! [179]
+
+
+#! [180]
+# /config.tests/test/test.pro
+SOURCES = main.cpp
+LIBS += -ltheFeature
+# Note that the test project is built without Qt by default.
+#! [180]
+
+
+#! [181]
+// /config.tests/test/main.cpp
+#include
+int main() { return featureFunction(); }
+#! [181]
+
+
+#! [182]
+# /project.pro
+qtCompileTest(test)
+#! [182]
diff --git a/qmake/doc/src/qmake-manual.qdoc b/qmake/doc/src/qmake-manual.qdoc
index a00d00d8c15..73538a7932d 100644
--- a/qmake/doc/src/qmake-manual.qdoc
+++ b/qmake/doc/src/qmake-manual.qdoc
@@ -3067,6 +3067,80 @@
And then, in the code:
\snippet code/doc_src_qmake-manual.pro 158
+
+ \section2 prepareRecursiveTarget(target)
+
+ Facilitates the creation of project-wide targets similar to the \c install
+ target by preparing a target that iterates through all subdirectories. For
+ example:
+
+ \snippet code/doc_src_qmake-manual.pro 174
+
+ Subdirs that have \c have_no_default or \c no__target specified in
+ their .CONFIG are excluded from this target:
+
+ \snippet code/doc_src_qmake-manual.pro 175
+
+ You must add the prepared target manually to \l{QMAKE_EXTRA_TARGETS}:
+
+ \snippet code/doc_src_qmake-manual.pro 176
+
+ To make the target global, the code above needs to be included into every
+ subdirs subproject. In addition, to make these targets do anything,
+ non-subdirs subprojects need to include respective code. The easiest way to
+ achieve this is creating a custom feature file. For example:
+
+ \snippet code/doc_src_qmake-manual.pro 177
+
+ The feature file needs to be injected into each subproject, for example by
+ .qmake.conf:
+
+ \snippet code/doc_src_qmake-manual.pro 178
+
+ \section2 qtCompileTest(test)
+
+ Builds a test project. If the test passes, true is returned and
+ \c {config_} is added to the \l{CONFIG} variable. Otherwise, false is
+ returned.
+
+ To make this function available, you need to load the respective feature
+ file:
+
+ \snippet code/doc_src_qmake-manual.pro 179
+
+ This also sets the variable QMAKE_CONFIG_TESTS_DIR to the
+ \c config.tests subdirectory of the project's parent directory.
+ It is possible to override this value after loading the feature file.
+
+ Inside the tests directory, there has to be one subdirectory per test that
+ contains a simple qmake project. The following code snippet illustrates the
+ .pro file of the project:
+
+ \snippet code/doc_src_qmake-manual.pro 180
+
+ The following code snippet illustrates the main .cpp file of the project:
+
+ \snippet code/doc_src_qmake-manual.pro 181
+
+ The following code snippet shows the invocation of the test:
+
+ \snippet code/doc_src_qmake-manual.pro 182
+
+ If the test project is built successfully, the test passes.
+
+ The test results are automatically cached, which also makes them
+ available to all subprojects. It is therefore recommended to run
+ all configuration tests in the top-level project file.
+
+ To suppress the re-use of cached results, pass \c{CONFIG+=recheck}
+ to qmake.
+
+ See also \l{load(feature)}{load()}.
+
+ \section2 qtHaveModule(name)
+
+ Checks whether the Qt module specified by \c name is present.
+ For a list of possible values, see \l{Variables#QT}{QT}.
*/
/*!
diff --git a/qmake/generators/integrity/gbuild.cpp b/qmake/generators/integrity/gbuild.cpp
index f6bd448cbaa..8a3a75b7d9d 100644
--- a/qmake/generators/integrity/gbuild.cpp
+++ b/qmake/generators/integrity/gbuild.cpp
@@ -44,7 +44,6 @@
#include "meta.h"
#include
#include
-#include
#include
#include
#include
diff --git a/qmake/generators/mac/pbuilder_pbx.cpp b/qmake/generators/mac/pbuilder_pbx.cpp
index d1c70900fbe..b8e6d05728f 100644
--- a/qmake/generators/mac/pbuilder_pbx.cpp
+++ b/qmake/generators/mac/pbuilder_pbx.cpp
@@ -66,9 +66,9 @@ QT_BEGIN_NAMESPACE
using namespace QMakeInternal;
-static QString qtMD5(const QByteArray &src)
+static QString qtSha1(const QByteArray &src)
{
- QByteArray digest = QCryptographicHash::hash(src, QCryptographicHash::Md5);
+ QByteArray digest = QCryptographicHash::hash(src, QCryptographicHash::Sha1);
return QString::fromLatin1(digest.toHex());
}
@@ -1547,7 +1547,7 @@ ProjectBuilderMakefileGenerator::keyFor(const QString &block)
#endif
QString ret;
if(!keys.contains(block)) {
- ret = qtMD5(block.toUtf8()).left(24).toUpper();
+ ret = qtSha1(block.toUtf8()).left(24).toUpper();
keys.insert(block, ret);
} else {
ret = keys[block];
diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp
index dfcb0ec352c..d550748c9bc 100644
--- a/qmake/generators/win32/msvc_vcproj.cpp
+++ b/qmake/generators/win32/msvc_vcproj.cpp
@@ -340,7 +340,7 @@ QUuid VcprojGenerator::getProjectUUID(const QString &filename)
// If none, create one based on the MD5 of absolute project path
if(uuid.isNull() || !filename.isEmpty()) {
QString abspath = Option::fixPathToLocalOS(filename.isEmpty()?project->first("QMAKE_MAKEFILE").toQString():filename);
- QByteArray digest = QCryptographicHash::hash(abspath.toUtf8(), QCryptographicHash::Md5);
+ QByteArray digest = QCryptographicHash::hash(abspath.toUtf8(), QCryptographicHash::Sha1);
memcpy((unsigned char*)(&uuid), digest.constData(), sizeof(QUuid));
validUUID = !uuid.isNull();
uuid.data4[0] = (uuid.data4[0] & 0x3F) | 0x80; // UV_DCE variant
diff --git a/qmake/qmake.pri b/qmake/qmake.pri
index 4cc401bc13f..39959efe7b2 100644
--- a/qmake/qmake.pri
+++ b/qmake/qmake.pri
@@ -147,7 +147,7 @@ bootstrap { #Qt code
CFLAGS += -fhonor-std
LFLAGS += -lcpp
}
- DEFINES *= QT_NO_QOBJECT
+ DEFINES *= QT_NO_QOBJECT QT_CRYPTOGRAPHICHASH_ONLY_SHA1
} else {
CONFIG += qt
QT = core
diff --git a/src/angle/src/config.pri b/src/angle/src/config.pri
index 465bcf6a1e8..1c6d8b0167e 100644
--- a/src/angle/src/config.pri
+++ b/src/angle/src/config.pri
@@ -78,10 +78,11 @@ msvc {
# 4239: nonstandard extension used : 'token' : conversion from 'type' to 'type'
# 4244: 'argument' : conversion from 'type1' to 'type2', possible loss of data
# 4245: 'conversion' : conversion from 'type1' to 'type2', signed/unsigned mismatch
+ # 4275: non - DLL-interface classkey 'identifier' used as base for DLL-interface classkey 'identifier'
# 4512: 'class' : assignment operator could not be generated
# 4702: unreachable code
QMAKE_CFLAGS_WARN_ON -= -W3
- QMAKE_CFLAGS_WARN_ON += -W4 -wd"4100" -wd"4127" -wd"4189" -wd"4239" -wd"4244" -wd"4245" -wd"4512" -wd"4702"
+ QMAKE_CFLAGS_WARN_ON += -W4 -wd"4100" -wd"4127" -wd"4189" -wd"4239" -wd"4244" -wd"4245" -wd"4275" -wd"4512" -wd"4702"
# Optimizations
# /Oy: Omits frame pointer (x86 only).
# /Gy: Enables function-level linking.
diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp
index 18f293bba5f..61841cab76c 100644
--- a/src/corelib/global/qlibraryinfo.cpp
+++ b/src/corelib/global/qlibraryinfo.cpp
@@ -320,7 +320,7 @@ QLibraryInfo::location(LibraryLocation loc)
QString ret = rawLocation(loc, FinalPaths);
// Automatically prepend the sysroot to target paths
- if (loc < SysrootPath || loc > LastHostPath) {
+ if ((loc < SysrootPath || loc > LastHostPath) && qt_sysrootify_prefix[12] == 'y') {
QString sysroot = rawLocation(SysrootPath, FinalPaths);
if (!sysroot.isEmpty() && ret.length() > 2 && ret.at(1) == QLatin1Char(':')
&& (ret.at(2) == QLatin1Char('/') || ret.at(2) == QLatin1Char('\\')))
diff --git a/src/corelib/json/qjsonobject.cpp b/src/corelib/json/qjsonobject.cpp
index 2be9d8891dd..43336de2e78 100644
--- a/src/corelib/json/qjsonobject.cpp
+++ b/src/corelib/json/qjsonobject.cpp
@@ -69,7 +69,7 @@ QT_BEGIN_NAMESPACE
QJsonObject is an implicitly shared class, and shares the data with the document
it has been created from as long as it is not being modified.
- You can convert the array to and from text based JSON through QJsonDocument.
+ You can convert the object to and from text based JSON through QJsonDocument.
*/
/*!
@@ -104,7 +104,7 @@ QT_BEGIN_NAMESPACE
/*!
- Constructs an empty JSON object
+ Constructs an empty JSON object.
\sa isEmpty()
*/
@@ -245,7 +245,7 @@ bool QJsonObject::isEmpty() const
/*!
Returns a QJsonValue representing the value for the key \a key.
- The returned QJsonValue is \c Undefined, if the key does not exist.
+ The returned QJsonValue is QJsonValue::Undefined if the key does not exist.
\sa QJsonValue, QJsonValue::isUndefined()
*/
@@ -266,7 +266,7 @@ QJsonValue QJsonObject::value(const QString &key) const
This does the same as value().
- The returned QJsonValue is \c Undefined, if the key does not exist.
+ The returned QJsonValue is QJsonValue::Undefined if the key does not exist.
\sa value(), QJsonValue, QJsonValue::isUndefined()
*/
@@ -281,7 +281,7 @@ QJsonValue QJsonObject::operator [](const QString &key) const
The return value is of type QJsonValueRef, a helper class for QJsonArray
and QJsonObject. When you get an object of type QJsonValueRef, you can
use it as if it were a reference to a QJsonValue. If you assign to it,
- the assignment will apply to the character in the QJsonArray of QJsonObject
+ the assignment will apply to the element in the QJsonArray or QJsonObject
from which you got the reference.
\sa value()
@@ -301,13 +301,13 @@ QJsonValueRef QJsonObject::operator [](const QString &key)
/*!
Inserts a new item with the key \a key and a value of \a value.
- If there is already an item with the key \a key then that item's value
+ If there is already an item with the key \a key, then that item's value
is replaced with \a value.
Returns an iterator pointing to the inserted item.
If the value is QJsonValue::Undefined, it will cause the key to get removed
- from the object. The returned iterator will then point to end()
+ from the object. The returned iterator will then point to end().
\sa remove(), take(), QJsonObject::iterator, end()
*/
@@ -382,7 +382,7 @@ void QJsonObject::remove(const QString &key)
Returns a QJsonValue containing the value referenced by \a key.
If \a key was not contained in the object, the returned QJsonValue
- is Undefined.
+ is QJsonValue::Undefined.
\sa insert(), remove(), QJsonValue
*/
@@ -422,7 +422,7 @@ bool QJsonObject::contains(const QString &key) const
}
/*!
- Returns \c true if \a other is equal to this object
+ Returns \c true if \a other is equal to this object.
*/
bool QJsonObject::operator==(const QJsonObject &other) const
{
@@ -447,7 +447,7 @@ bool QJsonObject::operator==(const QJsonObject &other) const
}
/*!
- Returns \c true if \a other is not equal to this object
+ Returns \c true if \a other is not equal to this object.
*/
bool QJsonObject::operator!=(const QJsonObject &other) const
{
@@ -501,7 +501,7 @@ QJsonObject::iterator QJsonObject::find(const QString &key)
*/
/*!
- Returns an const iterator pointing to the item with key \a key in the
+ Returns a const iterator pointing to the item with key \a key in the
map.
If the map contains no item with key \a key, the function
@@ -594,7 +594,7 @@ QJsonObject::const_iterator QJsonObject::constFind(const QString &key) const
should use QJsonObject::const_iterator. It is generally good practice to
use QJsonObject::const_iterator on a non-const QJsonObject as well, unless you
need to change the QJsonObject through the iterator. Const iterators are
- slightly faster, and improves code readability.
+ slightly faster, and improve code readability.
The default QJsonObject::iterator constructor creates an uninitialized
iterator. You must initialize it using a QJsonObject function like
@@ -614,8 +614,8 @@ QJsonObject::const_iterator QJsonObject::constFind(const QString &key) const
/*! \typedef QJsonObject::iterator::iterator_category
- A synonym for \e {std::bidirectional_iterator_tag} indicating
- this iterator is a bidirectional iterator.
+ A synonym for \e {std::bidirectional_iterator_tag} indicating
+ this iterator is a bidirectional iterator.
*/
/*! \typedef QJsonObject::iterator::reference
@@ -664,7 +664,7 @@ QJsonObject::const_iterator QJsonObject::constFind(const QString &key) const
The return value is of type QJsonValueRef, a helper class for QJsonArray
and QJsonObject. When you get an object of type QJsonValueRef, you can
use it as if it were a reference to a QJsonValue. If you assign to it,
- the assignment will apply to the character in the QJsonArray of QJsonObject
+ the assignment will apply to the element in the QJsonArray or QJsonObject
from which you got the reference.
\sa key(), operator*()
@@ -679,7 +679,7 @@ QJsonObject::const_iterator QJsonObject::constFind(const QString &key) const
The return value is of type QJsonValueRef, a helper class for QJsonArray
and QJsonObject. When you get an object of type QJsonValueRef, you can
use it as if it were a reference to a QJsonValue. If you assign to it,
- the assignment will apply to the character in the QJsonArray of QJsonObject
+ the assignment will apply to the element in the QJsonArray or QJsonObject
from which you got the reference.
\sa key()
@@ -788,7 +788,7 @@ QJsonObject::const_iterator QJsonObject::constFind(const QString &key) const
over it, you must use QJsonObject::iterator instead. It is generally
good practice to use QJsonObject::const_iterator on a non-const QJsonObject as
well, unless you need to change the QJsonObject through the iterator.
- Const iterators are slightly faster and improves code
+ Const iterators are slightly faster and improve code
readability.
The default QJsonObject::const_iterator constructor creates an
@@ -809,8 +809,8 @@ QJsonObject::const_iterator QJsonObject::constFind(const QString &key) const
/*! \typedef QJsonObject::const_iterator::iterator_category
- A synonym for \e {std::bidirectional_iterator_tag} indicating
- this iterator is a bidirectional iterator.
+ A synonym for \e {std::bidirectional_iterator_tag} indicating
+ this iterator is a bidirectional iterator.
*/
/*! \typedef QJsonObject::const_iterator::reference
diff --git a/src/corelib/kernel/qeventdispatcher_win.cpp b/src/corelib/kernel/qeventdispatcher_win.cpp
index d1bd8fbe958..dfb897c0fdb 100644
--- a/src/corelib/kernel/qeventdispatcher_win.cpp
+++ b/src/corelib/kernel/qeventdispatcher_win.cpp
@@ -52,8 +52,6 @@
#include "qelapsedtimer.h"
#include "qcoreapplication_p.h"
-#include "qsysinfo.h"
-
#include
#include
@@ -307,14 +305,8 @@ static void resolveTimerAPI()
#endif
triedResolve = true;
#if !defined(Q_OS_WINCE)
-# if defined(_MSC_VER) && _MSC_VER >= 1700
- if (QSysInfo::WindowsVersion >= QSysInfo::WV_WINDOWS8) { // QTBUG-27266, Disable when running MSVC2012-built code on pre-Windows 8
-# else
- {
-# endif
qtimeSetEvent = (ptimeSetEvent)QSystemLibrary::resolve(QLatin1String("winmm"), "timeSetEvent");
qtimeKillEvent = (ptimeKillEvent)QSystemLibrary::resolve(QLatin1String("winmm"), "timeKillEvent");
- }
#else
qtimeSetEvent = (ptimeSetEvent)QSystemLibrary::resolve(QLatin1String("Mmtimer"), "timeSetEvent");
qtimeKillEvent = (ptimeKillEvent)QSystemLibrary::resolve(QLatin1String("Mmtimer"), "timeKillEvent");
@@ -438,6 +430,18 @@ LRESULT QT_WIN_CALLBACK qt_internal_proc(HWND hwnd, UINT message, WPARAM wp, LPA
return DefWindowProc(hwnd, message, wp, lp);
}
+static inline UINT inputTimerMask()
+{
+ UINT result = QS_TIMER | QS_INPUT | QS_RAWINPUT;
+ // QTBUG 28513, QTBUG-29097, QTBUG-29435: QS_TOUCH, QS_POINTER became part of
+ // QS_INPUT in Windows Kit 8. They should not be used when running on pre-Windows 8.
+#if defined(_MSC_VER) && _MSC_VER >= 1700
+ if (QSysInfo::WindowsVersion < QSysInfo::WV_WINDOWS8)
+ result &= ~(QS_TOUCH | QS_POINTER);
+#endif // _MSC_VER >= 1700
+ return result;
+}
+
LRESULT QT_WIN_CALLBACK qt_GetMessageHook(int code, WPARAM wp, LPARAM lp)
{
if (wp == PM_REMOVE) {
@@ -447,7 +451,8 @@ LRESULT QT_WIN_CALLBACK qt_GetMessageHook(int code, WPARAM wp, LPARAM lp)
MSG *msg = (MSG *) lp;
QEventDispatcherWin32Private *d = q->d_func();
const int localSerialNumber = d->serialNumber.load();
- if (HIWORD(GetQueueStatus(QS_TIMER | QS_INPUT | QS_RAWINPUT)) == 0) {
+ static const UINT mask = inputTimerMask();
+ if (HIWORD(GetQueueStatus(mask)) == 0) {
// no more input or timer events in the message queue, we can allow posted events to be sent normally now
if (d->sendPostedEventsWindowsTimerId != 0) {
// stop the timer to send posted events, since we now allow the WM_QT_SENDPOSTEDEVENTS message
diff --git a/src/corelib/kernel/qobjectdefs_impl.h b/src/corelib/kernel/qobjectdefs_impl.h
index 4f44d9204e6..d775ef1b657 100644
--- a/src/corelib/kernel/qobjectdefs_impl.h
+++ b/src/corelib/kernel/qobjectdefs_impl.h
@@ -496,22 +496,22 @@ namespace QtPrivate {
template struct FunctionPointer { enum {ArgumentCount = -1}; };
template struct FunctorCall;
- template
- struct FunctorCall, List, R, Function> {
+ template
+ struct FunctorCall, List, R, Function> {
static void call(Function f, void **arg) {
- f((*reinterpret_cast::Type *>(arg[I+1]))...), ApplyReturnValue(arg[0]);
+ f((*reinterpret_cast::Type *>(arg[II+1]))...), ApplyReturnValue(arg[0]);
}
};
- template
- struct FunctorCall, List, R, SlotRet (Obj::*)(SlotArgs...)> {
+ template
+ struct FunctorCall, List, R, SlotRet (Obj::*)(SlotArgs...)> {
static void call(SlotRet (Obj::*f)(SlotArgs...), Obj *o, void **arg) {
- (o->*f)((*reinterpret_cast::Type *>(arg[I+1]))...), ApplyReturnValue(arg[0]);
+ (o->*f)((*reinterpret_cast::Type *>(arg[II+1]))...), ApplyReturnValue(arg[0]);
}
};
- template
- struct FunctorCall, List, R, SlotRet (Obj::*)(SlotArgs...) const> {
+ template
+ struct FunctorCall, List, R, SlotRet (Obj::*)(SlotArgs...) const> {
static void call(SlotRet (Obj::*f)(SlotArgs...) const, Obj *o, void **arg) {
- (o->*f)((*reinterpret_cast::Type *>(arg[I+1]))...), ApplyReturnValue(arg[0]);
+ (o->*f)((*reinterpret_cast::Type *>(arg[II+1]))...), ApplyReturnValue(arg[0]);
}
};
diff --git a/src/corelib/tools/qcryptographichash.cpp b/src/corelib/tools/qcryptographichash.cpp
index 32f5f0b33a7..f4f465a6231 100644
--- a/src/corelib/tools/qcryptographichash.cpp
+++ b/src/corelib/tools/qcryptographichash.cpp
@@ -45,8 +45,12 @@
#include "../../3rdparty/sha1/sha1.cpp"
+#if defined(QT_BOOTSTRAPPED) && !defined(QT_CRYPTOGRAPHICHASH_ONLY_SHA1)
+# error "Are you sure you need the other hashing algorithms besides SHA-1?"
+#endif
+
#ifndef QT_CRYPTOGRAPHICHASH_ONLY_SHA1
-// qdoc only needs SHA-1
+// qdoc and qmake only need SHA-1
#include "../../3rdparty/md5/md5.h"
#include "../../3rdparty/md5/md5.cpp"
#include "../../3rdparty/md4/md4.h"
diff --git a/src/corelib/tools/qcryptographichash.h b/src/corelib/tools/qcryptographichash.h
index d4e75c46679..c4f7c3ab4af 100644
--- a/src/corelib/tools/qcryptographichash.h
+++ b/src/corelib/tools/qcryptographichash.h
@@ -55,9 +55,12 @@ class Q_CORE_EXPORT QCryptographicHash
{
public:
enum Algorithm {
+#ifndef QT_CRYPTOGRAPHICHASH_ONLY_SHA1
Md4,
Md5,
- Sha1,
+#endif
+ Sha1 = 2,
+#ifndef QT_CRYPTOGRAPHICHASH_ONLY_SHA1
Sha224,
Sha256,
Sha384,
@@ -66,6 +69,7 @@ public:
Sha3_256,
Sha3_384,
Sha3_512
+#endif
};
explicit QCryptographicHash(Algorithm method);
diff --git a/src/network/socket/qabstractsocket.cpp b/src/network/socket/qabstractsocket.cpp
index 71d61668408..084e0bc656f 100644
--- a/src/network/socket/qabstractsocket.cpp
+++ b/src/network/socket/qabstractsocket.cpp
@@ -208,6 +208,10 @@
This signal is emitted after an error occurred. The \a socketError
parameter describes the type of error that occurred.
+ When this signal is emitted, the socket may not be ready for a reconnect
+ attempt. In that case, attempts to reconnect should be done from the event
+ loop. For example, use a QTimer::singleShot() with 0 as the timeout.
+
QAbstractSocket::SocketError is not a registered metatype, so for queued
connections, you will have to register it with Q_DECLARE_METATYPE() and
qRegisterMetaType().
diff --git a/src/platformsupport/linuxaccessibility/atspiadaptor.cpp b/src/platformsupport/linuxaccessibility/atspiadaptor.cpp
index 6efd5085acb..d42251d4ddc 100644
--- a/src/platformsupport/linuxaccessibility/atspiadaptor.cpp
+++ b/src/platformsupport/linuxaccessibility/atspiadaptor.cpp
@@ -2230,16 +2230,21 @@ bool AtSpiAdaptor::tableInterface(QAccessibleInterface *interface, const QString
int index = message.arguments().at(0).toInt();
bool success = false;
- int row, col, rowExtents, colExtents;
- bool isSelected;
+ int row = -1;
+ int col = -1;
+ int rowExtents = -1;
+ int colExtents = -1;
+ bool isSelected = false;
int cols = interface->tableInterface()->columnCount();
- row = index/cols;
- col = index%cols;
- QAccessibleTableCellInterface *cell = interface->tableInterface()->cellAt(row, col)->tableCellInterface();
- if (cell) {
- cell->rowColumnExtents(&row, &col, &rowExtents, &colExtents, &isSelected);
- success = true;
+ if (cols > 0) {
+ row = index / cols;
+ col = index % cols;
+ QAccessibleTableCellInterface *cell = interface->tableInterface()->cellAt(row, col)->tableCellInterface();
+ if (cell) {
+ cell->rowColumnExtents(&row, &col, &rowExtents, &colExtents, &isSelected);
+ success = true;
+ }
}
QVariantList list;
diff --git a/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp b/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp
index f746207cc0e..116c6cfa7d4 100644
--- a/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp
+++ b/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp
@@ -41,7 +41,6 @@
#include "qtablegenerator.h"
-#include
#include
#include
#include
@@ -54,7 +53,8 @@
#include
#endif
-//#define DEBUG_GENERATOR
+#include // strchr, strncmp, etc.
+#include // strncasecmp
TableGenerator::TableGenerator() : m_state(NoErrors),
m_systemComposeDir(QString())
@@ -111,11 +111,9 @@ void TableGenerator::findComposeFile()
// check for the system provided compose files
if (!found && cleanState()) {
- readLocaleMappings();
+ QString table = readLocaleMappings(locale().toUpper().toUtf8());
if (cleanState()) {
-
- QString table = m_localeToTable.value(locale().toUpper());
if (table.isEmpty())
// no table mappings for the system's locale in the compose.dir
m_state = UnsupportedLocale;
@@ -174,28 +172,49 @@ QString TableGenerator::locale() const
return QLatin1String(name);
}
-void TableGenerator::readLocaleMappings()
+QString TableGenerator::readLocaleMappings(const QByteArray &locale)
{
QFile mappings(systemComposeDir() + QLatin1String("/compose.dir"));
- if (mappings.exists()) {
- mappings.open(QIODevice::ReadOnly);
- QTextStream in(&mappings);
+ QString file;
+ if (mappings.open(QIODevice::ReadOnly)) {
+ const int localeNameLength = locale.size();
+ const char * const localeData = locale.constData();
+
+ char l[1024];
// formating of compose.dir has some inconsistencies
- while (!in.atEnd()) {
- QString line = in.readLine();
- if (!line.startsWith("#") && line.size() != 0 &&
- line.at(0).isLower()) {
+ while (!mappings.atEnd()) {
+ int read = mappings.readLine(l, sizeof(l));
+ if (read <= 0)
+ break;
- QStringList pair = line.split(QRegExp(QLatin1String("\\s+")));
- QString table = pair.at(0);
- if (table.endsWith(QLatin1String(":")))
- table.remove(table.size() - 1, 1);
+ char *line = l;
+ if (*line >= 'a' && *line <= 'z') {
+ // file name
+ while (*line && *line != ':' && *line != ' ' && *line != '\t')
+ ++line;
+ if (!*line)
+ continue;
+ const char * const composeFileNameEnd = line;
+ *line = '\0';
+ ++line;
- m_localeToTable.insert(pair.at(1).toUpper(), table);
+ // locale name
+ while (*line && (*line == ' ' || *line == '\t'))
+ ++line;
+ const char * const lc = line;
+ while (*line && *line != ' ' && *line != '\t' && *line != '\n')
+ ++line;
+ *line = '\0';
+
+ if (localeNameLength == (line - lc) && !strncasecmp(lc, localeData, line - lc)) {
+ file = QString::fromUtf8(l, composeFileNameEnd - l);
+ break;
+ }
}
}
mappings.close();
}
+ return file;
}
bool TableGenerator::processFile(QString composeFileName)
@@ -215,7 +234,7 @@ TableGenerator::~TableGenerator()
{
}
-QList TableGenerator::composeTable() const
+QVector TableGenerator::composeTable() const
{
return m_composeTable;
}
@@ -225,15 +244,14 @@ void TableGenerator::parseComposeFile(QFile *composeFile)
#ifdef DEBUG_GENERATOR
qDebug() << "TableGenerator::parseComposeFile: " << composeFile->fileName();
#endif
- QTextStream in(composeFile);
- while (!in.atEnd()) {
- QString line = in.readLine();
- if (line.startsWith(QLatin1String("<"))) {
+ char line[1024];
+ while (!composeFile->atEnd()) {
+ composeFile->readLine(line, sizeof(line));
+ if (*line == '<')
parseKeySequence(line);
- } else if (line.startsWith(QLatin1String("include"))) {
- parseIncludeInstruction(line);
- }
+ else if (!strncmp(line, "include", 7))
+ parseIncludeInstruction(QString::fromUtf8(line));
}
composeFile->close();
@@ -290,79 +308,103 @@ ushort TableGenerator::keysymToUtf8(quint32 sym)
return QString::fromUtf8(chars).at(0).unicode();
}
-quint32 TableGenerator::stringToKeysym(QString keysymName)
+static inline int fromBase8(const char *s, const char *end)
{
- quint32 keysym;
- QByteArray keysymArray = keysymName.toLatin1();
- const char *name = keysymArray.constData();
-
- if ((keysym = xkb_keysym_from_name(name, (xkb_keysym_flags)0)) == XKB_KEY_NoSymbol)
- qWarning() << QString("Qt Warning - invalid keysym: %1").arg(keysymName);
-
- return keysym;
+ int result = 0;
+ while (*s && s != end) {
+ if (*s <= '0' && *s >= '7')
+ return 0;
+ result *= 8;
+ result += *s - '0';
+ ++s;
+ }
+ return result;
}
-void TableGenerator::parseKeySequence(QString line)
+static inline int fromBase16(const char *s, const char *end)
+{
+ int result = 0;
+ while (*s && s != end) {
+ result *= 16;
+ if (*s >= '0' && *s <= '9')
+ result += *s - '0';
+ else if (*s >= 'a' && *s <= 'f')
+ result += *s - 'a' + 10;
+ else if (*s >= 'A' && *s <= 'F')
+ result += *s - 'A' + 10;
+ else
+ return 0;
+ ++s;
+ }
+ return result;
+}
+
+void TableGenerator::parseKeySequence(char *line)
{
// we are interested in the lines with the following format:
// : "♬" U266c # BEAMED SIXTEENTH NOTE
- int keysEnd = line.indexOf(QLatin1String(":"));
- QString keys = line.left(keysEnd).trimmed();
-
- // find the key sequence
- QString regexp = QStringLiteral("<[^>]+>");
- QRegularExpression reg(regexp);
- QRegularExpressionMatchIterator i = reg.globalMatch(keys);
- QStringList keyList;
- while (i.hasNext()) {
- QRegularExpressionMatch match = i.next();
- QString word = match.captured(0);
- keyList << word;
- }
+ char *keysEnd = strchr(line, ':');
+ if (!keysEnd)
+ return;
QComposeTableElement elem;
- QString quote = QStringLiteral("\"");
// find the composed value - strings may be direct text encoded in the locale
// for which the compose file is to be used, or an escaped octal or hexadecimal
// character code. Octal codes are specified as "\123" and hexadecimal codes as "\0x123a".
- int composeValueIndex = line.indexOf(quote, keysEnd) + 1;
- const QChar valueType(line.at(composeValueIndex));
+ char *composeValue = strchr(keysEnd, '"');
+ if (!composeValue)
+ return;
+ ++composeValue;
- if (valueType == '\\' && line.at(composeValueIndex + 1).isDigit()) {
+ char *composeValueEnd = strchr(composeValue, '"');
+ if (!composeValueEnd)
+ return;
+
+ if (*composeValue == '\\' && composeValue[1] >= '0' && composeValue[1] <= '9') {
// handle octal and hex code values
- QChar detectBase(line.at(composeValueIndex + 2));
- QString codeValue = line.mid(composeValueIndex + 1, line.lastIndexOf(quote) - composeValueIndex - 1);
+ char detectBase = composeValue[2];
if (detectBase == 'x') {
// hexadecimal character code
- elem.value = keysymToUtf8(codeValue.toUInt(0, 16));
+ elem.value = keysymToUtf8(fromBase16(composeValue + 3, composeValueEnd));
} else {
// octal character code
- QString hexStr = QString::number(codeValue.toUInt(0, 8), 16);
- elem.value = keysymToUtf8(hexStr.toUInt(0, 16));
+ elem.value = keysymToUtf8(fromBase8(composeValue + 1, composeValueEnd));
}
} else {
// handle direct text encoded in the locale
- elem.value = valueType.unicode();
+ if (*composeValue == '\\')
+ ++composeValue;
+ elem.value = QString::fromUtf8(composeValue).at(0).unicode();
+ ++composeValue;
}
+#ifdef DEBUG_GENERATOR
// find the comment
- int commnetIndex = line.lastIndexOf(quote) + 1;
- elem.comment = line.mid(commnetIndex).trimmed();
+ elem.comment = QString::fromUtf8(composeValueEnd + 1).trimmed();
+#endif
+
+ // find the key sequence and convert to X11 keysym
+ char *k = line;
+ const char *kend = keysEnd;
- // Convert to X11 keysym
- int count = keyList.length();
for (int i = 0; i < QT_KEYSEQUENCE_MAX_LEN; i++) {
- if (i < count) {
- QString keysym = keyList.at(i);
- keysym.remove(keysym.length() - 1, 1);
- keysym.remove(0, 1);
-
- if (keysym == QLatin1String("dead_inverted_breve"))
- keysym = QStringLiteral("dead_invertedbreve");
- else if (keysym == QLatin1String("dead_double_grave"))
- keysym = QStringLiteral("dead_doublegrave");
-
- elem.keys[i] = stringToKeysym(keysym);
+ // find the next pair of angle brackets and get the contents within
+ while (k < kend && *k != '<')
+ ++k;
+ char *sym = ++k;
+ while (k < kend && *k != '>')
+ ++k;
+ *k = '\0';
+ if (k < kend) {
+ elem.keys[i] = xkb_keysym_from_name(sym, (xkb_keysym_flags)0);
+ if (elem.keys[i] == XKB_KEY_NoSymbol) {
+ if (!strcmp(sym, "dead_inverted_breve"))
+ elem.keys[i] = XKB_KEY_dead_invertedbreve;
+ else if (!strcmp(sym, "dead_double_grave"))
+ elem.keys[i] = XKB_KEY_dead_doublegrave;
+ else
+ qWarning() << QString("Qt Warning - invalid keysym: %1").arg(sym);
+ }
} else {
elem.keys[i] = 0;
}
@@ -372,6 +414,7 @@ void TableGenerator::parseKeySequence(QString line)
void TableGenerator::printComposeTable() const
{
+#ifdef DEBUG_GENERATOR
if (composeTable().isEmpty())
return;
@@ -393,8 +436,8 @@ void TableGenerator::printComposeTable() const
.arg(comma)
.arg(elem.comment));
}
-
qDebug() << "output: \n" << output;
+#endif
}
void TableGenerator::orderComposeTable()
diff --git a/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.h b/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.h
index cc1db204322..aa65b7b895b 100644
--- a/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.h
+++ b/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.h
@@ -42,19 +42,29 @@
#ifndef QTABLEGENERATOR_H
#define QTABLEGENERATOR_H
-#include
+#include
#include
#include
#include
#define QT_KEYSEQUENCE_MAX_LEN 6
+//#define DEBUG_GENERATOR
+
struct QComposeTableElement {
uint keys[QT_KEYSEQUENCE_MAX_LEN];
uint value;
+#ifdef DEBUG_GENERATOR
QString comment;
+#endif
};
+#ifndef DEBUG_GENERATOR
+QT_BEGIN_NAMESPACE
+Q_DECLARE_TYPEINFO(QComposeTableElement, Q_PRIMITIVE_TYPE);
+QT_END_NAMESPACE
+#endif
+
class Compare
{
public:
@@ -97,12 +107,12 @@ public:
void printComposeTable() const;
void orderComposeTable();
- QList composeTable() const;
+ QVector composeTable() const;
TableState tableState() const { return m_state; }
protected:
bool processFile(QString composeFileName);
- void parseKeySequence(QString line);
+ void parseKeySequence(char *line);
void parseIncludeInstruction(QString line);
void findComposeFile();
@@ -110,16 +120,14 @@ protected:
QString systemComposeDir();
ushort keysymToUtf8(quint32 sym);
- quint32 stringToKeysym(QString keysymName);
- void readLocaleMappings();
+ QString readLocaleMappings(const QByteArray &locale);
void initPossibleLocations();
bool cleanState() const { return ((m_state & NoErrors) == NoErrors); }
QString locale() const;
private:
- QList m_composeTable;
- QMap m_localeToTable;
+ QVector m_composeTable;
TableState m_state;
QString m_systemComposeDir;
QList m_possibleLocations;
diff --git a/src/plugins/platforminputcontexts/compose/qcomposeplatforminputcontext.cpp b/src/plugins/platforminputcontexts/compose/qcomposeplatforminputcontext.cpp
index 433c9eec37a..611b9fdd9bb 100644
--- a/src/plugins/platforminputcontexts/compose/qcomposeplatforminputcontext.cpp
+++ b/src/plugins/platforminputcontexts/compose/qcomposeplatforminputcontext.cpp
@@ -169,11 +169,11 @@ static bool isDuplicate(const QComposeTableElement &lhs, const QComposeTableElem
bool QComposeInputContext::checkComposeTable()
{
- QList::iterator it =
- qLowerBound(m_composeTable.begin(), m_composeTable.end(), m_composeBuffer, Compare());
+ QVector::const_iterator it =
+ qLowerBound(m_composeTable.constBegin(), m_composeTable.constEnd(), m_composeBuffer, Compare());
// prevent dereferencing an 'end' iterator, which would result in a crash
- if (it == m_composeTable.end())
+ if (it == m_composeTable.constEnd())
it -= 1;
QComposeTableElement elem = *it;
diff --git a/src/plugins/platforminputcontexts/compose/qcomposeplatforminputcontext.h b/src/plugins/platforminputcontexts/compose/qcomposeplatforminputcontext.h
index 1ced2f8ded3..def63486a76 100644
--- a/src/plugins/platforminputcontexts/compose/qcomposeplatforminputcontext.h
+++ b/src/plugins/platforminputcontexts/compose/qcomposeplatforminputcontext.h
@@ -75,7 +75,7 @@ protected:
private:
QObject *m_focusObject;
- QList m_composeTable;
+ QVector m_composeTable;
uint m_composeBuffer[QT_KEYSEQUENCE_MAX_LEN + 1];
TableGenerator::TableState m_tableState;
};
diff --git a/src/plugins/platforms/cocoa/qcocoaaccessibility.mm b/src/plugins/platforms/cocoa/qcocoaaccessibility.mm
index 5649f3ad730..e135f36e786 100644
--- a/src/plugins/platforms/cocoa/qcocoaaccessibility.mm
+++ b/src/plugins/platforms/cocoa/qcocoaaccessibility.mm
@@ -231,8 +231,7 @@ NSArray *unignoredChildren(id parentObject, QAccessibleInterface *interface)
NSMutableArray *kids = [NSMutableArray arrayWithCapacity:numKids];
for (int i = 0; i < numKids; ++i) {
QAccessibleInterface *child = interface->child(i);
- Q_ASSERT(child);
- if (child->state().invalid || child->state().invisible)
+ if (!child || !child->isValid() || child->state().invalid || child->state().invisible)
continue;
QAccessible::Id childId = QAccessible::uniqueId(child);
diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm
index fcebb7e0dc5..20f767e2403 100644
--- a/src/plugins/platforms/cocoa/qcocoawindow.mm
+++ b/src/plugins/platforms/cocoa/qcocoawindow.mm
@@ -489,6 +489,9 @@ void QCocoaWindow::setWindowFlags(Qt::WindowFlags flags)
[m_nsWindow setStyleMask:styleMask];
[m_nsWindow setLevel:level];
setWindowShadow(flags);
+ if (!(styleMask & NSBorderlessWindowMask)) {
+ setWindowTitle(window()->title());
+ }
}
m_windowFlags = flags;
diff --git a/src/plugins/platforms/cocoa/qnsview.mm b/src/plugins/platforms/cocoa/qnsview.mm
index 3063ce452e9..e529e445ad7 100644
--- a/src/plugins/platforms/cocoa/qnsview.mm
+++ b/src/plugins/platforms/cocoa/qnsview.mm
@@ -1034,7 +1034,7 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent)
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
if ([theEvent respondsToSelector:@selector(scrollingDeltaX)]) {
NSEventPhase phase = [theEvent phase];
- if (phase == NSEventPhaseBegan) {
+ if (phase == NSEventPhaseBegan || phase == NSEventPhaseNone) {
currentWheelModifiers = [QNSView convertKeyModifiers:[theEvent modifierFlags]];
}
@@ -1056,7 +1056,7 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent)
QWindowSystemInterface::handleWheelEvent(m_window, qt_timestamp, qt_windowPoint, qt_screenPoint, pixelDelta, angleDelta, currentWheelModifiers, ph);
- if (phase == NSEventPhaseEnded || phase == NSEventPhaseCancelled) {
+ if (phase == NSEventPhaseEnded || phase == NSEventPhaseCancelled || phase == NSEventPhaseNone) {
currentWheelModifiers = Qt::NoModifier;
}
} else
@@ -1142,7 +1142,7 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent)
if (m_sendKeyEvent && m_composingText.isEmpty())
QWindowSystemInterface::handleExtendedKeyEvent(m_window, timestamp, QEvent::Type(eventType), keyCode, modifiers,
- nativeScanCode, nativeVirtualKey, nativeModifiers, text);
+ nativeScanCode, nativeVirtualKey, nativeModifiers, text, [nsevent isARepeat]);
m_sendKeyEvent = false;
}
diff --git a/src/plugins/platforms/windows/qtwindowsglobal.h b/src/plugins/platforms/windows/qtwindowsglobal.h
index dcd3db2d470..64bf1d71cae 100644
--- a/src/plugins/platforms/windows/qtwindowsglobal.h
+++ b/src/plugins/platforms/windows/qtwindowsglobal.h
@@ -89,6 +89,7 @@ enum WindowsEventType // Simplify event types
CursorEvent = MouseEventFlag + 3,
TouchEvent = TouchEventFlag + 1,
NonClientMouseEvent = NonClientEventFlag + MouseEventFlag + 1,
+ NonClientHitTest = NonClientEventFlag + 2,
KeyEvent = KeyEventFlag + 1,
KeyDownEvent = KeyEventFlag + KeyDownEventFlag + 1,
InputMethodKeyEvent = InputMethodEventFlag + KeyEventFlag + 1,
@@ -143,6 +144,10 @@ inline QtWindows::WindowsEventType windowsEventType(UINT message, WPARAM wParamI
return QtWindows::ResizeEvent;
case WM_NCCALCSIZE:
return QtWindows::CalculateSize;
+#ifndef Q_OS_WINCE
+ case WM_NCHITTEST:
+ return QtWindows::NonClientHitTest;
+#endif // !Q_OS_WINCE
case WM_GETMINMAXINFO:
return QtWindows::QuerySizeHints;
case WM_KEYDOWN: // keyboard event
diff --git a/src/plugins/platforms/windows/qwindowscontext.cpp b/src/plugins/platforms/windows/qwindowscontext.cpp
index de0a583e58b..132b3684e96 100644
--- a/src/plugins/platforms/windows/qwindowscontext.cpp
+++ b/src/plugins/platforms/windows/qwindowscontext.cpp
@@ -839,7 +839,9 @@ bool QWindowsContext::windowsProc(HWND hwnd, UINT message,
return true;// maybe available on some SDKs revisit WM_NCCALCSIZE
case QtWindows::CalculateSize:
return QWindowsGeometryHint::handleCalculateSize(platformWindow->customMargins(), msg, result);
-#endif
+ case QtWindows::NonClientHitTest:
+ return platformWindow->handleNonClientHitTest(QPoint(msg.pt.x, msg.pt.y), result);
+#endif // !Q_OS_WINCE
case QtWindows::ExposeEvent:
return platformWindow->handleWmPaint(hwnd, message, wParam, lParam);
case QtWindows::NonClientMouseEvent:
diff --git a/src/plugins/platforms/windows/qwindowswindow.cpp b/src/plugins/platforms/windows/qwindowswindow.cpp
index e7e964a128e..8ec10294a2e 100644
--- a/src/plugins/platforms/windows/qwindowswindow.cpp
+++ b/src/plugins/platforms/windows/qwindowswindow.cpp
@@ -1796,6 +1796,47 @@ void QWindowsWindow::getSizeHints(MINMAXINFO *mmi) const
if (QWindowsContext::verboseWindows)
qDebug() << __FUNCTION__ << window() << *mmi;
}
+
+bool QWindowsWindow::handleNonClientHitTest(const QPoint &globalPos, LRESULT *result) const
+{
+ // QTBUG-32663, suppress resize cursor for fixed size windows.
+ const QWindow *w = window();
+ if (!w->isTopLevel() // Task 105852, minimized windows need to respond to user input.
+ || (m_windowState != Qt::WindowNoState && m_windowState != Qt::WindowActive)
+ || (m_data.flags & Qt::FramelessWindowHint)) {
+ return false;
+ }
+ const QSize minimumSize = w->minimumSize();
+ if (minimumSize.isEmpty())
+ return false;
+ const QSize maximumSize = w->maximumSize();
+ const bool fixedWidth = minimumSize.width() == maximumSize.width();
+ const bool fixedHeight = minimumSize.height() == maximumSize.height();
+ if (!fixedWidth && !fixedHeight)
+ return false;
+ const QPoint localPos = w->mapFromGlobal(globalPos);
+ const QSize size = w->size();
+ if (fixedHeight) {
+ if (localPos.y() >= size.height()) {
+ *result = HTBORDER; // Unspecified border, no resize cursor.
+ return true;
+ }
+ if (localPos.y() < 0) {
+ const QMargins margins = frameMargins();
+ const int topResizeBarPos = margins.left() - margins.top();
+ if (localPos.y() < topResizeBarPos) {
+ *result = HTCAPTION; // Extend caption over top resize bar, let's user move the window.
+ return true;
+ }
+ }
+ }
+ if (fixedWidth && (localPos.x() < 0 || localPos.x() >= size.width())) {
+ *result = HTBORDER; // Unspecified border, no resize cursor.
+ return true;
+ }
+ return false;
+}
+
#endif // !Q_OS_WINCE
#ifndef QT_NO_CURSOR
diff --git a/src/plugins/platforms/windows/qwindowswindow.h b/src/plugins/platforms/windows/qwindowswindow.h
index 996542f92a2..f7d142fc36b 100644
--- a/src/plugins/platforms/windows/qwindowswindow.h
+++ b/src/plugins/platforms/windows/qwindowswindow.h
@@ -234,7 +234,8 @@ public:
void releaseDC();
#ifndef Q_OS_WINCE // maybe available on some SDKs revisit WM_GETMINMAXINFO
void getSizeHints(MINMAXINFO *mmi) const;
-#endif
+ bool handleNonClientHitTest(const QPoint &globalPos, LRESULT *result) const;
+#endif // !Q_OS_WINCE
#ifndef QT_NO_CURSOR
QWindowsWindowCursor cursor() const { return m_cursor; }
diff --git a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
index ee1fe445308..b144d953a77 100644
--- a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
+++ b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
@@ -419,8 +419,6 @@ void QXcbConnection::xi2HandleEvent(xcb_ge_event_t *event)
touchPoint.state = Qt::TouchPointMoved;
dev->pointPressedPosition[touchPoint.id] = QPointF(x, y);
}
- else
- touchPoint.state = Qt::TouchPointStationary;
break;
case XI_TouchEnd:
touchPoint.state = Qt::TouchPointReleased;
@@ -442,9 +440,13 @@ void QXcbConnection::xi2HandleEvent(xcb_ge_event_t *event)
" area " << touchPoint.area << " pressure " << touchPoint.pressure;
#endif
QWindowSystemInterface::handleTouchEvent(platformWindow->window(), xiEvent->time, dev->qtTouchDevice, m_touchPoints.values());
- // If a touchpoint was released, we can forget it, because the ID won't be reused.
if (touchPoint.state == Qt::TouchPointReleased)
+ // If a touchpoint was released, we can forget it, because the ID won't be reused.
m_touchPoints.remove(touchPoint.id);
+ else
+ // Make sure that we don't send TouchPointPressed/Moved in more than one QTouchEvent
+ // with this touch point if the next XI2 event is about a different touch point.
+ touchPoint.state = Qt::TouchPointStationary;
}
}
#endif // XCB_USE_XINPUT22
diff --git a/src/src.pro b/src/src.pro
index 6815fe4a751..c6ae533cffc 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -143,5 +143,9 @@ nacl: SUBDIRS -= src_network src_testlib
android:!android-no-sdk: SUBDIRS += src_android
+TR_EXCLUDE = \
+ src_tools_bootstrap src_tools_moc src_tools_rcc src_tools_uic \
+ src_tools_bootstrap_dbus src_tools_qdbusxml2cpp src_tools_qdbuscpp2xml
+
sub-tools.depends = $$TOOLS
-QMAKE_EXTRA_TARGETS = sub-tools
+QMAKE_EXTRA_TARGETS = sub-tools
\ No newline at end of file
diff --git a/src/testlib/qtestlog.cpp b/src/testlib/qtestlog.cpp
index 99c7ec749db..d094372d0bd 100644
--- a/src/testlib/qtestlog.cpp
+++ b/src/testlib/qtestlog.cpp
@@ -76,14 +76,6 @@ static void saveCoverageTool(const char * appname, bool testfailed, bool install
#endif
}
-//
-// declare deprecated API from qlogging.h locally
-// (we can't use qInstallMessageHandler because it would break
-// tests that (still) rely on qInstallMsgHandler.)
-//
-typedef void (*QtMsgHandler)(QtMsgType, const char *);
-Q_CORE_EXPORT QtMsgHandler qInstallMsgHandler(QtMsgHandler);
-
namespace QTest {
int fails = 0;
@@ -212,7 +204,7 @@ namespace QTest {
static int maxWarnings = 2002;
static bool installedTestCoverage = true;
- static QtMsgHandler oldMessageHandler;
+ static QtMessageHandler oldMessageHandler;
static bool handleIgnoredMessage(QtMsgType type, const char *msg)
{
@@ -238,23 +230,17 @@ namespace QTest {
return false;
}
-// don't warn about qInstallMsgHandler
-#if defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 406) && !defined(Q_CC_INTEL)
-# pragma GCC diagnostic push
-# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#endif
-
- static void messageHandler(QtMsgType type, const char *msg)
+ static void messageHandler(QtMsgType type, const QMessageLogContext & /*context*/, const QString &message)
{
static QBasicAtomicInt counter = Q_BASIC_ATOMIC_INITIALIZER(QTest::maxWarnings);
- if (!msg || QTest::TestLoggers::loggerCount() == 0) {
+ if (QTest::TestLoggers::loggerCount() == 0) {
// if this goes wrong, something is seriously broken.
- qInstallMsgHandler(oldMessageHandler);
- QTEST_ASSERT(msg);
+ qInstallMessageHandler(oldMessageHandler);
QTEST_ASSERT(QTest::TestLoggers::loggerCount() != 0);
}
+ QByteArray msg = message.toLocal8Bit();
if (handleIgnoredMessage(type, msg))
// the message is expected, so just swallow it.
return;
@@ -293,10 +279,6 @@ namespace QTest {
break;
}
}
-
-#if defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 406) && !defined(Q_CC_INTEL)
-# pragma GCC diagnostic pop
-#endif
}
void QTestLog::enterTestFunction(const char* function)
@@ -399,31 +381,21 @@ void QTestLog::addBenchmarkResult(const QBenchmarkResult &result)
QTest::TestLoggers::addBenchmarkResult(result);
}
-// don't warn about qInstallMsgHandler
-#if defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 406) && !defined(Q_CC_INTEL)
-# pragma GCC diagnostic push
-# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#endif
-
void QTestLog::startLogging()
{
QTest::TestLoggers::startLogging();
- QTest::oldMessageHandler = qInstallMsgHandler(QTest::messageHandler);
+ QTest::oldMessageHandler = qInstallMessageHandler(QTest::messageHandler);
}
void QTestLog::stopLogging()
{
- qInstallMsgHandler(QTest::oldMessageHandler);
+ qInstallMessageHandler(QTest::oldMessageHandler);
QTest::TestLoggers::stopLogging();
QTest::TestLoggers::destroyLoggers();
QTest::loggerUsingStdout = false;
saveCoverageTool(QTestResult::currentAppname(), failCount() != 0, QTestLog::installedTestCoverage());
}
-#if defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 406) && !defined(Q_CC_INTEL)
-# pragma GCC diagnostic pop
-#endif
-
void QTestLog::addLogger(LogMode mode, const char *filename)
{
if (filename && strcmp(filename, "-") == 0)
diff --git a/src/testlib/qtestmouse.h b/src/testlib/qtestmouse.h
index 4d70aff27ea..8efa80789c1 100644
--- a/src/testlib/qtestmouse.h
+++ b/src/testlib/qtestmouse.h
@@ -61,6 +61,8 @@
#include
#endif
+#include
+
QT_BEGIN_NAMESPACE
Q_GUI_EXPORT void qt_handleMouseEvent(QWindow *w, const QPointF & local, const QPointF & global, Qt::MouseButtons b, Qt::KeyboardModifiers mods = Qt::NoModifier);
@@ -84,8 +86,10 @@ namespace QTest
QTEST_ASSERT(window);
extern int Q_TESTLIB_EXPORT defaultMouseDelay();
- if (!window->geometry().contains(pos))
+ // pos is in window local coordinates
+ if (window->geometry().width() <= pos.x() || window->geometry().height() <= pos.y()) {
QTest::qWarn("Mouse event occurs outside of target window.");
+ }
static Qt::MouseButton lastButton = Qt::NoButton;
diff --git a/src/tools/moc/main.cpp b/src/tools/moc/main.cpp
index 749cca0911b..431c8dd46c8 100644
--- a/src/tools/moc/main.cpp
+++ b/src/tools/moc/main.cpp
@@ -42,7 +42,7 @@
#include "preprocessor.h"
#include "moc.h"
#include "outputrevision.h"
-#include
+
#include
#include
#include
diff --git a/src/tools/moc/moc.pro b/src/tools/moc/moc.pro
index d56c2805ebf..d39749a318c 100644
--- a/src/tools/moc/moc.pro
+++ b/src/tools/moc/moc.pro
@@ -3,8 +3,6 @@ CONFIG += force_bootstrap
DEFINES += QT_MOC QT_NO_CAST_FROM_ASCII QT_NO_CAST_FROM_BYTEARRAY QT_NO_COMPRESS
-INCLUDEPATH += $$QT_BUILD_TREE/src/corelib/global
-
include(moc.pri)
HEADERS += qdatetime_p.h
SOURCES += main.cpp
diff --git a/src/tools/qdoc/doc/qtgui-qdocconf.qdoc b/src/tools/qdoc/doc/qtgui-qdocconf.qdoc
new file mode 100644
index 00000000000..7e6da0feb5e
--- /dev/null
+++ b/src/tools/qdoc/doc/qtgui-qdocconf.qdoc
@@ -0,0 +1,292 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: http://www.gnu.org/copyleft/fdl.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+
+\page qtgui-qdocconf.html
+\title qtgui.qdocconf with Comments
+
+\brief A walkthrough of a typical qdocconf file
+
+This document goes through a typical Qt 5 qdocconf file. The contents is taken from
+Qt GUI's \e qtgui.qdocconf file.
+
+Below you will find the full contents of qtgui.qdocconf. The subsequent section will discuss
+every statement in the qdocconf file.
+
+\code
+ include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf)
+
+ project = QtGui
+ description = Qt GUI Reference Documentation
+ url = http://qt-project.org/doc/qt-$QT_VER/qtgui
+ version = $QT_VERSION
+
+ examplesinstallpath = gui
+
+ qhp.projects = QtGui
+
+ qhp.QtGui.file = qtgui.qhp
+ qhp.QtGui.namespace = org.qt-project.qtgui.$QT_VERSION_TAG
+ qhp.QtGui.virtualFolder = qtgui
+ qhp.QtGui.indexTitle = Qt GUI
+ qhp.QtGui.indexRoot =
+
+ qhp.QtGui.filterAttributes = qtgui $QT_VERSION qtrefdoc
+ qhp.QtGui.customFilters.Qt.name = Qtgui $QT_VERSION
+ qhp.QtGui.customFilters.Qt.filterAttributes = qtgui $QT_VERSION
+
+ qhp.QtGui.subprojects = classes
+ qhp.QtGui.subprojects.classes.title = C++ Classes
+ qhp.QtGui.subprojects.classes.indexTitle = Qt GUI C++ Classes
+ qhp.QtGui.subprojects.classes.selectors = class fake:headerfile
+ qhp.QtGui.subprojects.classes.sortPages = true
+
+ tagfile = ../../../doc/qtgui/qtgui.tags
+
+ depends += \
+ qtcore \
+ qtnetwork \
+ qtopengl \
+ qtsvg \
+ qtqml \
+ qtquick \
+ qtwidgets \
+ qtdoc
+
+ headerdirs += ..
+
+ sourcedirs += .. \
+ ../../../examples/gui/doc/src
+
+ exampledirs += ../../../examples/gui \
+ snippets
+
+ imagedirs += images \
+ ../../../examples/gui/doc/images \
+ ../../../doc/src/images \
+\endcode
+
+\title Qtgui.qdocconf with notes
+
+\code
+ include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf)
+\endcode
+
+QDoc inherits the default templates, macros, and settings from the directory
+specified from the \c $QT_INSTALL_DOCS variable. \c qmake prints the value of
+the variable.
+\code
+ qmake -query
+\endcode
+
+\sa include
+
+\code
+ project = QtGui
+\endcode
+
+The \c project variable sets the name of the QDoc build. This name is also
+used to form the index file, which, in this case, will be \e qtgui.index. The
+name of the index file doesn't adopt the uppercase letters of the project name.
+
+\sa project
+
+\code
+ description = Qt GUI Reference Documentation
+\endcode
+
+A short description of the project concerned.
+
+\code
+ url = http://qt-project.org/doc/qt-$QT_VER/qtgui
+\endcode
+
+The \c url variable holds the base url of the project.
+
+The URL is stored in the generated index file for the project.
+QDoc will use this as the base URL when constructing links
+to content listed in the index.
+
+\note QDoc omits this value when the -installdir argument
+is specified when running QDoc.
+
+\keyword examplesinstallpath
+
+\code
+ examplesinstallpath = gui
+\endcode
+
+This \e examplesinstallpath variable indicates that the examples will be installed
+in the \e gui directory under the parent examples directory (for Qt, this is
+$QT_INSTALL_EXAMPLES).
+
+\note The examplepath variable has to match the example directory specified in exampledirs.
+\sa exampledirs
+
+\code
+ qhp.projects = QtGui
+ qhp.QtGui.file = qtgui.qhp
+\endcode
+
+The following parameters are for creating a QHP file (\e .qhp). The qhelpgenerator
+program can convert the QHP file into a QCH file (\e .qch), which can be opened in
+Qt Assistant or Qt Creator.
+
+\code
+ qhp.QtGui.namespace = org.qt-project.qtgui.$QT_VERSION_TAG
+\endcode
+
+A unique identifier which enables QHelpEngine to retrieve the helpfile
+from a given link. This namespace is also used as a base url for links
+to the helpfile.
+
+\code
+ qhp.QtGui.virtualFolder = qtgui
+\endcode
+
+Virtual folders group documentation together into a single location. A
+virtual folder will become the root directory of all files referenced in a
+compressed help file.
+
+When two manuals are located in the same virtual folder, it is possible to refer
+ to sections of the other manual using relative paths.
+The virtual folder tag is mandatory and the folder must not contain any '/'.
+
+\code
+ qhp.QtGui.indexTitle = Qt GUI the title of the page that has the contents
+\endcode
+
+This is the title of the page that has the contents.
+
+\code
+ qhp.QtGui.indexRoot = to be checked
+\endcode
+
+Specifies the title of the root (namespace) page to generate the documentation for.
+Typically defined as an empty string.
+
+\code
+ qhp.QtGui.filterAttributes = qtgui $QT_VERSION qtrefdoc
+ qhp.QtGui.customFilters.Qt.name = QtGui $QT_VERSION
+ qhp.QtGui.customFilters.Qt.filterAttributes = qtgui $QT_VERSION
+\endcode
+
+The documentation set (one per QDoc project) can have any number of filter
+attributes assigned to it. A filter attribute is an ordinary string which
+can be freely chosen. Additionally, custom filters that reference above
+attributes can be defined. Qt Assistant will display the name of the custom
+filter in its \gui{Filtered by} drop-down list. Only the documentation sets
+that have their filter attributes match the attributes of the selected
+custom filter will be shown.
+
+\code
+ qhp.QtGui.subprojects = classes
+ qhp.QtGui.subprojects.classes.title = C++ Classes
+ qhp.QtGui.subprojects.classes.indexTitle = Qt GUI C++ Classes
+\endcode
+The subprojects specify the sections that are displayed in the table of contents
+for this project. In this example, the subproject, which is displayed in
+the Assistant's sidebar, is named "C++ Classes" and its index is the page
+titled "QT GUI C++ Classes".
+
+\code
+ qhp.QtGui.subprojects.classes.selectors = class fake:headerfile
+\endcode
+
+Lists all headerfiles.
+
+A ‘fake’ type specifies a generic documentation node, and is followed by
+a c\ : and a \e subtype specifier.
+
+Possible values:
+\code
+ example
+ headerfile
+ file
+ group
+ module
+ page
+ externalpage
+ qmlclass
+ qmlpropertygroup
+ qmlbasictype
+\endcode
+
+tagfile = ../../../doc/qtgui/qtgui.tags
+This specifies the Doxygen tag file that needs to be written when the html is generated
+by QDoc.
+
+\code
+depends += \
+ qtcore \
+ qtnetwork \
+ qtopengl \
+ qtsvg \
+ qtqml \
+ qtquick \
+ qtwidgets \
+ qtdoc
+\endcode
+
+Specifies the modules QDoc needs to load for generating output for Qt GUI.
+QDoc loads the index files for all modules listed in the depends statement in
+order to enable linking to pages in these modules.
+
+\code
+ headerdirs += ..
+\endcode
+
+Add the parent directory to the list of directories containing the header files
+associated with the \e .cpp source files.
+
+\code
+ sourcedirs += .. \
+ ../../../examples/gui/doc/src
+\endcode
+
+Add the specified directories to the list of directories containing the \e .cpp and
+\e .qdoc files used in the documentation.
+
+\code
+ exampledirs += ../../../examples/gui \
+ snippets
+\endcode
+\sa examplesinstallpath
+
+Add the two directories specified to the list of directories containing the source
+code of the example files.
+
+\code
+ imagedirs += images \
+ ../../../examples/gui/doc/images \
+ ../../../doc/src/images \
+\endcode
+
+Add the directories specified above to the list of directories where the images
+can be found.
+*/
diff --git a/src/tools/uic/main.cpp b/src/tools/uic/main.cpp
index baafb8ec927..a25a40052e7 100644
--- a/src/tools/uic/main.cpp
+++ b/src/tools/uic/main.cpp
@@ -42,7 +42,7 @@
#include "uic.h"
#include "option.h"
#include "driver.h"
-#include "../../corelib/global/qconfig.cpp"
+
#include
#include
#include
diff --git a/src/widgets/itemviews/qheaderview.cpp b/src/widgets/itemviews/qheaderview.cpp
index e0034d12987..75cd07bb80c 100644
--- a/src/widgets/itemviews/qheaderview.cpp
+++ b/src/widgets/itemviews/qheaderview.cpp
@@ -2711,11 +2711,13 @@ void QHeaderView::paintSection(QPainter *painter, const QRect &rect, int logical
// the section position
int visual = visualIndex(logicalIndex);
Q_ASSERT(visual != -1);
- if (count() == 1)
+ bool first = d->isFirstVisibleSection(visual);
+ bool last = d->isLastVisibleSection(visual);
+ if (first && last)
opt.position = QStyleOptionHeader::OnlyOneSection;
- else if (visual == 0)
+ else if (first)
opt.position = QStyleOptionHeader::Beginning;
- else if (visual == count() - 1)
+ else if (last)
opt.position = QStyleOptionHeader::End;
else
opt.position = QStyleOptionHeader::Middle;
@@ -3138,6 +3140,22 @@ bool QHeaderViewPrivate::isSectionSelected(int section) const
return s;
}
+bool QHeaderViewPrivate::isFirstVisibleSection(int section) const
+{
+ if (sectionStartposRecalc)
+ recalcSectionStartPos();
+ const SectionItem &item = sectionItems.at(section);
+ return item.size > 0 && item.calculated_startpos == 0;
+}
+
+bool QHeaderViewPrivate::isLastVisibleSection(int section) const
+{
+ if (sectionStartposRecalc)
+ recalcSectionStartPos();
+ const SectionItem &item = sectionItems.at(section);
+ return item.size > 0 && item.calculatedEndPos() == length;
+}
+
/*!
\internal
Returns the last visible (ie. not hidden) visual index
diff --git a/src/widgets/itemviews/qheaderview_p.h b/src/widgets/itemviews/qheaderview_p.h
index 2bbd21a942b..a8c620b9d22 100644
--- a/src/widgets/itemviews/qheaderview_p.h
+++ b/src/widgets/itemviews/qheaderview_p.h
@@ -115,6 +115,8 @@ public:
void _q_layoutChanged();
bool isSectionSelected(int section) const;
+ bool isFirstVisibleSection(int section) const;
+ bool isLastVisibleSection(int section) const;
inline bool rowIntersectsSelection(int row) const {
return (selectionModel ? selectionModel->rowIntersectsSelection(row, root) : false);
diff --git a/src/widgets/widgets/qmdiarea.cpp b/src/widgets/widgets/qmdiarea.cpp
index b2409e300c2..13c9bf8debf 100644
--- a/src/widgets/widgets/qmdiarea.cpp
+++ b/src/widgets/widgets/qmdiarea.cpp
@@ -2043,7 +2043,7 @@ void QMdiArea::setBackground(const QBrush &brush)
if (d->background != brush) {
d->background = brush;
d->viewport->setAttribute(Qt::WA_OpaquePaintEvent, brush.isOpaque());
- update();
+ d->viewport->update();
}
}
diff --git a/tests/auto/corelib/tools/qpointf/tst_qpointf.cpp b/tests/auto/corelib/tools/qpointf/tst_qpointf.cpp
index fc79b40a18c..52a6d3aa46e 100644
--- a/tests/auto/corelib/tools/qpointf/tst_qpointf.cpp
+++ b/tests/auto/corelib/tools/qpointf/tst_qpointf.cpp
@@ -284,12 +284,12 @@ void tst_QPointF::division()
{
QPointF p(1e-14, 1e-14);
p = p / sqrt(dot(p, p));
- qFuzzyCompare(dot(p, p), 1);
+ QCOMPARE(dot(p, p), qreal(1.0));
}
{
QPointF p(1e-14, 1e-14);
p /= sqrt(dot(p, p));
- qFuzzyCompare(dot(p, p), 1);
+ QCOMPARE(dot(p, p), qreal(1.0));
}
}
diff --git a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp
index 85b60686d65..a15daf660a4 100644
--- a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp
+++ b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp
@@ -947,7 +947,8 @@ void tst_QSslSocket::protocol()
socket->abort();
QCOMPARE(socket->protocol(), QSsl::TlsV1SslV3);
socket->connectToHost(QtNetworkSettings::serverName(), 443);
- QVERIFY2(socket->waitForConnected(), qPrintable(socket->errorString()));
+ if (setProxy && !socket->waitForConnected())
+ QSKIP("Skipping flaky test - See QTBUG-29941");
socket->startClientEncryption();
if (setProxy && !socket->waitForEncrypted())
QSKIP("Skipping flaky test - See QTBUG-29941");
@@ -1263,7 +1264,9 @@ void tst_QSslSocket::setSslConfiguration()
this->socket = socket.data();
socket->connectToHostEncrypted(QtNetworkSettings::serverName(), 443);
QFETCH(bool, works);
- QCOMPARE(socket->waitForEncrypted(10000), works);
+ QFETCH_GLOBAL(bool, setProxy);
+ if (setProxy && (socket->waitForEncrypted(10000) != works))
+ QSKIP("Skipping flaky test - See QTBUG-29941");
if (works) {
socket->disconnectFromHost();
QVERIFY2(socket->waitForDisconnected(), qPrintable(socket->errorString()));
@@ -2114,7 +2117,9 @@ void tst_QSslSocket::ignoreSslErrorsListWithSlot()
QFETCH(int, expectedSslErrorSignalCount);
bool expectEncryptionSuccess = (expectedSslErrorSignalCount == 0);
- QCOMPARE(socket.waitForEncrypted(10000), expectEncryptionSuccess);
+ QFETCH_GLOBAL(bool, setProxy);
+ if (setProxy && (socket.waitForEncrypted(10000) != expectEncryptionSuccess))
+ QSKIP("Skipping flaky test - See QTBUG-29941");
}
// make sure a closed socket has no bytesAvailable()
@@ -2205,7 +2210,8 @@ void tst_QSslSocket::blacklistedCertificates()
QVERIFY(server.listen(QHostAddress::LocalHost));
receiver->connectToHost("127.0.0.1", server.serverPort());
QVERIFY(receiver->waitForConnected(5000));
- QVERIFY(server.waitForNewConnection(0));
+ if (!server.waitForNewConnection(0))
+ QSKIP("Skipping flaky test - See QTBUG-29941");
QSslSocket *sender = server.socket;
QVERIFY(sender);
@@ -2341,7 +2347,9 @@ void tst_QSslSocket::resume()
socket.connectToHostEncrypted(QtNetworkSettings::serverName(), 993);
QTestEventLoop::instance().enterLoop(10);
- QVERIFY(!QTestEventLoop::instance().timeout());
+ QFETCH_GLOBAL(bool, setProxy);
+ if (setProxy && QTestEventLoop::instance().timeout())
+ QSKIP("Skipping flaky test - See QTBUG-29941");
QCOMPARE(sslErrorSpy.count(), 1);
QCOMPARE(errorSpy.count(), 0);
QCOMPARE(encryptedSpy.count(), 0);
diff --git a/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp
index 9353aa0eba4..2c038501813 100644
--- a/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp
+++ b/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp
@@ -4423,10 +4423,13 @@ void tst_QGraphicsItem::defaultItemTest_QGraphicsEllipseItem()
QCOMPARE(item.boundingRect(), QRectF(0, 0, 100, 100));
item.setSpanAngle(90 * 16);
- qFuzzyCompare(item.boundingRect().left(), qreal(50.0));
- qFuzzyCompare(item.boundingRect().top(), qreal(0.0));
- qFuzzyCompare(item.boundingRect().width(), qreal(50.0));
- qFuzzyCompare(item.boundingRect().height(), qreal(50.0));
+ // for some reason, the bounding rect has very few significant digits
+ // (i.e. it's likely that floats are being used inside it), so we
+ // must force the conversion from qreals to float or these tests will fail
+ QCOMPARE(float(item.boundingRect().left()), 50.0f);
+ QVERIFY(qFuzzyIsNull(float(item.boundingRect().top())));
+ QCOMPARE(float(item.boundingRect().width()), 50.0f);
+ QCOMPARE(float(item.boundingRect().height()), 50.0f);
item.setPen(QPen(Qt::black, 1));
QCOMPARE(item.boundingRect(), QRectF(49.5, -0.5, 51, 51));
diff --git a/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp b/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp
index ba3a1501544..09f0161dff7 100644
--- a/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp
+++ b/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp
@@ -46,6 +46,7 @@
#include
#include
#include
+#include
#include
#include
@@ -59,6 +60,20 @@ typedef QList IntList;
typedef QList BoolList;
+class TestStyle : public QProxyStyle
+{
+public:
+ void drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const
+ {
+ if (element == CE_HeaderSection) {
+ if (const QStyleOptionHeader *header = qstyleoption_cast(option))
+ lastPosition = header->position;
+ }
+ QProxyStyle::drawControl(element, option, painter, widget);
+ }
+ mutable QStyleOptionHeader::SectionPosition lastPosition;
+};
+
class protected_QHeaderView : public QHeaderView
{
Q_OBJECT
@@ -229,6 +244,7 @@ private slots:
void mixedTests();
void resizeToContentTest();
void testStreamWithHide();
+ void testStylePosition();
protected:
void setupTestData(bool use_reset_model = false);
@@ -2732,5 +2748,54 @@ void tst_QHeaderView::testStreamWithHide()
#endif
}
+void tst_QHeaderView::testStylePosition()
+{
+ topLevel->show();
+ QVERIFY(QTest::qWaitForWindowExposed(topLevel));
+
+ protected_QHeaderView *header = static_cast(view);
+
+ TestStyle proxy;
+ header->setStyle(&proxy);
+
+ QImage image(1, 1, QImage::Format_ARGB32);
+ QPainter p(&image);
+
+ // 0, 1, 2, 3
+ header->paintSection(&p, view->rect(), 0);
+ QCOMPARE(proxy.lastPosition, QStyleOptionHeader::Beginning);
+ header->paintSection(&p, view->rect(), 1);
+ QCOMPARE(proxy.lastPosition, QStyleOptionHeader::Middle);
+ header->paintSection(&p, view->rect(), 2);
+ QCOMPARE(proxy.lastPosition, QStyleOptionHeader::Middle);
+ header->paintSection(&p, view->rect(), 3);
+ QCOMPARE(proxy.lastPosition, QStyleOptionHeader::End);
+
+ // (0),2,1,3
+ view->setSectionHidden(0, true);
+ view->swapSections(1, 2);
+ header->paintSection(&p, view->rect(), 1);
+ QCOMPARE(proxy.lastPosition, QStyleOptionHeader::Middle);
+ header->paintSection(&p, view->rect(), 2);
+ QCOMPARE(proxy.lastPosition, QStyleOptionHeader::Beginning);
+ header->paintSection(&p, view->rect(), 3);
+ QCOMPARE(proxy.lastPosition, QStyleOptionHeader::End);
+
+ // (1),2,0,(3)
+ view->setSectionHidden(3, true);
+ view->setSectionHidden(0, false);
+ view->setSectionHidden(1, true);
+ view->swapSections(0, 1);
+ header->paintSection(&p, view->rect(), 0);
+ QCOMPARE(proxy.lastPosition, QStyleOptionHeader::End);
+ header->paintSection(&p, view->rect(), 2);
+ QCOMPARE(proxy.lastPosition, QStyleOptionHeader::Beginning);
+
+ // (1),2,(0),(3)
+ view->setSectionHidden(0, true);
+ header->paintSection(&p, view->rect(), 2);
+ QCOMPARE(proxy.lastPosition, QStyleOptionHeader::OnlyOneSection);
+}
+
QTEST_MAIN(tst_QHeaderView)
#include "tst_qheaderview.moc"
diff --git a/tests/auto/widgets/kernel/qwidget/qwidget.pro b/tests/auto/widgets/kernel/qwidget/qwidget.pro
index 6916ee85e6f..a4fcde8a343 100644
--- a/tests/auto/widgets/kernel/qwidget/qwidget.pro
+++ b/tests/auto/widgets/kernel/qwidget/qwidget.pro
@@ -23,3 +23,4 @@ x11 {
!wince*:win32: LIBS += -luser32 -lgdi32
mac:CONFIG+=insignificant_test # QTBUG-25300, QTBUG-23695
+linux-*:system(". /etc/lsb-release && [ $DISTRIB_CODENAME = oneiric ]"):DEFINES+=UBUNTU_ONEIRIC # QTBUG-30566
\ No newline at end of file
diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
index fefa7333d1f..0085b75299a 100644
--- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
+++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
@@ -4859,6 +4859,9 @@ void tst_QWidget::moveChild_data()
void tst_QWidget::moveChild()
{
+#if defined(UBUNTU_ONEIRIC)
+ QSKIP("QTBUG-30566 - Unstable auto-test");
+#endif
QFETCH(QPoint, offset);
ColorWidget parent;
@@ -4909,6 +4912,9 @@ void tst_QWidget::moveChild()
void tst_QWidget::showAndMoveChild()
{
+#if defined(UBUNTU_ONEIRIC)
+ QSKIP("QTBUG-30566 - Unstable auto-test");
+#endif
QWidget parent(0, Qt::FramelessWindowHint);
// prevent custom styles
parent.setStyle(QStyleFactory::create(QLatin1String("Windows")));
@@ -7636,6 +7642,9 @@ void tst_QWidget::doubleRepaint()
#if defined(Q_OS_MAC)
if (!macHasAccessToWindowsServer())
QSKIP("Not having window server access causes the wrong number of repaints to be issues");
+#endif
+#if defined(UBUNTU_ONEIRIC)
+ QSKIP("QTBUG-30566 - Unstable auto-test");
#endif
UpdateWidget widget;
widget.setFocusPolicy(Qt::StrongFocus);
diff --git a/tests/manual/manual.pro b/tests/manual/manual.pro
index c04f22b53bf..381922288fa 100644
--- a/tests/manual/manual.pro
+++ b/tests/manual/manual.pro
@@ -40,6 +40,7 @@ windowmodality \
widgetgrab \
xembed-raster \
xembed-widgets \
+shortcuts \
dialogs \
windowtransparency \
unc
diff --git a/tests/manual/shortcuts/main.cpp b/tests/manual/shortcuts/main.cpp
new file mode 100644
index 00000000000..95faff671cb
--- /dev/null
+++ b/tests/manual/shortcuts/main.cpp
@@ -0,0 +1,148 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include
+#include
+#include
+#include
+#include
+
+class ShortcutTester : public QWidget
+{
+public:
+ ShortcutTester() {
+ setupLayout();
+ setFixedWidth(200);
+ }
+protected:
+ void setupLayout()
+ {
+ QVBoxLayout *layout = new QVBoxLayout(this);
+
+ QKeySequence sq1(Qt::AltModifier + Qt::ShiftModifier + Qt::Key_G);
+ QPushButton *b1 = new QPushButton(sq1.toString());
+ b1->setShortcut(sq1);
+
+ QKeySequence sq2(Qt::AltModifier + Qt::Key_G);
+ QPushButton *b2 = new QPushButton(sq2.toString());
+ b2->setShortcut(sq2);
+
+ QKeySequence sq3(Qt::ControlModifier + Qt::ShiftModifier + Qt::Key_R);
+ QPushButton *b3 = new QPushButton(sq3.toString());
+ b3->setShortcut(sq3);
+
+ QKeySequence sq4(Qt::ControlModifier + Qt::Key_R);
+ QPushButton *b4 = new QPushButton(sq4.toString());
+ b4->setShortcut(sq4);
+
+ QKeySequence sq5(Qt::ControlModifier + Qt::Key_Return);
+ QPushButton *b5 = new QPushButton(sq5.toString());
+ b5->setShortcut(sq5);
+
+ QKeySequence sq6(Qt::ControlModifier + Qt::ShiftModifier + Qt::AltModifier + Qt::Key_R);
+ QPushButton *b6 = new QPushButton(sq6.toString());
+ b6->setShortcut(sq6);
+
+ QKeySequence sq7(Qt::ShiftModifier + Qt::Key_5);
+ QPushButton *b7 = new QPushButton(sq7.toString());
+ b7->setShortcut(sq7);
+
+ QKeySequence sq8(Qt::ControlModifier + Qt::Key_Q);
+ QPushButton *b8 = new QPushButton(sq8.toString());
+ b8->setShortcut(sq8);
+
+ QKeySequence sq9(Qt::ControlModifier + Qt::Key_Plus);
+ QPushButton *b9 = new QPushButton(sq9.toString());
+ b9->setShortcut(sq9);
+
+ QKeySequence sq10(Qt::ControlModifier + Qt::Key_Y);
+ QPushButton *b10 = new QPushButton(sq10.toString());
+ b10->setShortcut(sq10);
+
+ QKeySequence sq11(Qt::ShiftModifier + Qt::Key_Comma);
+ QPushButton *b11 = new QPushButton(sq11.toString());
+ b11->setShortcut(sq11);
+
+ // LATIN SMALL LETTER O WITH STROKE
+ QKeySequence sq12(QString(QChar(ushort(0xf8))));
+ QPushButton *b12 = new QPushButton(sq12.toString());
+ b12->setShortcut(sq12);
+
+ // CYRILLIC SMALL LETTER ZHE
+ QKeySequence sq13(QString(QChar(ushort(0x436))));
+ QPushButton *b13 = new QPushButton(sq13.toString());
+ b13->setShortcut(sq13);
+
+ QLabel *testPurpose = new QLabel();
+ testPurpose->setWordWrap(true);
+ testPurpose->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Expanding);
+ testPurpose->setText("This test come in handy to verify shortcuts under different"
+ " keyboard layouts - qwerty, dvorak, non-latin (russian, arabic), etc.");
+ layout->addWidget(testPurpose);
+ layout->addWidget(b1);
+ layout->addWidget(b2);
+ layout->addWidget(b3);
+ layout->addWidget(b4);
+ layout->addWidget(b5);
+ layout->addWidget(b6);
+ layout->addWidget(b7);
+ layout->addWidget(b8);
+ layout->addWidget(b9);
+ layout->addWidget(b10);
+ layout->addWidget(b11);
+ layout->addWidget(new QLabel("Norwegian layout"));
+ layout->addWidget(b12);
+ layout->addWidget(new QLabel("Russian layout"));
+ layout->addWidget(b13);
+
+ setLayout(layout);
+ }
+};
+
+int main(int argc, char *argv[])
+{
+ QApplication a(argc, argv);
+
+ ShortcutTester tester;
+ tester.show();
+
+ return a.exec();
+}
diff --git a/tests/manual/shortcuts/shortcuts.pro b/tests/manual/shortcuts/shortcuts.pro
new file mode 100644
index 00000000000..3df6f2192b7
--- /dev/null
+++ b/tests/manual/shortcuts/shortcuts.pro
@@ -0,0 +1,6 @@
+QT += core gui widgets
+
+TARGET = shortcuts
+TEMPLATE = app
+
+SOURCES += main.cpp
diff --git a/tools/configure/Makefile.mingw b/tools/configure/Makefile.mingw
index 7212b0d3a7a..1994c9a52b0 100644
--- a/tools/configure/Makefile.mingw
+++ b/tools/configure/Makefile.mingw
@@ -69,7 +69,6 @@ OBJECTS = \
qxmlstream.o \
qxmlutils.o \
quuid.o \
- qcryptographichash.o \
registry.o
$(TARGET): $(OBJECTS)
diff --git a/tools/configure/Makefile.win32 b/tools/configure/Makefile.win32
index 5b0a21a6698..17c2d1089c7 100644
--- a/tools/configure/Makefile.win32
+++ b/tools/configure/Makefile.win32
@@ -67,7 +67,6 @@ OBJECTS = \
qxmlstream.obj \
qxmlutils.obj \
quuid.obj \
- qcryptographichash.obj \
registry.obj \
configure_pch.obj
@@ -142,7 +141,6 @@ qmalloc.obj: $(CORESRC)\global\qmalloc.cpp $(PCH)
qxmlstream.obj: $(CORESRC)\xml\qxmlstream.cpp $(PCH)
qxmlutils.obj: $(CORESRC)\xml\qxmlutils.cpp $(PCH)
quuid.obj: $(CORESRC)\plugin\quuid.cpp $(PCH)
-qcryptographichash.obj: $(CORESRC)\tools\qcryptographichash.cpp $(PCH)
{$(CONFSRC)}.cpp{}.obj::
$(CXX) -c $(CXXFLAGS) $<
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index e2cddbc5655..d31232262a0 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -485,6 +485,14 @@ void Configure::parseCmdLine()
|| configCmdLine.at(i) == "-device") {
++i;
// do nothing
+ } else if (configCmdLine.at(i) == "-device-option") {
+ ++i;
+ const QString option = configCmdLine.at(i);
+ QString &devOpt = dictionary["DEVICE_OPTION"];
+ if (!devOpt.isEmpty())
+ devOpt.append("\n").append(option);
+ else
+ devOpt = option;
}
else if (configCmdLine.at(i) == "-no-zlib") {
@@ -1150,6 +1158,13 @@ void Configure::parseCmdLine()
dictionary[ "QT_HOST_DATA" ] = configCmdLine.at(i);
}
+ else if (configCmdLine.at(i) == "-extprefix") {
+ ++i;
+ if (i == argCount)
+ break;
+ dictionary[ "QT_EXT_PREFIX" ] = configCmdLine.at(i);
+ }
+
else if (configCmdLine.at(i) == "-make-tool") {
++i;
if (i == argCount)
@@ -1634,8 +1649,10 @@ bool Configure::displayHelp()
desc( "-prefix ", "This will install everything relative to (default $QT_INSTALL_PREFIX)\n");
+ desc( "-extprefix ", "When -sysroot is used, install everything to , rather than into SYSROOT/PREFIX.\n");
+
desc( "-hostprefix [dir]", "Tools and libraries needed when developing applications are installed in [dir]. "
- "If [dir] is not given, the current build directory will be used. (default PREFIX)\n");
+ "If [dir] is not given, the current build directory will be used. (default EXTPREFIX)\n");
desc("You may use these to separate different parts of the install:\n\n");
@@ -3053,6 +3070,41 @@ bool Configure::compilerSupportsFlag(const QString &compilerAndArgs)
return code == 0;
}
+void Configure::generateQDevicePri()
+{
+ FileWriter deviceStream(buildPath + "/mkspecs/qdevice.pri");
+ if (dictionary.contains("DEVICE_OPTION")) {
+ const QString devoptionlist = dictionary["DEVICE_OPTION"];
+ const QStringList optionlist = devoptionlist.split(QStringLiteral("\n"));
+ foreach (const QString &entry, optionlist)
+ deviceStream << entry << "\n";
+ }
+ if (dictionary.contains("ANDROID_SDK_ROOT") && dictionary.contains("ANDROID_NDK_ROOT")) {
+ QString android_platform(dictionary.contains("ANDROID_PLATFORM")
+ ? dictionary["ANDROID_PLATFORM"]
+ : QString("android-9"));
+ deviceStream << "android_install {" << endl;
+ deviceStream << " DEFAULT_ANDROID_SDK_ROOT = " << formatPath(dictionary["ANDROID_SDK_ROOT"]) << endl;
+ deviceStream << " DEFAULT_ANDROID_NDK_ROOT = " << formatPath(dictionary["ANDROID_NDK_ROOT"]) << endl;
+ deviceStream << " DEFAULT_ANDROID_PLATFORM = " << android_platform << endl;
+ if (QSysInfo::WordSize == 64)
+ deviceStream << " DEFAULT_ANDROID_NDK_HOST = windows-x86_64" << endl;
+ else
+ deviceStream << " DEFAULT_ANDROID_NDK_HOST = windows" << endl;
+ QString android_arch(dictionary.contains("ANDROID_TARGET_ARCH")
+ ? dictionary["ANDROID_TARGET_ARCH"]
+ : QString("armeabi-v7a"));
+ QString android_tc_vers(dictionary.contains("ANDROID_NDK_TOOLCHAIN_VERSION")
+ ? dictionary["ANDROID_NDK_TOOLCHAIN_VERSION"]
+ : QString("4.7"));
+ deviceStream << " DEFAULT_ANDROID_TARGET_ARCH = " << android_arch << endl;
+ deviceStream << " DEFAULT_ANDROID_NDK_TOOLCHAIN_VERSION = " << android_tc_vers << endl;
+ deviceStream << "}" << endl;
+ }
+ if (!deviceStream.flush())
+ dictionary[ "DONE" ] = "error";
+}
+
void Configure::generateQConfigPri()
{
// Generate qconfig.pri
@@ -3341,33 +3393,6 @@ void Configure::generateConfigfiles()
dictionary[ "DONE" ] = "error";
}
- {
- FileWriter tmpStream(buildPath + "/mkspecs/qdevice.pri");
-
- QString android_platform(dictionary.contains("ANDROID_PLATFORM")
- ? dictionary["ANDROID_PLATFORM"]
- : QString("android-9"));
- tmpStream << "android_install {" << endl;
- tmpStream << " DEFAULT_ANDROID_SDK_ROOT = " << formatPath(dictionary["ANDROID_SDK_ROOT"]) << endl;
- tmpStream << " DEFAULT_ANDROID_NDK_ROOT = " << formatPath(dictionary["ANDROID_NDK_ROOT"]) << endl;
- tmpStream << " DEFAULT_ANDROID_PLATFORM = " << android_platform << endl;
- if (QSysInfo::WordSize == 64)
- tmpStream << " DEFAULT_ANDROID_NDK_HOST = windows-x86_64" << endl;
- else
- tmpStream << " DEFAULT_ANDROID_NDK_HOST = windows" << endl;
- QString android_arch(dictionary.contains("ANDROID_TARGET_ARCH")
- ? dictionary["ANDROID_TARGET_ARCH"]
- : QString("armeabi-v7a"));
- QString android_tc_vers(dictionary.contains("ANDROID_NDK_TOOLCHAIN_VERSION")
- ? dictionary["ANDROID_NDK_TOOLCHAIN_VERSION"]
- : QString("4.7"));
- tmpStream << " DEFAULT_ANDROID_TARGET_ARCH = " << android_arch << endl;
- tmpStream << " DEFAULT_ANDROID_NDK_TOOLCHAIN_VERSION = " << android_tc_vers << endl;
- tmpStream << "}" << endl;
-
- if (!tmpStream.flush())
- dictionary[ "DONE" ] = "error";
- }
}
void Configure::displayConfig()
@@ -3610,6 +3635,13 @@ static QString stripPrefix(const QString &str, const QString &pfx)
return str.startsWith(pfx) ? str.mid(pfx.length()) : str;
}
+void Configure::substPrefix(QString *path)
+{
+ QString spfx = dictionary["QT_SYSROOT_PREFIX"];
+ if (path->startsWith(spfx))
+ path->replace(0, spfx.size(), dictionary["QT_EXT_PREFIX"]);
+}
+
void Configure::generateQConfigCpp()
{
// if QT_INSTALL_* have not been specified on commandline, define them now from QT_INSTALL_PREFIX
@@ -3649,6 +3681,39 @@ void Configure::generateQConfigCpp()
if (!dictionary["QT_INSTALL_TESTS"].size())
dictionary["QT_INSTALL_TESTS"] = qipempty ? "" : dictionary["QT_INSTALL_PREFIX"] + "/tests";
+ QChar sysrootifyPrefix = QLatin1Char('y');
+ dictionary["QT_SYSROOT_PREFIX"] = dictionary["QT_INSTALL_PREFIX"];
+ dictionary["QT_SYSROOT_HEADERS"] = dictionary["QT_INSTALL_HEADERS"];
+ dictionary["QT_SYSROOT_LIBS"] = dictionary["QT_INSTALL_LIBS"];
+ dictionary["QT_SYSROOT_ARCHDATA"] = dictionary["QT_INSTALL_ARCHDATA"];
+ dictionary["QT_SYSROOT_LIBEXECS"] = dictionary["QT_INSTALL_LIBEXECS"];
+ dictionary["QT_SYSROOT_BINS"] = dictionary["QT_INSTALL_BINS"];
+ dictionary["QT_SYSROOT_PLUGINS"] = dictionary["QT_INSTALL_PLUGINS"];
+ dictionary["QT_SYSROOT_IMPORTS"] = dictionary["QT_INSTALL_IMPORTS"];
+ dictionary["QT_SYSROOT_QML"] = dictionary["QT_INSTALL_QML"];
+ dictionary["QT_SYSROOT_DATA"] = dictionary["QT_INSTALL_DATA"];
+ dictionary["QT_SYSROOT_DOCS"] = dictionary["QT_INSTALL_DOCS"];
+ dictionary["QT_SYSROOT_TRANSLATIONS"] = dictionary["QT_INSTALL_TRANSLATIONS"];
+ dictionary["QT_SYSROOT_EXAMPLES"] = dictionary["QT_INSTALL_EXAMPLES"];
+ dictionary["QT_SYSROOT_TESTS"] = dictionary["QT_INSTALL_TESTS"];
+ if (dictionary["QT_EXT_PREFIX"].size()) {
+ sysrootifyPrefix = QLatin1Char('n');
+ dictionary["QT_INSTALL_PREFIX"] = dictionary["QT_EXT_PREFIX"];
+ substPrefix(&dictionary["QT_INSTALL_HEADERS"]);
+ substPrefix(&dictionary["QT_INSTALL_LIBS"]);
+ substPrefix(&dictionary["QT_INSTALL_ARCHDATA"]);
+ substPrefix(&dictionary["QT_INSTALL_LIBEXECS"]);
+ substPrefix(&dictionary["QT_INSTALL_BINS"]);
+ substPrefix(&dictionary["QT_INSTALL_PLUGINS"]);
+ substPrefix(&dictionary["QT_INSTALL_IMPORTS"]);
+ substPrefix(&dictionary["QT_INSTALL_QML"]);
+ substPrefix(&dictionary["QT_INSTALL_DATA"]);
+ substPrefix(&dictionary["QT_INSTALL_DOCS"]);
+ substPrefix(&dictionary["QT_INSTALL_TRANSLATIONS"]);
+ substPrefix(&dictionary["QT_INSTALL_EXAMPLES"]);
+ substPrefix(&dictionary["QT_INSTALL_TESTS"]);
+ }
+
bool haveHpx = false;
if (dictionary["QT_HOST_PREFIX"].isEmpty())
dictionary["QT_HOST_PREFIX"] = dictionary["QT_INSTALL_PREFIX"];
@@ -3676,6 +3741,22 @@ void Configure::generateQConfigCpp()
<< "static const char qt_configure_installation [11 + 12] = \"qt_instdate=" << QDate::currentDate().toString(Qt::ISODate) << "\";" << endl
<< endl
<< "static const char qt_configure_prefix_path_strs[][12 + 512] = {" << endl
+ << "#ifndef QT_BUILD_QMAKE" << endl
+ << " \"qt_prfxpath=" << formatPath(dictionary["QT_SYSROOT_PREFIX"]) << "\"," << endl
+ << " \"qt_docspath=" << formatPath(dictionary["QT_SYSROOT_DOCS"]) << "\"," << endl
+ << " \"qt_hdrspath=" << formatPath(dictionary["QT_SYSROOT_HEADERS"]) << "\"," << endl
+ << " \"qt_libspath=" << formatPath(dictionary["QT_SYSROOT_LIBS"]) << "\"," << endl
+ << " \"qt_lbexpath=" << formatPath(dictionary["QT_SYSROOT_LIBEXECS"]) << "\"," << endl
+ << " \"qt_binspath=" << formatPath(dictionary["QT_SYSROOT_BINS"]) << "\"," << endl
+ << " \"qt_plugpath=" << formatPath(dictionary["QT_SYSROOT_PLUGINS"]) << "\"," << endl
+ << " \"qt_impspath=" << formatPath(dictionary["QT_SYSROOT_IMPORTS"]) << "\"," << endl
+ << " \"qt_qml2path=" << formatPath(dictionary["QT_SYSROOT_QML"]) << "\"," << endl
+ << " \"qt_adatpath=" << formatPath(dictionary["QT_SYSROOT_ARCHDATA"]) << "\"," << endl
+ << " \"qt_datapath=" << formatPath(dictionary["QT_SYSROOT_DATA"]) << "\"," << endl
+ << " \"qt_trnspath=" << formatPath(dictionary["QT_SYSROOT_TRANSLATIONS"]) << "\"," << endl
+ << " \"qt_xmplpath=" << formatPath(dictionary["QT_SYSROOT_EXAMPLES"]) << "\"," << endl
+ << " \"qt_tstspath=" << formatPath(dictionary["QT_SYSROOT_TESTS"]) << "\"," << endl
+ << "#else" << endl
<< " \"qt_prfxpath=" << formatPath(dictionary["QT_INSTALL_PREFIX"]) << "\"," << endl
<< " \"qt_docspath=" << formatPath(dictionary["QT_INSTALL_DOCS"]) << "\"," << endl
<< " \"qt_hdrspath=" << formatPath(dictionary["QT_INSTALL_HEADERS"]) << "\"," << endl
@@ -3690,7 +3771,6 @@ void Configure::generateQConfigCpp()
<< " \"qt_trnspath=" << formatPath(dictionary["QT_INSTALL_TRANSLATIONS"]) << "\"," << endl
<< " \"qt_xmplpath=" << formatPath(dictionary["QT_INSTALL_EXAMPLES"]) << "\"," << endl
<< " \"qt_tstspath=" << formatPath(dictionary["QT_INSTALL_TESTS"]) << "\"," << endl
- << "#ifdef QT_BUILD_QMAKE" << endl
<< " \"qt_ssrtpath=" << formatPath(dictionary["CFG_SYSROOT"]) << "\"," << endl
<< " \"qt_hpfxpath=" << formatPath(dictionary["QT_HOST_PREFIX"]) << "\"," << endl
<< " \"qt_hbinpath=" << formatPath(dictionary["QT_HOST_BINS"]) << "\"," << endl
@@ -3705,6 +3785,9 @@ void Configure::generateQConfigCpp()
tmpStream << "static const char qt_configure_settings_path_str [256 + 12] = \"qt_stngpath=" << formatPath(dictionary["QT_INSTALL_SETTINGS"]) << "\";" << endl;
tmpStream << endl
+ << "#ifdef QT_BUILD_QMAKE\n"
+ << "static const char qt_sysrootify_prefix[] = \"qt_ssrtfpfx=" << sysrootifyPrefix << "\";\n"
+ << "#endif\n\n"
<< "/* strlen( \"qt_lcnsxxxx\") == 12 */" << endl
<< "#define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;" << endl
<< "#define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;" << endl;
diff --git a/tools/configure/configureapp.h b/tools/configure/configureapp.h
index 33fc22b27ac..8a22cea6ec8 100644
--- a/tools/configure/configureapp.h
+++ b/tools/configure/configureapp.h
@@ -77,6 +77,7 @@ public:
void generateConfigfiles();
void detectArch();
void generateQConfigPri();
+ void generateQDevicePri();
void prepareConfigTests();
void showSummary();
QString firstLicensePath();
@@ -158,6 +159,8 @@ private:
int descIndent;
int outputWidth;
+ void substPrefix(QString *path);
+
QString formatPath(const QString &path);
QString formatPaths(const QStringList &paths);
diff --git a/tools/configure/main.cpp b/tools/configure/main.cpp
index 9beee36a508..fb815b287e0 100644
--- a/tools/configure/main.cpp
+++ b/tools/configure/main.cpp
@@ -81,6 +81,11 @@ int runConfigure( int argc, char** argv )
if (!app.isOk())
return 3;
+ // Generate qdevice.pri
+ app.generateQDevicePri();
+ if (!app.isOk())
+ return 3;
+
// Prepare the config test build directory.
app.prepareConfigTests();
if (!app.isOk())