diff options
author | Oswald Buddenhagen <oswald.buddenhagen@qt.io> | 2017-05-04 14:03:10 +0200 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@qt.io> | 2017-05-04 14:03:11 +0200 |
commit | 464a43d43c2bb2440d4ad745bc134e0dac10872c (patch) | |
tree | b1c27b1d1c11f9c43bd2e62e1fd955bc6f89029f | |
parent | 0208cac94fbd79fc563c903e2b973d79f9644b82 (diff) | |
parent | 877ef0594d94f48bf063446b1f8a4b5e1941a8cd (diff) |
Merge 5.9 into 5.9.0v5.9.0-beta4
Change-Id: Id3fc911f024cba292a5c426b36aa94ff9f3c0ef7
129 files changed, 2294 insertions, 4043 deletions
diff --git a/config.tests/common/alloca/alloca.cpp b/config.tests/common/alloca/alloca.cpp index d839b381ef..500bdb9ba2 100644 --- a/config.tests/common/alloca/alloca.cpp +++ b/config.tests/common/alloca/alloca.cpp @@ -37,10 +37,17 @@ ** ****************************************************************************/ -#include <alloca.h> - +#if defined(USE_ALLOCA_H) +# include <alloca.h> +# ifdef __QNXNTO__ // extra include needed in QNX7 to define NULL for the alloca() macro -#include <stdlib.h> +# include <stddef.h> +# endif +#elif defined(USE_MALLOC_H) +# include <malloc.h> +#else +# include <stdlib.h> +#endif int main(int, char **) { diff --git a/config_help.txt b/config_help.txt index 317ba61031..2cf8c8d885 100644 --- a/config_help.txt +++ b/config_help.txt @@ -83,6 +83,7 @@ Build options: debugging turned on [yes] (Apple and Windows only) -optimize-debug ...... Enable debug-friendly optimizations in debug builds [auto] (Not supported with MSVC) + -optimize-size ....... Optimize release builds for size instead of speed [no] -optimized-tools ..... Build optimized host tools even in debug build [no] -force-debug-info .... Create symbol files for release builds [no] -separate-debug-info . Split off debug information to separate files [no] @@ -561,23 +561,12 @@ if [ -z "$PLATFORM" ]; then ;; AIX:*) #PLATFORM=aix-g++ - #PLATFORM=aix-g++-64 - PLATFORM=aix-xlc - #PLATFORM=aix-xlc-64 - PLATFORM_NOTES="AIX: aix-g++ aix-g++-64 aix-xlc-64" + PLATFORM=aix-g++-64 + PLATFORM_NOTES="AIX: aix-g++ aix-g++-64" ;; GNU:*) PLATFORM=hurd-g++ ;; - dgux:*) - PLATFORM=dgux-g++ - ;; -# DYNIX/ptx:4*) -# PLATFORM=dynix-g++ -# ;; - ULTRIX:*) - PLATFORM=ultrix-g++ - ;; FreeBSD:*) if [ "$(uname -r | cut -d. -f1)" -ge 10 ]; then PLATFORM=freebsd-clang @@ -593,51 +582,22 @@ if [ -z "$PLATFORM" ]; then NetBSD:*) PLATFORM=netbsd-g++ ;; - BSD/OS:*|BSD/386:*) - PLATFORM=bsdi-g++ - ;; - IRIX*:*) - #PLATFORM=irix-g++ - PLATFORM=irix-cc - #PLATFORM=irix-cc-64 - PLATFORM_NOTES="IRIX: irix-g++ irix-cc-64" - ;; HP-UX:*) case "$UNAME_MACHINE" in ia64) - #PLATFORM=hpuxi-acc-32 - PLATFORM=hpuxi-acc-64 - PLATFORM_NOTES="HP-UXi: hpuxi-acc-32" - ;; - *) - #PLATFORM=hpux-g++ - PLATFORM=hpux-acc - #PLATFORM=hpux-acc-64 - #PLATFORM=hpux-cc - #PLATFORM=hpux-acc-o64 - PLATFORM_NOTES="HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64" + PLATFORM=hpuxi-g++-64 ;; esac ;; - OSF1:*) - #PLATFORM=tru64-g++ - PLATFORM=tru64-cxx - PLATFORM_NOTES="Tru64: tru64-g++" - ;; Linux:*) PLATFORM=linux-g++ - PLATFORM_NOTES="Linux: linux-clang linux-kcc linux-icc linux-cxx" + PLATFORM_NOTES="Linux: linux-clang linux-icc" ;; SunOS:5*) - #PLATFORM=solaris-g++ + #PLATFORM=solaris-g++-64 PLATFORM=solaris-cc #PLATFORM=solaris-cc64 - PLATFORM_NOTES="Solaris: solaris-g++ solaris-cc-64" - ;; - ReliantUNIX-*:*|SINIX-*:*) - PLATFORM=reliant-cds - #PLATFORM=reliant-cds-64 - PLATFORM_NOTES="Reliant UNIX: reliant-cds-64" + PLATFORM_NOTES="Solaris: solaris-g++-64 solaris-cc-64" ;; CYGWIN*:*) PLATFORM=cygwin-g++ @@ -645,24 +605,6 @@ if [ -z "$PLATFORM" ]; then LynxOS*:*) PLATFORM=lynxos-g++ ;; - OpenUNIX:*) - #PLATFORM=unixware-g++ - PLATFORM=unixware-cc - PLATFORM_NOTES="OpenUNIX: unixware-g++" - ;; - UnixWare:*) - #PLATFORM=unixware-g++ - PLATFORM=unixware-cc - PLATFORM_NOTES="UnixWare: unixware-g++" - ;; - SCO_SV:*) - #PLATFORM=sco-g++ - PLATFORM=sco-cc - PLATFORM_NOTES="SCO OpenServer: sco-g++" - ;; - UNIX_SV:*) - PLATFORM=unixware-g++ - ;; QNX:*) PLATFORM=unsupported/qnx-g++ ;; diff --git a/configure.json b/configure.json index 06c62f5aea..02d5f1a65e 100644 --- a/configure.json +++ b/configure.json @@ -93,6 +93,7 @@ "nomake": { "type": "addString", "values": [ "examples", "tests", "tools" ] }, "opensource": { "type": "void", "name": "commercial", "value": "no" }, "optimize-debug": { "type": "boolean", "name": "optimize_debug" }, + "optimize-size": { "type": "boolean", "name": "optimize_size" }, "optimized-qmake": { "type": "boolean", "name": "release_tools" }, "optimized-tools": { "type": "boolean", "name": "release_tools" }, "pch": { "type": "boolean", "name": "precompile_header" }, @@ -405,11 +406,23 @@ "type": "compile", "test": "unix/posix_fallocate" }, - "alloca": { - "label": "alloca()", + "alloca_stdlib_h": { + "label": "alloca() in stdlib.h", "type": "compile", "test": "common/alloca" }, + "alloca_h": { + "label": "alloca() in alloca.h", + "type": "compile", + "test": "common/alloca", + "args": "DEFINES+=USE_ALLOCA_H" + }, + "alloca_malloc_h": { + "label": "alloca() in malloc.h", + "type": "compile", + "test": "common/alloca", + "args": "DEFINES+=USE_MALLOC_H" + }, "stack_protector": { "label": "stack protection", "type": "compilerSupportsFlag", @@ -485,6 +498,12 @@ "condition": "!config.msvc && (features.debug || features.debug_and_release) && tests.optimize_debug", "output": [ "privateConfig" ] }, + "optimize_size": { + "label": "Optimize release build for size", + "autoDetect": false, + "condition": "!features.debug || features.debug_and_release", + "output": [ "privateConfig" ] + }, "architecture": { "label": "Architecture", "output": [ "architecture" ] @@ -893,9 +912,19 @@ "condition": "tests.posix_fallocate", "output": [ "privateFeature" ] }, + "alloca_h": { + "label": "alloca.h", + "condition": "tests.alloca_h", + "output": [ "privateFeature" ] + }, + "alloca_malloc_h": { + "label": "alloca() in malloc.h", + "condition": "!features.alloca_h && tests.alloca_malloc_h", + "output": [ "privateFeature" ] + }, "alloca": { "label": "alloca()", - "condition": "tests.alloca", + "condition": "features.alloca_h || features.alloca_malloc_h || tests.alloca_stdlib_h", "output": [ "privateFeature" ] }, "stack-protector-strong": { @@ -1090,6 +1119,11 @@ Configure with '-qreal float' to create a build that is binary-compatible with 5 "args": "optimize_debug", "condition": "!config.msvc && (features.debug || features.debug_and_release)" }, + { + "type": "feature", + "args": "optimize_size", + "condition": "!features.debug || features.debug_and_release" + }, "shared", { "message": "Using C++ standard", diff --git a/configure.pri b/configure.pri index c422c73650..be1b166080 100644 --- a/configure.pri +++ b/configure.pri @@ -155,7 +155,13 @@ defineReplace(qtConfFunc_licenseCheck) { $$[QMAKE_SPEC] $$[QMAKE_XSPEC]", \ LicheckOutput): \ return(false) - eval($$LicheckOutput) + logn() + for (o, LicheckOutput) { + contains(o, "\\w+=.*"): \ + eval($$o) + else: \ + logn($$o) + } config.input.qt_edition = $$Edition config.input.qt_licheck = $$Licheck config.input.qt_release_date = $$ReleaseDate @@ -272,7 +278,7 @@ defineTest(qtConfTest_architecture) { export($${1}.buildabi) qtLog("Detected architecture: $$eval($${1}.arch) ($$eval($${1}.subarch))") - $${1}.cache += arch subarch + $${1}.cache += arch subarch buildabi export($${1}.cache) return(true) } @@ -887,11 +893,12 @@ defineTest(qtConfOutput_architecture) { publicPro = \ "host_build {" \ " QT_ARCH = $$host_arch" \ + " QT_BUILDABI = $$host_buildabi" \ " QT_TARGET_ARCH = $$arch" \ " QT_TARGET_BUILDABI = $$buildabi" \ "} else {" \ " QT_ARCH = $$arch" \ - " QT_BUILDABI = $$host_buildabi" \ + " QT_BUILDABI = $$buildabi" \ "}" } else { diff --git a/doc/global/manifest-meta.qdocconf b/doc/global/manifest-meta.qdocconf index 865a457581..a7a8763c13 100644 --- a/doc/global/manifest-meta.qdocconf +++ b/doc/global/manifest-meta.qdocconf @@ -41,6 +41,7 @@ manifestmeta.highlighted.names = "QtQuick/Qt Quick Demo - Same Game" \ "QtQuickExtras/Qt Quick Extras - Flat" \ "QtQuickExtras/Qt Quick Extras - Gallery" \ "QtQuickControls2/Qt Quick Controls 2 - Gallery" \ + "QtQuickControls2/Qt Quick Controls 2 - Wearable Demo" \ "QtQuickDialogs/Qt Quick System Dialog Examples" \ "QtWinExtras/Quick Player" \ "QtMultimedia/QML Video Shader Effects Example" \ diff --git a/doc/global/qt-cpp-defines.qdocconf b/doc/global/qt-cpp-defines.qdocconf index df25d15448..f4f083d3e8 100644 --- a/doc/global/qt-cpp-defines.qdocconf +++ b/doc/global/qt-cpp-defines.qdocconf @@ -174,6 +174,7 @@ Cpp.ignoretokens += \ QT_END_NAMESPACE \ QT_FASTCALL \ QT_MUTEX_LOCK_NOEXCEPT \ + QT_POPCOUNT_CONSTEXPR \ QT_SIZEPOLICY_CONSTEXPR \ QT_WARNING_DISABLE_DEPRECATED \ QT_WARNING_PUSH \ diff --git a/mkspecs/aix-xlc-64/qmake.conf b/mkspecs/aix-xlc-64/qmake.conf deleted file mode 100644 index 1aea8d81c5..0000000000 --- a/mkspecs/aix-xlc-64/qmake.conf +++ /dev/null @@ -1,71 +0,0 @@ -# -# qmake configuration for aix-xlc -# - -MAKEFILE_GENERATOR = UNIX -QMAKE_PLATFORM = aix - -include(../common/unix.conf) - -QMAKE_COMPILER = ibm_xlc - -QMAKE_CC = xlc -QMAKE_CC_THREAD = xlc_r -QMAKE_LEX = flex -QMAKE_LEXFLAGS = -QMAKE_YACC = yacc -QMAKE_YACCFLAGS = -d -QMAKE_CFLAGS = -qstrict -q64 -QMAKE_CFLAGS_WARN_ON = -QMAKE_CFLAGS_WARN_OFF = -QMAKE_CFLAGS_RELEASE = -O3 -QMAKE_CFLAGS_DEBUG = -g -QMAKE_CFLAGS_SHLIB = -QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CFLAGS_YACC = -QMAKE_CFLAGS_THREAD = -qthreaded -qtls - -QMAKE_CXX = xlC -QMAKE_CXX_THREAD = xlC_r -QMAKE_CXXFLAGS = -+ $$QMAKE_CFLAGS -QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG -QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB -QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC -QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD -QMAKE_COMPILER_DEFINES += __xlC__ - -QMAKE_INCDIR = -QMAKE_LIBDIR = -QMAKE_INCDIR_X11 = -QMAKE_LIBDIR_X11 = -QMAKE_INCDIR_OPENGL = -QMAKE_LIBDIR_OPENGL = - -QMAKE_LINK = xlC -QMAKE_LINK_THREAD = xlC_r -QMAKE_LINK_SHLIB = ld -QMAKE_LFLAGS = -q64 -bbigtoc -QMAKE_LFLAGS_RELEASE = -QMAKE_LFLAGS_DEBUG = -QMAKE_LFLAGS_SHLIB = -qmkshrobj -QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB -QMAKE_LFLAGS_SONAME = -QMAKE_LFLAGS_THREAD = -L/usr/lib/threads -QMAKE_AIX_SHLIB = 1 - -QMAKE_LIBS = -QMAKE_LIBS_DYNLOAD = -ldl -QMAKE_LIBS_X11 = -lXext -lX11 -lm -QMAKE_LIBS_OPENGL = -lGL -QMAKE_LIBS_THREAD = -lpthreads - -QMAKE_AR = ar -X64 cq -QMAKE_OBJCOPY = objcopy -QMAKE_NM = nm -P -QMAKE_RANLIB = ranlib -X64 - -load(qt_config) diff --git a/mkspecs/aix-xlc-64/qplatformdefs.h b/mkspecs/aix-xlc-64/qplatformdefs.h deleted file mode 100644 index 8737517a79..0000000000 --- a/mkspecs/aix-xlc-64/qplatformdefs.h +++ /dev/null @@ -1,45 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QPLATFORMDEFS_H -#define QPLATFORMDEFS_H - -#include "../common/aix/qplatformdefs.h" - -#endif // QPLATFORMDEFS_H diff --git a/mkspecs/aix-xlc/qmake.conf b/mkspecs/aix-xlc/qmake.conf deleted file mode 100644 index c765d4ff6b..0000000000 --- a/mkspecs/aix-xlc/qmake.conf +++ /dev/null @@ -1,74 +0,0 @@ -# -# qmake configuration for aix-xlc -# - -MAKEFILE_GENERATOR = UNIX -QMAKE_PLATFORM = aix - -include(../common/unix.conf) - -QMAKE_COMPILER = ibm_xlc - -QMAKE_CC = xlc -QMAKE_CC_THREAD = xlc_r -QMAKE_LEX = flex -QMAKE_LEXFLAGS = -QMAKE_YACC = yacc -QMAKE_YACCFLAGS = -d -QMAKE_CFLAGS = -qstrict -QMAKE_CFLAGS_WARN_ON = -QMAKE_CFLAGS_WARN_OFF = -QMAKE_CFLAGS_RELEASE = -O3 -QMAKE_CFLAGS_DEBUG = -g -QMAKE_CFLAGS_SHLIB = -QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CFLAGS_YACC = -QMAKE_CFLAGS_THREAD = -qthreaded -qtls - -QMAKE_CXX = xlC -QMAKE_CXX_THREAD = xlC_r -QMAKE_CXXFLAGS = -+ $$QMAKE_CFLAGS -QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG -QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB -QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC -QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD -QMAKE_CXXFLAGS_RTTI_ON = -qrtti -QMAKE_CXXFLAGS_RTTI_OFF = -qnortti -QMAKE_COMPILER_DEFINES += __xlC__ - -QMAKE_INCDIR = -QMAKE_LIBDIR = -QMAKE_INCDIR_X11 = -QMAKE_LIBDIR_X11 = -QMAKE_INCDIR_OPENGL = -QMAKE_LIBDIR_OPENGL = - -QMAKE_LINK = xlC -QMAKE_LINK_THREAD = xlC_r -QMAKE_LINK_SHLIB = ld -QMAKE_LFLAGS = -bmaxdata:0x80000000 -QMAKE_LFLAGS_RELEASE = -QMAKE_LFLAGS_DEBUG = -QMAKE_LFLAGS_SHLIB = -qmkshrobj -QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB -QMAKE_LFLAGS_SONAME = -QMAKE_LFLAGS_THREAD = -L/usr/lib/threads -QMAKE_LFLAGS_NOUNDEF = -QMAKE_AIX_SHLIB = 1 - -QMAKE_LIBS = -QMAKE_LIBS_DYNLOAD = -ldl -QMAKE_LIBS_X11 = -lXext -lX11 -lm -QMAKE_LIBS_OPENGL = -lGL -QMAKE_LIBS_THREAD = -lpthreads - -QMAKE_AR = ar cq -QMAKE_OBJCOPY = objcopy -QMAKE_NM = nm -P -QMAKE_RANLIB = ranlib - -load(qt_config) diff --git a/mkspecs/aix-xlc/qplatformdefs.h b/mkspecs/aix-xlc/qplatformdefs.h deleted file mode 100644 index 8737517a79..0000000000 --- a/mkspecs/aix-xlc/qplatformdefs.h +++ /dev/null @@ -1,45 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QPLATFORMDEFS_H -#define QPLATFORMDEFS_H - -#include "../common/aix/qplatformdefs.h" - -#endif // QPLATFORMDEFS_H diff --git a/mkspecs/common/gcc-base.conf b/mkspecs/common/gcc-base.conf index 9ddebae506..e7e6ee1815 100644 --- a/mkspecs/common/gcc-base.conf +++ b/mkspecs/common/gcc-base.conf @@ -34,6 +34,7 @@ QMAKE_CFLAGS_OPTIMIZE = -O2 QMAKE_CFLAGS_OPTIMIZE_FULL = -O3 QMAKE_CFLAGS_OPTIMIZE_DEBUG = -Og +QMAKE_CFLAGS_OPTIMIZE_SIZE = -Os QMAKE_CFLAGS += -pipe QMAKE_CFLAGS_DEPS += -M diff --git a/mkspecs/common/msvc-desktop.conf b/mkspecs/common/msvc-desktop.conf index 02b8441547..d0d8869036 100644 --- a/mkspecs/common/msvc-desktop.conf +++ b/mkspecs/common/msvc-desktop.conf @@ -19,6 +19,9 @@ contains(QMAKE_TARGET.arch, x86_64) { QMAKE_COMPILER_DEFINES += _WIN64 } +QMAKE_CFLAGS_OPTIMIZE = -O2 +QMAKE_CFLAGS_OPTIMIZE_SIZE = -O1 + QMAKE_CC = cl QMAKE_LEX = flex QMAKE_LEXFLAGS = @@ -27,8 +30,8 @@ QMAKE_YACCFLAGS = -d QMAKE_CFLAGS = -nologo -Zc:wchar_t QMAKE_CFLAGS_WARN_ON = -W3 QMAKE_CFLAGS_WARN_OFF = -W0 -QMAKE_CFLAGS_RELEASE = -O2 -MD -QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi +QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_OPTIMIZE -MD +QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -MD -Zi QMAKE_CFLAGS_DEBUG = -Zi -MDd QMAKE_CFLAGS_YACC = QMAKE_CFLAGS_LTCG = -GL diff --git a/mkspecs/features/default_post.prf b/mkspecs/features/default_post.prf index 6d6707d6bb..d6caf870f7 100644 --- a/mkspecs/features/default_post.prf +++ b/mkspecs/features/default_post.prf @@ -38,7 +38,14 @@ force_debug_info { QMAKE_LFLAGS_RELEASE = $$QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO } -optimize_full { +optimize_size { + !isEmpty(QMAKE_CFLAGS_OPTIMIZE):!isEmpty(QMAKE_CFLAGS_OPTIMIZE_SIZE) { + QMAKE_CFLAGS_RELEASE -= $$QMAKE_CFLAGS_OPTIMIZE + QMAKE_CXXFLAGS_RELEASE -= $$QMAKE_CFLAGS_OPTIMIZE + QMAKE_CFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE_SIZE + QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE_SIZE + } +} else: optimize_full { !isEmpty(QMAKE_CFLAGS_OPTIMIZE):!isEmpty(QMAKE_CFLAGS_OPTIMIZE_FULL) { QMAKE_CFLAGS_RELEASE -= $$QMAKE_CFLAGS_OPTIMIZE QMAKE_CXXFLAGS_RELEASE -= $$QMAKE_CFLAGS_OPTIMIZE diff --git a/mkspecs/features/file_copies.prf b/mkspecs/features/file_copies.prf index 4ebf41c78f..a3520ba549 100644 --- a/mkspecs/features/file_copies.prf +++ b/mkspecs/features/file_copies.prf @@ -45,11 +45,9 @@ for (cp, COPIES) { } $${pfx}.input = $${pfx}.files !$$dir: \ - $${pfx}.commands = $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT_PATH} - else: !copy_dir_files: \ - $${pfx}.commands = $$QMAKE_COPY_DIR ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT_PATH} + $${pfx}.commands = $(QINSTALL_FILE) ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT} else: \ - $${pfx}.commands = $$QMAKE_COPY_DIR ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT} + $${pfx}.commands = $(QINSTALL_DIR) ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT} $${pfx}.name = COPY ${QMAKE_FILE_IN} $${pfx}.CONFIG = no_link no_clean target_predeps QMAKE_EXTRA_COMPILERS += $${pfx} diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index 2b3faeb21b..966c43108c 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -575,11 +575,14 @@ defineTest(qtConfLibrary_pkgConfig) { } qtRunLoggedCommand("$$pkg_config --modversion $$args", version)|return(false) - qtRunLoggedCommand("$$pkg_config --libs-only-L --libs-only-l $$args", $${1}.libs)|return(false) + qtRunLoggedCommand("$$pkg_config --libs-only-L $$args", libpaths)|return(false) + qtRunLoggedCommand("$$pkg_config --libs-only-l $$args", libs)|return(false) qtRunLoggedCommand("$$pkg_config --cflags $$args", $${1}.cflags)|return(false) version ~= s/[^0-9.].*$// $${1}.version = $$first(version) export($${1}.version) + $${1}.libs = $$libpaths $$libs + export($${1}.libs) return(true) } @@ -1958,6 +1961,15 @@ qtConfCheckErrors() error() } +QMAKE_CONFIG_VERBOSE = $$eval(config.input.verbose) +isEmpty(QMAKE_CONFIG_VERBOSE): \ + QMAKE_CONFIG_VERBOSE = false +QMAKE_CONFIG_LOG = $$OUT_PWD/config.log +write_file($$QMAKE_CONFIG_LOG, "") +qtLog("Command line: $$qtSystemQuote($$QMAKE_SAVED_ARGS)") +$$QMAKE_REDO_CONFIG: \ + qtLog("config.opt: $$qtSystemQuote($$QMAKE_EXTRA_REDO_ARGS)") + for (currentConfig, allConfigs) { qtConfSetModuleName() qtConfSetupModuleOutputs() @@ -1987,18 +1999,6 @@ equals(QMAKE_CONFIG_CACHE_USE, none) { write_file($$QMAKE_CONFIG_CACHE, cont) } -QMAKE_CONFIG_VERBOSE = $$eval(config.input.verbose) -isEmpty(QMAKE_CONFIG_VERBOSE): \ - QMAKE_CONFIG_VERBOSE = false -QMAKE_CONFIG_LOG = $$OUT_PWD/config.log -!equals(QMAKE_CONFIG_CACHE_USE, all): \ - write_file($$QMAKE_CONFIG_LOG, "") -else: \ - write_file($$QMAKE_CONFIG_LOG, $$list($$escape_expand(\\n)), append) -qtLog("Command line: $$qtSystemQuote($$QMAKE_SAVED_ARGS)") -$$QMAKE_REDO_CONFIG: \ - qtLog("config.opt: $$qtSystemQuote($$QMAKE_EXTRA_REDO_ARGS)") - CONFIG += qt_conf_tests_allowed logn() logn("Running configuration tests...") diff --git a/mkspecs/features/winrt/package_manifest.prf b/mkspecs/features/winrt/package_manifest.prf index 8f4a7a6eab..a00c84948c 100644 --- a/mkspecs/features/winrt/package_manifest.prf +++ b/mkspecs/features/winrt/package_manifest.prf @@ -63,7 +63,9 @@ VCLIBS = $${VCLIBS}.Debug else: \ VCLIBS = $${VCLIBS} - contains(MSVC_VER, "14.0"): VCLIBS = "$${VCLIBS}\" MinVersion=\"14.0.0.0\" Publisher=\"CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" + # VS 2017 still uses vclibs 140 + contains(MSVC_VER, "15.0"): VCLIBS = $$replace(VCLIBS, 150, 140) + VCLIBS = "$${VCLIBS}\" MinVersion=\"14.0.0.0\" Publisher=\"CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" WINRT_MANIFEST.dependencies += $$VCLIBS } diff --git a/mkspecs/hpux-acc-64/qmake.conf b/mkspecs/hpux-acc-64/qmake.conf deleted file mode 100644 index f0b879de83..0000000000 --- a/mkspecs/hpux-acc-64/qmake.conf +++ /dev/null @@ -1,116 +0,0 @@ -# -# qmake configuration for hpux-n64 -# -# We define _POSIX_C_SOURCE to 199506L when using threads, therefore -# we also need to redefine _HPUX_SOURCE. -# From pthread(3t): -# Some documentation will recommend the use of -D_REENTRANT for -# compilation. While this also functions properly, it is considered -# an obsolescent form. -# See pthread(3t) for more details. -# -# From the "HP aC++ Online Programmer's Guide": -# When +DA2.0W is specified: -# * 64-bit SVR4 Executable and Linking Format (ELF) object files -# are generated for PA-RISC 2.0. -# * The preprocessor predefined macro, __LP64__ is defined. -# * The correct path for 64-bit system and language libraries is -# selected. -# When +DD32 is specified: -# * The size of an int, long, or pointer data type is 32-bits. -# The size of an int data type is 32-bits. The size of a long or -# pointer data type is 64-bits. -# * This is the default, currently equivalent to +DA1.1 architecture. -# When +DD64 is specified: -# * The size of an int data type is 32-bits. The size of a long or -# pointer data type is 64-bits. -# * This is currently equivalent to +DA2.OW architecture. -# * The preprocessor predefined macro, __LP64__ is defined. -# Using +DS to Specify Instruction Scheduling: -# * By default, the compiler performs scheduling tuned for the system -# on which you are compiling, or, if specified, tuned for the setting -# of the +DA option. -# -# From the online "C/HP-UX Reference Manual": -# -Aa -# Enables strict ANSI C compliance. -# -Ae -# Enables ANSI C compliance, HP value-added features (as described -# for +e option), and _HPUX_SOURCE name space macro. It is equivalent -# to -Aa +e -D_HPUX_SOURCE. -# +e -# Enables the following HP value added features while compiling in -# ANSI C mode: sized enum, long long, long pointers, compiler supplied -# defaults for missing arguments to intrinsic calls, and $ in identifier -# HP C extensions. -# - -MAKEFILE_GENERATOR = UNIX -QMAKE_PLATFORM = hpux -QMAKE_COMPILER_DEFINES += __hpux __HP_aCC - -include(../common/unix.conf) - -QMAKE_COMPILER = hp_acc - -QMAKE_CC = cc -QMAKE_LEX = flex -QMAKE_LEXFLAGS = -QMAKE_YACC = yacc -QMAKE_YACCFLAGS = -d -QMAKE_CFLAGS = -Ae +DA2.0W -w -QMAKE_CFLAGS_WARN_ON = -QMAKE_CFLAGS_WARN_OFF = -w -QMAKE_CFLAGS_RELEASE = +O1 -QMAKE_CFLAGS_DEBUG = -g -QMAKE_CFLAGS_SHLIB = +Z -QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CFLAGS_YACC = -QMAKE_CFLAGS_THREAD = -D_POSIX_C_SOURCE=199506L -D_HPUX_SOURCE -mt - -QMAKE_CXX = aCC -QMAKE_CXXFLAGS = -AA +DA2.0W -w -D__STRICT_ANSI__ -D_HPUX_SOURCE -QMAKE_CXXFLAGS_DEPS = +M -QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG -QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB -QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC -QMAKE_CXXFLAGS_THREAD = -D_POSIX_C_SOURCE=199506L -mt - -QMAKE_INCDIR = -QMAKE_LIBDIR = -QMAKE_INCDIR_X11 = /usr/include/X11R6 -QMAKE_LIBDIR_X11 = /usr/lib/X11R6/pa20_64 -QMAKE_INCDIR_OPENGL = /opt/graphics/OpenGL/include /usr/contrib/X11R6/include -QMAKE_LIBDIR_OPENGL = /opt/graphics/OpenGL/lib/pa20_64 /usr/contrib/X11R6/lib/pa20_64 - -QMAKE_LINK = aCC -QMAKE_LINK_SHLIB = aCC -QMAKE_LFLAGS = -AA +DA2.0W -Wl,+s -QMAKE_LFLAGS_RELEASE = -O -QMAKE_LFLAGS_DEBUG = -g -QMAKE_LFLAGS_SHLIB = -b -Wl,-a,shared -QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB -QMAKE_LFLAGS_SONAME = -Wl,+h, -QMAKE_LFLAGS_THREAD = -QMAKE_LFLAGS_NOUNDEF = -Wl,+noallowunsats -QMAKE_LFLAGS_RPATH = -Wl,+b, -QMAKE_HPUX_SHLIB = 3 -QMAKE_EXTENSION_SHLIB = sl - -QMAKE_LIBS = -lm -QMAKE_LIBS_DYNLOAD = -ldl -QMAKE_LIBS_X11 = -lXext -lX11 -QMAKE_LIBS_OPENGL = -lGL -lXt -QMAKE_LIBS_THREAD = -lpthread -QMAKE_LIBS_YACC = -ly - -QMAKE_AR = ar cqs -QMAKE_OBJCOPY = objcopy -QMAKE_NM = nm -P -QMAKE_RANLIB = - -load(qt_config) diff --git a/mkspecs/hpux-acc-64/qplatformdefs.h b/mkspecs/hpux-acc-64/qplatformdefs.h deleted file mode 100644 index 0c64e664d2..0000000000 --- a/mkspecs/hpux-acc-64/qplatformdefs.h +++ /dev/null @@ -1,87 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QPLATFORMDEFS_H -#define QPLATFORMDEFS_H - -// Get Qt defines/settings - -#include "qglobal.h" - -// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs - -#include <unistd.h> - - -// We are hot - unistd.h should have turned on the specific APIs we requested - -#include <pthread.h> -#include <sys/pstat.h> -#define _REENTRANT -#include <dirent.h> -#include <fcntl.h> -#include <grp.h> -#include <pwd.h> -#include <signal.h> -#include <dlfcn.h> - -#include <sys/types.h> -#include <sys/ioctl.h> -#include <sys/ipc.h> -#include <sys/time.h> -#include <sys/shm.h> -#include <sys/socket.h> -#include <sys/stat.h> -#include <sys/wait.h> -#include <netinet/in.h> -#ifndef QT_NO_IPV6IFNAME -#include <net/if.h> -#endif - -#define QT_USE_XOPEN_LFS_EXTENSIONS -#define QT_NO_READDIR64 -#include "../common/posix/qplatformdefs.h" - -#undef QT_OPEN_LARGEFILE -#undef QT_SOCKLEN_T - -#define QT_OPEN_LARGEFILE 0 -#define QT_SOCKLEN_T int - -#endif // QPLATFORMDEFS_H diff --git a/mkspecs/hpux-acc-o64/qmake.conf b/mkspecs/hpux-acc-o64/qmake.conf deleted file mode 100644 index 750bb99155..0000000000 --- a/mkspecs/hpux-acc-o64/qmake.conf +++ /dev/null @@ -1,114 +0,0 @@ -# -# qmake configuration for hpux-o64 -# -# We define _POSIX_C_SOURCE to 199506L when using threads, therefore -# we also need to redefine _HPUX_SOURCE. -# From pthread(3t): -# Some documentation will recommend the use of -D_REENTRANT for -# compilation. While this also functions properly, it is considered -# an obsolescent form. -# See pthread(3t) for more details. -# -# From the "HP aC++ Online Programmer's Guide": -# When +DA2.0W is specified: -# * 64-bit SVR4 Executable and Linking Format (ELF) object files -# are generated for PA-RISC 2.0. -# * The preprocessor predefined macro, __LP64__ is defined. -# * The correct path for 64-bit system and language libraries is -# selected. -# When +DD32 is specified: -# * The size of an int, long, or pointer data type is 32-bits. -# The size of an int data type is 32-bits. The size of a long or -# pointer data type is 64-bits. -# * This is the default, currently equivalent to +DA1.1 architecture. -# When +DD64 is specified: -# * The size of an int data type is 32-bits. The size of a long or -# pointer data type is 64-bits. -# * This is currently equivalent to +DA2.OW architecture. -# * The preprocessor predefined macro, __LP64__ is defined. -# Using +DS to Specify Instruction Scheduling: -# * By default, the compiler performs scheduling tuned for the system -# on which you are compiling, or, if specified, tuned for the setting -# of the +DA option. -# -# From the online "C/HP-UX Reference Manual": -# -Aa -# Enables strict ANSI C compliance. -# -Ae -# Enables ANSI C compliance, HP value-added features (as described -# for +e option), and _HPUX_SOURCE name space macro. It is equivalent -# to -Aa +e -D_HPUX_SOURCE. -# +e -# Enables the following HP value added features while compiling in -# ANSI C mode: sized enum, long long, long pointers, compiler supplied -# defaults for missing arguments to intrinsic calls, and $ in identifier -# HP C extensions. -# - -MAKEFILE_GENERATOR = UNIX -QMAKE_PLATFORM = hpux - -include(../common/unix.conf) - -QMAKE_COMPILER = hp_acc - -QMAKE_CC = cc -QMAKE_LEX = flex -QMAKE_LEXFLAGS = -QMAKE_YACC = yacc -QMAKE_YACCFLAGS = -d -QMAKE_CFLAGS = -Ae +DA2.0 -w -QMAKE_CFLAGS_WARN_ON = -QMAKE_CFLAGS_WARN_OFF = -QMAKE_CFLAGS_RELEASE = -O +Oentrysched +Onolimit -QMAKE_CFLAGS_DEBUG = -y -g -QMAKE_CFLAGS_SHLIB = +Z -QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CFLAGS_YACC = -QMAKE_CFLAGS_THREAD = -D_POSIX_C_SOURCE=199506L -D_HPUX_SOURCE - -QMAKE_CXX = aCC -QMAKE_CXXFLAGS = +DA2.0 -w -D__STRICT_ANSI__ -D_HPUX_SOURCE -QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -QMAKE_CXXFLAGS_DEBUG = -g -QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB -QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC -QMAKE_CXXFLAGS_THREAD = -D_POSIX_C_SOURCE=199506L - -QMAKE_INCDIR = -QMAKE_LIBDIR = -QMAKE_INCDIR_X11 = /usr/include/X11R6 -QMAKE_LIBDIR_X11 = /usr/lib/X11R6 -QMAKE_INCDIR_OPENGL = /opt/graphics/OpenGL/include /usr/contrib/X11R6/include -QMAKE_LIBDIR_OPENGL = /opt/graphics/OpenGL/lib /usr/contrib/X11R6/lib - -QMAKE_LINK = aCC -QMAKE_LINK_SHLIB = aCC -QMAKE_LFLAGS = +DA2.0 -Wl,+s -QMAKE_LFLAGS_RELEASE = -O -QMAKE_LFLAGS_DEBUG = -QMAKE_LFLAGS_SHLIB = -b -QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB -QMAKE_LFLAGS_SONAME = -Wl,+h, -QMAKE_LFLAGS_NOUNDEF = -Wl,+noallowunsats -QMAKE_LFLAGS_RPATH = -Wl,+b, -QMAKE_HPUX_SHLIB = 2 -QMAKE_EXTENSION_SHLIB = sl - -QMAKE_LIBS = -lm -QMAKE_LIBS_DYNLOAD = -ldld -QMAKE_LIBS_X11 = -lXext -lX11 - -QMAKE_LIBS_OPENGL = -lGL -QMAKE_LIBS_THREAD = -lpthread -QMAKE_LIBS_YACC = -ly - -QMAKE_AR = ar cqs -QMAKE_OBJCOPY = objcopy -QMAKE_NM = nm -P -QMAKE_RANLIB = - -load(qt_config) diff --git a/mkspecs/hpux-acc-o64/qplatformdefs.h b/mkspecs/hpux-acc-o64/qplatformdefs.h deleted file mode 100644 index 0e9dc48d9a..0000000000 --- a/mkspecs/hpux-acc-o64/qplatformdefs.h +++ /dev/null @@ -1,85 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QPLATFORMDEFS_H -#define QPLATFORMDEFS_H - -// Get Qt defines/settings - -#include "qglobal.h" - -// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs - -#include <unistd.h> - - -// We are hot - unistd.h should have turned on the specific APIs we requested - - -#include <pthread.h> -#include <dirent.h> -#include <fcntl.h> -#include <grp.h> -#include <pwd.h> -#include <signal.h> -#include <dl.h> -#define QT_HPUX_LD -#define QT_NO_LIBRARY_UNLOAD - -#include <sys/types.h> -#include <sys/ioctl.h> -#include <sys/ipc.h> -#include <sys/time.h> -#include <sys/shm.h> -#include <sys/socket.h> -#include <sys/stat.h> -#include <sys/wait.h> -#include <netinet/in.h> -#ifndef QT_NO_IPV6IFNAME -#include <net/if.h> -#endif - -#define QT_USE_XOPEN_LFS_EXTENSIONS -#define QT_NO_READDIR64 -#include "../common/posix/qplatformdefs.h" - -#undef QT_SOCKLEN_T -#define QT_SOCKLEN_T int - -#endif // QPLATFORMDEFS_H diff --git a/mkspecs/hpux-acc/qmake.conf b/mkspecs/hpux-acc/qmake.conf deleted file mode 100644 index 2f1ce1054c..0000000000 --- a/mkspecs/hpux-acc/qmake.conf +++ /dev/null @@ -1,95 +0,0 @@ -# -# qmake configuration for hpux-acc -# -# We define _POSIX_C_SOURCE to 199506L when using threads, therefore -# we also need to redefine _HPUX_SOURCE. See pthread(3t) for more details. -# -# From the "HP aC++ Online Programmer's Guide": -# Using +DS to Specify Instruction Scheduling: -# * By default, the compiler performs scheduling tuned for the system -# on which you are compiling, or, if specified, tuned for the setting -# of the +DA option. -# -# From the online "C/HP-UX Reference Manual": -# -Aa -# Enables strict ANSI C compliance. -# -Ae -# Enables ANSI C compliance, HP value-added features (as described -# for +e option), and _HPUX_SOURCE name space macro. It is equivalent -# to -Aa +e -D_HPUX_SOURCE. -# +e -# Enables the following HP value added features while compiling in -# ANSI C mode: sized enum, long long, long pointers, compiler supplied -# defaults for missing arguments to intrinsic calls, and $ in identifier -# HP C extensions. -# - -MAKEFILE_GENERATOR = UNIX -QMAKE_PLATFORM = hpux -QMAKE_COMPILER_DEFINES += __hpux __HP_aCC - -include(../common/unix.conf) - -QMAKE_COMPILER = hp_acc - -QMAKE_CC = cc -QMAKE_LEX = flex -QMAKE_LEXFLAGS = -QMAKE_YACC = yacc -QMAKE_YACCFLAGS = -d -QMAKE_CFLAGS = -Ae +DAportable -w -QMAKE_CFLAGS_WARN_ON = -QMAKE_CFLAGS_WARN_OFF = -w -QMAKE_CFLAGS_RELEASE = +O1 -QMAKE_CFLAGS_DEBUG = -g -QMAKE_CFLAGS_SHLIB = +Z -QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CFLAGS_YACC = -QMAKE_CFLAGS_THREAD = -D_POSIX_C_SOURCE=199506L -D_HPUX_SOURCE -mt - -QMAKE_CXX = aCC -QMAKE_CXXFLAGS = -AA +DAportable -w -D__STRICT_ANSI__ -D_HPUX_SOURCE -QMAKE_CXXFLAGS_DEPS = +M -QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG -QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB -QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC -QMAKE_CXXFLAGS_THREAD = -D_POSIX_C_SOURCE=199506L -mt - -QMAKE_INCDIR = -QMAKE_LIBDIR = -QMAKE_INCDIR_X11 = /usr/include/X11R6 -QMAKE_LIBDIR_X11 = /usr/lib/X11R6 -QMAKE_INCDIR_OPENGL = /opt/graphics/OpenGL/include /usr/contrib/X11R6/include -QMAKE_LIBDIR_OPENGL = /opt/graphics/OpenGL/lib /usr/contrib/X11R6/lib - -QMAKE_LINK = aCC -QMAKE_LINK_SHLIB = aCC -QMAKE_LFLAGS = -AA +DAportable -Wl,+s -QMAKE_LFLAGS_RELEASE = -O -QMAKE_LFLAGS_DEBUG = -g -QMAKE_LFLAGS_SHLIB = -b -Wl,-a,shared -QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB -QMAKE_LFLAGS_SONAME = -Wl,+h, -QMAKE_LFLAGS_THREAD = -QMAKE_LFLAGS_NOUNDEF = -Wl,+noallowunsats -QMAKE_LFLAGS_RPATH = -Wl,+b, -QMAKE_HPUX_SHLIB = 1 -QMAKE_EXTENSION_SHLIB = sl - -QMAKE_LIBS = -lm -QMAKE_LIBS_DYNLOAD = -ldld -QMAKE_LIBS_X11 = -lXext -lX11 -QMAKE_LIBS_OPENGL = -lGL -lXt -QMAKE_LIBS_THREAD = -lpthread -QMAKE_LIBS_YACC = -ly - -QMAKE_AR = ar cqs -QMAKE_OBJCOPY = objcopy -QMAKE_NM = nm -P -QMAKE_RANLIB = - -load(qt_config) diff --git a/mkspecs/hpux-acc/qplatformdefs.h b/mkspecs/hpux-acc/qplatformdefs.h deleted file mode 100644 index a6942ad58f..0000000000 --- a/mkspecs/hpux-acc/qplatformdefs.h +++ /dev/null @@ -1,96 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QPLATFORMDEFS_H -#define QPLATFORMDEFS_H - -// Get Qt defines/settings - -#include "qglobal.h" - -// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs - -#include <unistd.h> - - -// We are hot - unistd.h should have turned on the specific APIs we requested - - -#include <pthread.h> -#include <sys/pstat.h> -#define _REENTRANT -#include <dirent.h> -#include <fcntl.h> -#include <grp.h> -#include <pwd.h> -#include <signal.h> -#include <dl.h> -#define QT_HPUX_LD -#define QT_NO_LIBRARY_UNLOAD - -#include <sys/types.h> -#include <sys/ioctl.h> -#include <sys/ipc.h> -#include <sys/time.h> -#include <sys/shm.h> -#include <sys/socket.h> -#include <sys/stat.h> -#include <sys/wait.h> -#include <netinet/in.h> -#ifndef QT_NO_IPV6IFNAME -#include <net/if.h> -#endif - -#define QT_USE_XOPEN_LFS_EXTENSIONS -#define QT_NO_READDIR64 -#include "../common/posix/qplatformdefs.h" - -#undef QT_OPEN_LARGEFILE -#undef QT_SOCKLEN_T - -#define QT_OPEN_LARGEFILE 0 -#define QT_SOCKLEN_T int - -// presence of _XOPEN_UNIX can be used to detect HP-UX 10 or higher -#if !defined(_XOPEN_UNIX) -// HP-UX 9's select() didn't accept fd_set, yet. -#define select(a,b,c,d,e) select((a), (int *)(b), (int *)(c), (int *)(d), (e)) -#endif - -#endif // QPLATFORMDEFS_H diff --git a/mkspecs/hpux-g++-64/qmake.conf b/mkspecs/hpux-g++-64/qmake.conf deleted file mode 100644 index a27333fa18..0000000000 --- a/mkspecs/hpux-g++-64/qmake.conf +++ /dev/null @@ -1,78 +0,0 @@ -# -# qmake configuration for hpux-g++-64 -# -# We define _POSIX_C_SOURCE to 199506L when using threads, -# therefore we also need to redefine _HPUX_SOURCE. -# - -MAKEFILE_GENERATOR = UNIX -QMAKE_PLATFORM = hpux - -include(../common/unix.conf) - -QMAKE_COMPILER = gcc - -QMAKE_CC = gcc -QMAKE_LEX = flex -QMAKE_LEXFLAGS = -QMAKE_YACC = yacc -QMAKE_YACCFLAGS = -d -QMAKE_CFLAGS = -QMAKE_CFLAGS_DEPS = -M -QMAKE_CFLAGS_WARN_ON = -Wall -W -QMAKE_CFLAGS_WARN_OFF = -w -QMAKE_CFLAGS_RELEASE = -O2 -QMAKE_CFLAGS_DEBUG = -g -QMAKE_CFLAGS_SHLIB = -fPIC -QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses -QMAKE_CFLAGS_THREAD = -D_POSIX_C_SOURCE=199506L -D_HPUX_SOURCE - -QMAKE_CXX = g++ -QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -D_HPUX_SOURCE -QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS -QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG -QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB -QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC -QMAKE_CXXFLAGS_THREAD = -D_POSIX_C_SOURCE=199506L - -QMAKE_INCDIR = -QMAKE_LIBDIR = /usr/lib/pa20_64 -QMAKE_INCDIR_X11 = /usr/include/X11R6 -QMAKE_LIBDIR_X11 = /usr/lib/X11R6/pa20_64 -QMAKE_INCDIR_OPENGL = /opt/Mesa/include /usr/contrib/X11R6/include -QMAKE_LIBDIR_OPENGL = /opt/Mesa/lib/pa20_64 /usr/contrib/X11R6/lib/pa20_64 - -QMAKE_LINK = g++ -QMAKE_LINK_SHLIB = g++ -QMAKE_LINK_C = gcc -QMAKE_LINK_C_SHLIB = gcc -QMAKE_LFLAGS = -Wl,+s -lpthread -QMAKE_LFLAGS_RELEASE = -QMAKE_LFLAGS_DEBUG = -QMAKE_LFLAGS_SHLIB = -fPIC -shared -QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB -QMAKE_LFLAGS_SONAME = -Wl,+h, -QMAKE_LFLAGS_THREAD = -QMAKE_LFLAGS_NOUNDEF = -Wl,+noallowunsats -QMAKE_LFLAGS_RPATH = -Wl,+b, -QMAKE_HPUX_SHLIB = 3 -QMAKE_EXTENSION_SHLIB = sl - -QMAKE_LIBS = -lm -QMAKE_LIBS_DYNLOAD = -ldld -QMAKE_LIBS_X11 = -lXext -lX11 -QMAKE_LIBS_OPENGL = -lGL -QMAKE_LIBS_THREAD = -lpthread -QMAKE_LIBS_YACC = -ly - -QMAKE_AR = ar cqs -QMAKE_OBJCOPY = objcopy -QMAKE_NM = nm -P -QMAKE_RANLIB = - -load(qt_config) diff --git a/mkspecs/hpux-g++-64/qplatformdefs.h b/mkspecs/hpux-g++-64/qplatformdefs.h deleted file mode 100644 index 84ded7bd40..0000000000 --- a/mkspecs/hpux-g++-64/qplatformdefs.h +++ /dev/null @@ -1,81 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QPLATFORMDEFS_H -#define QPLATFORMDEFS_H - -// Get Qt defines/settings - -#include "qglobal.h" - -// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs - -#include <unistd.h> - - -// We are hot - unistd.h should have turned on the specific APIs we requested - - -#include <pthread.h> -#define _REENTRANT -#include <dirent.h> -#include <fcntl.h> -#include <grp.h> -#include <pwd.h> -#include <signal.h> -#include <dlfcn.h> - -#include <sys/types.h> -#include <sys/ioctl.h> -#include <sys/ipc.h> -#include <sys/time.h> -#include <sys/shm.h> -#include <sys/socket.h> -#include <sys/stat.h> -#include <sys/wait.h> -#include <netinet/in.h> -#ifndef QT_NO_IPV6IFNAME -#include <net/if.h> -#endif - -#define QT_USE_XOPEN_LFS_EXTENSIONS -#define QT_NO_READDIR64 -#include "../common/posix/qplatformdefs.h" - -#endif // QPLATFORMDEFS_H diff --git a/mkspecs/hpux-g++/qmake.conf b/mkspecs/hpux-g++/qmake.conf deleted file mode 100644 index bfd814b0cb..0000000000 --- a/mkspecs/hpux-g++/qmake.conf +++ /dev/null @@ -1,78 +0,0 @@ -# -# qmake configuration for hpux-g++ -# -# We define _POSIX_C_SOURCE to 199506L when using threads, -# therefore we also need to redefine _HPUX_SOURCE. -# - -MAKEFILE_GENERATOR = UNIX -QMAKE_PLATFORM = hpux - -include(../common/unix.conf) - -QMAKE_COMPILER = gcc - -QMAKE_CC = gcc -QMAKE_LEX = flex -QMAKE_LEXFLAGS = -QMAKE_YACC = yacc -QMAKE_YACCFLAGS = -d -QMAKE_CFLAGS = -QMAKE_CFLAGS_DEPS = -M -QMAKE_CFLAGS_WARN_ON = -Wall -W -QMAKE_CFLAGS_WARN_OFF = -w -QMAKE_CFLAGS_RELEASE = -O2 -QMAKE_CFLAGS_DEBUG = -g -QMAKE_CFLAGS_SHLIB = -fPIC -QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses -QMAKE_CFLAGS_THREAD = -D_POSIX_C_SOURCE=199506L -D_HPUX_SOURCE - -QMAKE_CXX = g++ -QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -D_HPUX_SOURCE -DGLU_VERSION_1_2 -QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS -QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG -QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB -QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC -QMAKE_CXXFLAGS_THREAD = -D_POSIX_C_SOURCE=199506L - -QMAKE_INCDIR = -QMAKE_LIBDIR = -QMAKE_INCDIR_X11 = -QMAKE_LIBDIR_X11 = /usr/lib/X11R6 -QMAKE_INCDIR_OPENGL = /opt/Mesa/include /usr/contrib/X11R6/include -QMAKE_LIBDIR_OPENGL = /opt/Mesa/lib /usr/contrib/X11R6/lib - -QMAKE_LINK = g++ -QMAKE_LINK_SHLIB = g++ -QMAKE_LINK_C = gcc -QMAKE_LINK_C_SHLIB = gcc -QMAKE_LFLAGS = -Wl,+s -QMAKE_LFLAGS_RELEASE = -QMAKE_LFLAGS_DEBUG = -QMAKE_LFLAGS_SHLIB = -fPIC -shared -QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB -QMAKE_LFLAGS_SONAME = -Wl,+h, -QMAKE_LFLAGS_THREAD = -QMAKE_LFLAGS_NOUNDEF = -Wl,+noallowunsats -QMAKE_LFLAGS_RPATH = -Wl,+b, -QMAKE_HPUX_SHLIB = 1 -QMAKE_EXTENSION_SHLIB = sl - -QMAKE_LIBS = -QMAKE_LIBS_DYNLOAD = -ldld -QMAKE_LIBS_X11 = -lXext -lX11 -lm -QMAKE_LIBS_OPENGL = -lGL -QMAKE_LIBS_THREAD = -lpthread -QMAKE_LIBS_YACC = -ly - -QMAKE_AR = ar cqs -QMAKE_OBJCOPY = objcopy -QMAKE_NM = nm -P -QMAKE_RANLIB = - -load(qt_config) diff --git a/mkspecs/hpux-g++/qplatformdefs.h b/mkspecs/hpux-g++/qplatformdefs.h deleted file mode 100644 index 4338bb670e..0000000000 --- a/mkspecs/hpux-g++/qplatformdefs.h +++ /dev/null @@ -1,92 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QPLATFORMDEFS_H -#define QPLATFORMDEFS_H - -// Get Qt defines/settings - -#include "qglobal.h" - -// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs - -#include <unistd.h> - - -// We are hot - unistd.h should have turned on the specific APIs we requested - -#define _REENTRANT // otherwise we don't get readdir_r, etc. -#include <sys/pstat.h> -#include <pthread.h> -#include <dirent.h> -#include <fcntl.h> -#include <grp.h> -#include <pwd.h> -#include <signal.h> -#include <dl.h> -#define QT_HPUX_LD -#define QT_NO_LIBRARY_UNLOAD - -#include <sys/types.h> -#include <sys/ioctl.h> -#include <sys/ipc.h> -#include <sys/time.h> -#include <sys/shm.h> -#include <sys/socket.h> -#include <sys/stat.h> -#include <sys/wait.h> -#include <netinet/in.h> -#ifndef QT_NO_IPV6IFNAME -#include <net/if.h> -#endif - -#define QT_USE_XOPEN_LFS_EXTENSIONS -#define QT_NO_READDIR64 -#include "../common/posix/qplatformdefs.h" - -#undef QT_SOCKLEN_T -#define QT_SOCKLEN_T int - -// presence of _XOPEN_UNIX can be used to detect HP-UX 10 or higher -#if !defined(_XOPEN_UNIX) -// HP-UX 9's select() didn't accept fd_set, yet. -#define select(a,b,c,d,e) select((a), (int *)(b), (int *)(c), (int *)(d), (e)) -#endif - -#endif // QPLATFORMDEFS_H diff --git a/mkspecs/hpuxi-acc-32/qmake.conf b/mkspecs/hpuxi-acc-32/qmake.conf deleted file mode 100644 index fed3b112d1..0000000000 --- a/mkspecs/hpuxi-acc-32/qmake.conf +++ /dev/null @@ -1,70 +0,0 @@ -# -# qmake configuration for hpuxi-acc-32 -# - -MAKEFILE_GENERATOR = UNIX -QMAKE_PLATFORM = hpux - -include(../common/unix.conf) - -QMAKE_COMPILER = hp_acc - -QMAKE_CC = cc -QMAKE_LEX = lex -QMAKE_LEXFLAGS = -QMAKE_YACC = yacc -QMAKE_YACCFLAGS = -d -QMAKE_CFLAGS = +DSitanium -w -QMAKE_CFLAGS_WARN_ON = -QMAKE_CFLAGS_WARN_OFF = -w -QMAKE_CFLAGS_RELEASE = +O1 -QMAKE_CFLAGS_DEBUG = -g -QMAKE_CFLAGS_SHLIB = +Z -QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CFLAGS_YACC = -QMAKE_CFLAGS_THREAD = -D_POSIX_C_SOURCE=199506L -D_HPUX_SOURCE -D_REENTRANT -mt - -QMAKE_CXX = aCC -QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -D__STRICT_ANSI__ -D_HPUX_SOURCE -QMAKE_CXXFLAGS_DEPS = +M -QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG -QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB -QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC -QMAKE_CXXFLAGS_THREAD = -D_POSIX_C_SOURCE=199506L -D_REENTRANT -mt - -QMAKE_INCDIR = -QMAKE_LIBDIR = -QMAKE_INCDIR_X11 = /usr/include/X11R6 -QMAKE_LIBDIR_X11 = /usr/lib/hpux32/X11R6 -QMAKE_INCDIR_OPENGL = /opt/graphics/OpenGL/include /usr/contrib/X11R6/include -QMAKE_LIBDIR_OPENGL = /opt/graphics/OpenGL/lib/hpux32 /usr/contrib/X11R6/lib/hpux32 - -QMAKE_LINK = aCC -QMAKE_LINK_SHLIB = aCC -QMAKE_LFLAGS = +DSitanium -Wl,+s -QMAKE_LFLAGS_RELEASE = -O -QMAKE_LFLAGS_DEBUG = -g -QMAKE_LFLAGS_SHLIB = -b -Wl,-a,shared -QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB -QMAKE_LFLAGS_SONAME = -Wl,+h, -QMAKE_LFLAGS_NOUNDEF = -Wl,+noallowunsats -QMAKE_LFLAGS_THREAD = -QMAKE_LFLAGS_RPATH = - -QMAKE_LIBS = -lm -QMAKE_LIBS_DYNLOAD = -ldl -QMAKE_LIBS_X11 = -lXext -lX11 -QMAKE_LIBS_OPENGL = -lGL -lXt -QMAKE_LIBS_THREAD = -lpthread -QMAKE_LIBS_YACC = -ly - -QMAKE_AR = ar cqs -QMAKE_OBJCOPY = objcopy -QMAKE_NM = nm -P -QMAKE_RANLIB = - -load(qt_config) diff --git a/mkspecs/hpuxi-acc-32/qplatformdefs.h b/mkspecs/hpuxi-acc-32/qplatformdefs.h deleted file mode 100644 index f9917b2a08..0000000000 --- a/mkspecs/hpuxi-acc-32/qplatformdefs.h +++ /dev/null @@ -1,88 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QPLATFORMDEFS_H -#define QPLATFORMDEFS_H - -// Get Qt defines/settings - -#define _INCLUDE_LONGLONG -#include "qglobal.h" - -// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs - -#include <unistd.h> - - -// We are hot - unistd.h should have turned on the specific APIs we requested - -#define _REENTRANT -#include <pthread.h> -#include <sys/pstat.h> -#include <dirent.h> -#include <fcntl.h> -#include <grp.h> -#include <pwd.h> -#include <signal.h> -#include <dl.h> - -#include <sys/types.h> -#include <sys/ioctl.h> -#include <sys/ipc.h> -#include <sys/time.h> -#include <sys/shm.h> -#include <sys/socket.h> -#include <sys/stat.h> -#include <sys/wait.h> -#include <netinet/in.h> -#ifndef QT_NO_IPV6IFNAME -#include <net/if.h> -#endif - -#define QT_USE_XOPEN_LFS_EXTENSIONS -#define QT_NO_READDIR64 -#include "../common/posix/qplatformdefs.h" - -#undef QT_OPEN_LARGEFILE -#undef QT_SOCKLEN_T - -#define QT_OPEN_LARGEFILE 0 -#define QT_SOCKLEN_T int - -#endif // QPLATFORMDEFS_H diff --git a/mkspecs/hpuxi-acc-64/qmake.conf b/mkspecs/hpuxi-acc-64/qmake.conf deleted file mode 100644 index 20578cb377..0000000000 --- a/mkspecs/hpuxi-acc-64/qmake.conf +++ /dev/null @@ -1,113 +0,0 @@ -# -# qmake configuration for hpuxi-acc-64 -# -# We define _POSIX_C_SOURCE to 199506L when using threads, therefore -# we also need to redefine _HPUX_SOURCE. -# From pthread(3t): -# Some documentation will recommend the use of -D_REENTRANT for -# compilation. While this also functions properly, it is considered -# an obsolescent form. -# See pthread(3t) for more details. -# -# From the "HP aC++ Online Programmer's Guide": -# When +DA2.0W is specified: -# * 64-bit SVR4 Executable and Linking Format (ELF) object files -# are generated for PA-RISC 2.0. -# * The preprocessor predefined macro, __LP64__ is defined. -# * The correct path for 64-bit system and language libraries is -# selected. -# When +DD32 is specified: -# * The size of an int, long, or pointer data type is 32-bits. -# The size of an int data type is 32-bits. The size of a long or -# pointer data type is 64-bits. -# * This is the default, currently equivalent to +DA1.1 architecture. -# When +DD64 is specified: -# * The size of an int data type is 32-bits. The size of a long or -# pointer data type is 64-bits. -# * This is currently equivalent to +DA2.OW architecture. -# * The preprocessor predefined macro, __LP64__ is defined. -# Using +DS to Specify Instruction Scheduling: -# * By default, the compiler performs scheduling tuned for the system -# on which you are compiling, or, if specified, tuned for the setting -# of the +DA option. -# -# From the online "C/HP-UX Reference Manual": -# -Aa -# Enables strict ANSI C compliance. -# -Ae -# Enables ANSI C compliance, HP value-added features (as described -# for +e option), and _HPUX_SOURCE name space macro. It is equivalent -# to -Aa +e -D_HPUX_SOURCE. -# +e -# Enables the following HP value added features while compiling in -# ANSI C mode: sized enum, long long, long pointers, compiler supplied -# defaults for missing arguments to intrinsic calls, and $ in identifier -# HP C extensions. -# - -MAKEFILE_GENERATOR = UNIX -QMAKE_PLATFORM = hpux - -include(../common/unix.conf) - -QMAKE_COMPILER = hp_acc - -QMAKE_CC = cc -QMAKE_LEX = lex -QMAKE_LEXFLAGS = -QMAKE_YACC = yacc -QMAKE_YACCFLAGS = -d -QMAKE_CFLAGS = +DD64 +DSitanium -w -QMAKE_CFLAGS_WARN_ON = -QMAKE_CFLAGS_WARN_OFF = -w -QMAKE_CFLAGS_RELEASE = +O1 -QMAKE_CFLAGS_DEBUG = -g -QMAKE_CFLAGS_SHLI = +Z -QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CFLAGS_YACC = -QMAKE_CFLAGS_THREAD = -D_POSIX_C_SOURCE=199506L -D_HPUX_SOURCE -D_REENTRANT -mt - -QMAKE_CXX = aCC -QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -D__STRICT_ANSI__ -D_HPUX_SOURCE -QMAKE_CXXFLAGS_DEPS = +M -QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG -QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CXXFLAGS_STATIC_LB = $$QMAKE_CFLAGS_STATIC_LIB -QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC -QMAKE_CXXFLAGS_THREAD = -D_POSIX_C_SOURCE=199506L -D_REENTRANT -mt - -QMAKE_INCDIR = -QMAKE_LIBDIR = -QMAKE_INCDIR_X11 = /usr/include/X11R6 -QMAKE_LIBDIR_X11 = /usr/lib/hpux64/X11R6 -QMAKE_INCDIR_OPENGL = /opt/graphics/OpenGL/include /usr/contrib/X11R6/include -QMAKE_LIBDIR_OPENGL = /opt/graphics/OpenGL/lib/hpux64 /usr/contrib/X11R6/lib/hpux64 - -QMAKE_LINK = aCC -QMAKE_LINK_SHLIB = aCC -QMAKE_LFLAGS = +DD64 +DSitanium -Wl,+s -QMAKE_LFLAGS_RELEASE = -O -QMAKE_LFLAGS_DEBUG = -g -QMAKE_LFLAGS_SHLIB = -b -Wl,-a,shared -QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB -QMAKE_LFLAGS_SONAME = -Wl,+h, -QMAKE_LFLAGS_THREAD = -QMAKE_LFLAGS_NOUNDEF = -Wl,+noallowunsats -QMAKE_LFLAGS_RPATH = - -QMAKE_LIBS = -lm -QMAKE_LIBS_DYNLOAD = -ldl -QMAKE_LIBS_X11 = -lXext -lX11 -QMAKE_LIBS_OPENGL = -lGL -lXt -QMAKE_LIBS_THREAD = -lpthread -QMAKE_LIBS_YACC = -ly - -QMAKE_AR = ar cqs -QMAKE_OBJCOPY = objcopy -QMAKE_NM = nm -P -QMAKE_RANLIB = - -load(qt_config) diff --git a/mkspecs/hpuxi-acc-64/qplatformdefs.h b/mkspecs/hpuxi-acc-64/qplatformdefs.h deleted file mode 100644 index f9917b2a08..0000000000 --- a/mkspecs/hpuxi-acc-64/qplatformdefs.h +++ /dev/null @@ -1,88 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QPLATFORMDEFS_H -#define QPLATFORMDEFS_H - -// Get Qt defines/settings - -#define _INCLUDE_LONGLONG -#include "qglobal.h" - -// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs - -#include <unistd.h> - - -// We are hot - unistd.h should have turned on the specific APIs we requested - -#define _REENTRANT -#include <pthread.h> -#include <sys/pstat.h> -#include <dirent.h> -#include <fcntl.h> -#include <grp.h> -#include <pwd.h> -#include <signal.h> -#include <dl.h> - -#include <sys/types.h> -#include <sys/ioctl.h> -#include <sys/ipc.h> -#include <sys/time.h> -#include <sys/shm.h> -#include <sys/socket.h> -#include <sys/stat.h> -#include <sys/wait.h> -#include <netinet/in.h> -#ifndef QT_NO_IPV6IFNAME -#include <net/if.h> -#endif - -#define QT_USE_XOPEN_LFS_EXTENSIONS -#define QT_NO_READDIR64 -#include "../common/posix/qplatformdefs.h" - -#undef QT_OPEN_LARGEFILE -#undef QT_SOCKLEN_T - -#define QT_OPEN_LARGEFILE 0 -#define QT_SOCKLEN_T int - -#endif // QPLATFORMDEFS_H diff --git a/mkspecs/irix-cc-64/qmake.conf b/mkspecs/irix-cc-64/qmake.conf deleted file mode 100644 index ad5c6a3ee1..0000000000 --- a/mkspecs/irix-cc-64/qmake.conf +++ /dev/null @@ -1,108 +0,0 @@ -# -# qmake configuration for irix-cc-64 -# -# From cc(1): -# -64 -# Generates a 64-bit object. This defaults to -mips4 if -mips3 has -# not been specified. -# -LANG: ... -# The language feature option group controls the source language -# interpretation assumed by the compiler. The individual controls -# in this group are as follows: -# ansi-for-init-scope [ = ( ON|OFF ) ] -# Enables or disables the ANSI scoping rules for for-init -# declarations (the scope of the name declared extends to -# the end of the for statement). This enables the behavior -# that is required by the C++ standard. The default value -# is OFF, which is the ARM behavior (the scope of the name -# declared extends to the end of the block enclosing the for -# statement). -# bool [ = ( ON|OFF ) ] -# Enables or disables the predefined bool data type, along -# with the predefined values true and false. Use this option -# only to suppress this type in old code that defines bool -# itself. Because this option changes the mangling of function -# names with bool parameters, all files comprising a program -# should be compiled with consistent options. -# Default is ON. -# The _BOOL feature macro can be used in #ifdefs to do conditional -# compilation based on whether or not this option is enabled. -# std -# Enables use of the standard C++ library and standard- -# conforming iostream library. Specifying this flag also -# triggers other standard-conforming behavior, such as the -# new rules for the scope of for loop initializers. -# - -MAKEFILE_GENERATOR = UNIX -QMAKE_PLATFORM = irix -QMAKE_COMPILER_DEFINES += __sgi __EDG - -include(../common/unix.conf) - -QMAKE_COMPILER = sgi_cc - -QMAKE_CC = cc -QMAKE_LEX = flex -QMAKE_LEXFLAGS = -QMAKE_YACC = yacc -QMAKE_YACCFLAGS = -d -QMAKE_CFLAGS = -64 -signed -woff 1209,1355,1375,1424,3303 -QMAKE_CFLAGS_DEPS = -M -QMAKE_CFLAGS_WARN_ON = -fullwarn -QMAKE_CFLAGS_WARN_OFF = -QMAKE_CFLAGS_RELEASE = -O2 -OPT:Olimit=3000 -QMAKE_CFLAGS_DEBUG = -g -QMAKE_CFLAGS_SHLIB = -QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CFLAGS_YACC = -woff 1110,1174,3262 -QMAKE_CFLAGS_THREAD = -QMAKE_CFLAGS_EXCEPTIONS_OFF = -LANG:exceptions=off - -QMAKE_CXX = CC -QMAKE_CXXFLAGS = -64 -signed -LANG:std:libc_in_namespace_std=ON -woff 1209,1355,1375,1424,3303 -QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS -QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG -QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB -QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC -QMAKE_CXXFLAGS_THREAD = -QMAKE_CXXFLAGS_EXCEPTIONS_OFF = $$QMAKE_CFLAGS_EXCEPTIONS_OFF - -QMAKE_INCDIR = -QMAKE_LIBDIR = -QMAKE_INCDIR_X11 = -QMAKE_LIBDIR_X11 = -QMAKE_INCDIR_OPENGL = -QMAKE_LIBDIR_OPENGL = - -QMAKE_LINK = CC -QMAKE_LINK_SHLIB = CC -QMAKE_LFLAGS = -64 -QMAKE_LFLAGS_RELEASE = -QMAKE_LFLAGS_DEBUG = -g -QMAKE_LFLAGS_SHLIB = -shared -QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB -QMAKE_LFLAGS_SONAME = -Wl,-soname, -QMAKE_LFLAGS_THREAD = -QMAKE_LFLAGS_NOUNDEF = -Wl,-no_unresolved -QMAKE_LFLAGS_RPATH = -Wl,-rpath, -QMAKE_LFLAGS_EXCEPTIONS_OFF = $$QMAKE_CFLAGS_EXCEPTIONS_OFF - -QMAKE_LIBS = -QMAKE_LIBS_DYNLOAD = -QMAKE_LIBS_X11 = -lXext -lX11 -lm -QMAKE_LIBS_OPENGL = -lGL -lm -QMAKE_LIBS_THREAD = -lpthread - -QMAKE_AR = CC -ar -o -QMAKE_OBJCOPY = objcopy -QMAKE_NM = nm -P -QMAKE_RANLIB = - -QMAKE_CLEAN = -r $(OBJECTS_DIR)so_locations $(OBJECTS_DIR)ii_files - -load(qt_config) diff --git a/mkspecs/irix-cc-64/qplatformdefs.h b/mkspecs/irix-cc-64/qplatformdefs.h deleted file mode 100644 index 4a8e1da4de..0000000000 --- a/mkspecs/irix-cc-64/qplatformdefs.h +++ /dev/null @@ -1,93 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QPLATFORMDEFS_H -#define QPLATFORMDEFS_H - -// Get Qt defines/settings - -#include "qglobal.h" - -// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs - -#include <unistd.h> - - -// We are hot - unistd.h should have turned on the specific APIs we requested - - -#include <pthread.h> -#include <dirent.h> -#include <fcntl.h> -#include <grp.h> -#include <pwd.h> -#include <signal.h> -#include <dlfcn.h> - -#include <sys/types.h> -#include <sys/ioctl.h> -#include <sys/ipc.h> -#include <sys/time.h> -#include <sys/shm.h> -#include <sys/socket.h> -#include <sys/stat.h> -#include <sys/wait.h> -#include <netinet/in.h> -#ifndef QT_NO_IPV6IFNAME -#include <net/if.h> -#endif - -#define QT_USE_XOPEN_LFS_EXTENSIONS -#include "../common/posix/qplatformdefs.h" - -#undef QT_SOCKLEN_T - -#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE-0 >= 500) -#define QT_SOCKLEN_T size_t -#else -#define QT_SOCKLEN_T int -#endif - -// Irix 6.5 and better -#if defined(_SGIAPI) -#define QT_SNPRINTF ::snprintf -#define QT_VSNPRINTF ::vsnprintf -#endif - -#endif // QPLATFORMDEFS_H diff --git a/mkspecs/irix-cc/qmake.conf b/mkspecs/irix-cc/qmake.conf deleted file mode 100644 index 52abdf8578..0000000000 --- a/mkspecs/irix-cc/qmake.conf +++ /dev/null @@ -1,108 +0,0 @@ -# -# qmake configuration for irix-cc -# -# From cc(1): -# -n32 -# Generates a (new) 32-bit object. This defaults to -mips3 if -# -mips4 has not been specified. -# -LANG: ... -# The language feature option group controls the source language -# interpretation assumed by the compiler. The individual controls -# in this group are as follows: -# ansi-for-init-scope [ = ( ON|OFF ) ] -# Enables or disables the ANSI scoping rules for for-init -# declarations (the scope of the name declared extends to -# the end of the for statement). This enables the behavior -# that is required by the C++ standard. The default value -# is OFF, which is the ARM behavior (the scope of the name -# declared extends to the end of the block enclosing the for -# statement). -# bool [ = ( ON|OFF ) ] -# Enables or disables the predefined bool data type, along -# with the predefined values true and false. Use this option -# only to suppress this type in old code that defines bool -# itself. Because this option changes the mangling of function -# names with bool parameters, all files comprising a program -# should be compiled with consistent options. -# Default is ON. -# The _BOOL feature macro can be used in #ifdefs to do conditional -# compilation based on whether or not this option is enabled. -# std -# Enables use of the standard C++ library and standard- -# conforming iostream library. Specifying this flag also -# triggers other standard-conforming behavior, such as the -# new rules for the scope of for loop initializers. -# - -MAKEFILE_GENERATOR = UNIX -QMAKE_PLATFORM = irix -QMAKE_COMPILER_DEFINES += __sgi __EDG - -include(../common/unix.conf) - -QMAKE_COMPILER = sgi_cc - -QMAKE_CC = cc -QMAKE_LEX = flex -QMAKE_LEXFLAGS = -QMAKE_YACC = yacc -QMAKE_YACCFLAGS = -d -QMAKE_CFLAGS = -n32 -signed -woff 1209,1355,1375,1424,3303 -QMAKE_CFLAGS_DEPS = -M -QMAKE_CFLAGS_WARN_ON = -fullwarn -QMAKE_CFLAGS_WARN_OFF = -QMAKE_CFLAGS_RELEASE = -O2 -OPT:Olimit=3000 -QMAKE_CFLAGS_DEBUG = -g -QMAKE_CFLAGS_SHLIB = -QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CFLAGS_YACC = -woff 1110,1174,3262 -QMAKE_CFLAGS_THREAD = -QMAKE_CFLAGS_EXCEPTIONS_OFF = -LANG:exceptions=off - -QMAKE_CXX = CC -QMAKE_CXXFLAGS = -n32 -signed -LANG:std:libc_in_namespace_std=ON -woff 1209,1355,1375,1424,3303 -QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS -QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG -QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB -QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC -QMAKE_CXXFLAGS_THREAD = -QMAKE_CXXFLAGS_EXCEPTIONS_OFF = $$QMAKE_CFLAGS_EXCEPTIONS_OFF - -QMAKE_INCDIR = -QMAKE_LIBDIR = -QMAKE_INCDIR_X11 = -QMAKE_LIBDIR_X11 = -QMAKE_INCDIR_OPENGL = -QMAKE_LIBDIR_OPENGL = - -QMAKE_LINK = CC -QMAKE_LINK_SHLIB = CC -QMAKE_LFLAGS = -n32 -QMAKE_LFLAGS_RELEASE = -QMAKE_LFLAGS_DEBUG = -g -QMAKE_LFLAGS_SHLIB = -shared -QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB -QMAKE_LFLAGS_SONAME = -Wl,-soname, -QMAKE_LFLAGS_THREAD = -QMAKE_LFLAGS_NOUNDEF = -Wl,-no_unresolved -QMAKE_LFLAGS_RPATH = -Wl,-rpath, -QMAKE_LFLAGS_EXCEPTIONS_OFF = $$QMAKE_CFLAGS_EXCEPTIONS_OFF - -QMAKE_LIBS = -QMAKE_LIBS_DYNLOAD = -QMAKE_LIBS_X11 = -lXext -lX11 -lm -QMAKE_LIBS_OPENGL = -lGL -lm -QMAKE_LIBS_THREAD = -lpthread - -QMAKE_AR = CC -ar -o -QMAKE_OBJCOPY = objcopy -QMAKE_NM = nm -P -QMAKE_RANLIB = - -QMAKE_CLEAN = -r $(OBJECTS_DIR)so_locations $(OBJECTS_DIR)ii_files - -load(qt_config) diff --git a/mkspecs/irix-cc/qplatformdefs.h b/mkspecs/irix-cc/qplatformdefs.h deleted file mode 100644 index 4a8e1da4de..0000000000 --- a/mkspecs/irix-cc/qplatformdefs.h +++ /dev/null @@ -1,93 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QPLATFORMDEFS_H -#define QPLATFORMDEFS_H - -// Get Qt defines/settings - -#include "qglobal.h" - -// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs - -#include <unistd.h> - - -// We are hot - unistd.h should have turned on the specific APIs we requested - - -#include <pthread.h> -#include <dirent.h> -#include <fcntl.h> -#include <grp.h> -#include <pwd.h> -#include <signal.h> -#include <dlfcn.h> - -#include <sys/types.h> -#include <sys/ioctl.h> -#include <sys/ipc.h> -#include <sys/time.h> -#include <sys/shm.h> -#include <sys/socket.h> -#include <sys/stat.h> -#include <sys/wait.h> -#include <netinet/in.h> -#ifndef QT_NO_IPV6IFNAME -#include <net/if.h> -#endif - -#define QT_USE_XOPEN_LFS_EXTENSIONS -#include "../common/posix/qplatformdefs.h" - -#undef QT_SOCKLEN_T - -#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE-0 >= 500) -#define QT_SOCKLEN_T size_t -#else -#define QT_SOCKLEN_T int -#endif - -// Irix 6.5 and better -#if defined(_SGIAPI) -#define QT_SNPRINTF ::snprintf -#define QT_VSNPRINTF ::vsnprintf -#endif - -#endif // QPLATFORMDEFS_H diff --git a/mkspecs/irix-g++-64/qmake.conf b/mkspecs/irix-g++-64/qmake.conf deleted file mode 100644 index bd258df5e8..0000000000 --- a/mkspecs/irix-g++-64/qmake.conf +++ /dev/null @@ -1,78 +0,0 @@ -# -# qmake configuration for irix-g++-64 -# - -MAKEFILE_GENERATOR = UNIX -QMAKE_PLATFORM = irix -QMAKE_COMPILER_DEFINES += __sgi __GNUC__ - -include(../common/unix.conf) - -QMAKE_COMPILER = gcc - -QMAKE_CC = gcc -QMAKE_LEX = flex -QMAKE_LEXFLAGS = -QMAKE_YACC = yacc -QMAKE_YACCFLAGS = -d -QMAKE_CFLAGS = -mabi=64 -QMAKE_CFLAGS_DEPS = -M -QMAKE_CFLAGS_WARN_ON = -Wall -W -QMAKE_CFLAGS_WARN_OFF = -w -QMAKE_CFLAGS_RELEASE = -O2 -QMAKE_CFLAGS_DEBUG = -g -QMAKE_CFLAGS_SHLIB = -fPIC -QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses -QMAKE_CFLAGS_THREAD = - -QMAKE_CXX = g++ -QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS -QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG -QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB -QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC -QMAKE_CXXFLAGS_THREAD = - -QMAKE_INCDIR = -QMAKE_LIBDIR = -QMAKE_INCDIR_X11 = -QMAKE_LIBDIR_X11 = -QMAKE_INCDIR_OPENGL = -QMAKE_LIBDIR_OPENGL = - -QMAKE_LINK = g++ -QMAKE_LINK_SHLIB = g++ -QMAKE_LINK_C = gcc -QMAKE_LINK_C_SHLIB = gcc -QMAKE_LFLAGS = -mabi=64 -QMAKE_LFLAGS_RELEASE = -QMAKE_LFLAGS_DEBUG = -QMAKE_LFLAGS_SHLIB = -shared -Wl,-LD_LAYOUT:lgot_buffer=1000 -QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB -QMAKE_LFLAGS_SONAME = -Wl,-soname, -QMAKE_LFLAGS_THREAD = -QMAKE_LFLAGS_NOUNDEF = -Wl,-no_unresolved -QMAKE_LFLAGS_RPATH = -Wl,-rpath, - -QMAKE_LIBS = -lC -QMAKE_LIBS_DYNLOAD = -QMAKE_LIBS_X11 = -lXext -lX11 -lm -# libGLU is using the SGI C++ library internally and this somehow clashes -# with the GNU C++ library (similar name mangling and symbol names?) -# so we add -lC so that the SGI C++ library is used first... -QMAKE_LIBS_OPENGL = -lGL -QMAKE_LIBS_THREAD = -lpthread - -QMAKE_AR = ar cq -QMAKE_OBJCOPY = objcopy -QMAKE_NM = nm -P -QMAKE_RANLIB = - -QMAKE_CLEAN = so_locations - -load(qt_config) diff --git a/mkspecs/irix-g++/qmake.conf b/mkspecs/irix-g++/qmake.conf deleted file mode 100644 index 57a27b6a1b..0000000000 --- a/mkspecs/irix-g++/qmake.conf +++ /dev/null @@ -1,78 +0,0 @@ -# -# qmake configuration for irix-g++ -# - -MAKEFILE_GENERATOR = UNIX -QMAKE_PLATFORM = irix -QMAKE_COMPILER_DEFINES += __sgi __GNUC__ - -include(../common/unix.conf) - -QMAKE_COMPILER = gcc - -QMAKE_CC = gcc -QMAKE_LEX = flex -QMAKE_LEXFLAGS = -QMAKE_YACC = yacc -QMAKE_YACCFLAGS = -d -QMAKE_CFLAGS = -QMAKE_CFLAGS_DEPS = -M -QMAKE_CFLAGS_WARN_ON = -Wall -W -QMAKE_CFLAGS_WARN_OFF = -w -QMAKE_CFLAGS_RELEASE = -O2 -QMAKE_CFLAGS_DEBUG = -g -QMAKE_CFLAGS_SHLIB = -fPIC -QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses -QMAKE_CFLAGS_THREAD = - -QMAKE_CXX = g++ -QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS -QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG -QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB -QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC -QMAKE_CXXFLAGS_THREAD = - -QMAKE_INCDIR = -QMAKE_LIBDIR = -QMAKE_INCDIR_X11 = -QMAKE_LIBDIR_X11 = -QMAKE_INCDIR_OPENGL = -QMAKE_LIBDIR_OPENGL = - -QMAKE_LINK = g++ -QMAKE_LINK_SHLIB = g++ -QMAKE_LINK_C = gcc -QMAKE_LINK_C_SHLIB = gcc -QMAKE_LFLAGS = -QMAKE_LFLAGS_RELEASE = -QMAKE_LFLAGS_DEBUG = -QMAKE_LFLAGS_SHLIB = -shared -Wl,-LD_LAYOUT:lgot_buffer=1000 -QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB -QMAKE_LFLAGS_SONAME = -Wl,-soname, -QMAKE_LFLAGS_THREAD = -QMAKE_LFLAGS_NOUNDEF = -Wl,-no_unresolved -QMAKE_LFLAGS_RPATH = -Wl,-rpath, - -QMAKE_LIBS = -lC -QMAKE_LIBS_DYNLOAD = -QMAKE_LIBS_X11 = -lXext -lX11 -lm -# libGLU is using the SGI C++ library internally and this somehow clashes -# with the GNU C++ library (similar name mangling and symbol names?) -# so we add -lC so that the SGI C++ library is used first... -QMAKE_LIBS_OPENGL = -lGL -QMAKE_LIBS_THREAD = -lpthread - -QMAKE_AR = ar cq -QMAKE_OBJCOPY = objcopy -QMAKE_NM = nm -P -QMAKE_RANLIB = - -QMAKE_CLEAN = so_locations - -load(qt_config) diff --git a/mkspecs/irix-g++/qplatformdefs.h b/mkspecs/irix-g++/qplatformdefs.h deleted file mode 100644 index 4b3918a491..0000000000 --- a/mkspecs/irix-g++/qplatformdefs.h +++ /dev/null @@ -1,100 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QPLATFORMDEFS_H -#define QPLATFORMDEFS_H - -// Get Qt defines/settings - -#include "qglobal.h" - -// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs - -#include <unistd.h> - - -// We are hot - unistd.h should have turned on the specific APIs we requested - - -#include <pthread.h> -#include <dirent.h> -#include <fcntl.h> -#include <grp.h> -#include <pwd.h> -#include <signal.h> -#include <dlfcn.h> - -#include <sys/types.h> -#include <sys/ioctl.h> -#include <sys/ipc.h> -#include <sys/time.h> -#include <sys/shm.h> -#include <sys/socket.h> -#include <sys/stat.h> -#include <sys/wait.h> -#include <netinet/in.h> -#ifndef QT_NO_IPV6IFNAME -#include <net/if.h> -#endif - -#define QT_USE_XOPEN_LFS_EXTENSIONS -#include "../common/posix/qplatformdefs.h" - -#undef QT_SOCKLEN_T -#undef QT_SIGNAL_ARGS - -#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE-0 >= 500) -#define QT_SOCKLEN_T size_t -#else -#define QT_SOCKLEN_T int -#endif - -#if defined(_LANGUAGE_C_PLUS_PLUS) || !defined(_SGIAPI) -#define QT_SIGNAL_ARGS int -#else -#define QT_SIGNAL_ARGS void -#endif - -// Irix 6.5 and better -#if defined(_SGIAPI) -#define QT_SNPRINTF ::snprintf -#define QT_VSNPRINTF ::vsnprintf -#endif - -#endif // QPLATFORMDEFS_H diff --git a/mkspecs/linux-cxx/qmake.conf b/mkspecs/linux-cxx/qmake.conf deleted file mode 100644 index b156bea084..0000000000 --- a/mkspecs/linux-cxx/qmake.conf +++ /dev/null @@ -1,66 +0,0 @@ -# -# qmake configuration for linux-cxx -# -# Written for Compaq C++ for GNU/Linux on Alpha -# - -MAKEFILE_GENERATOR = UNIX -QMAKE_PLATFORM = linux - -include(../common/unix.conf) - -QMAKE_COMPILER = compaq_cc - -QMAKE_CC = ccc -QMAKE_LEX = flex -QMAKE_LEXFLAGS = -QMAKE_YACC = yacc -QMAKE_YACCFLAGS = -d -QMAKE_CFLAGS = -w -QMAKE_CFLAGS_DEPS = -M -QMAKE_CFLAGS_WARN_ON = -QMAKE_CFLAGS_WARN_OFF = -QMAKE_CFLAGS_RELEASE = -O2 -QMAKE_CFLAGS_DEBUG = -g -QMAKE_CFLAGS_SHLIB = -QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CFLAGS_YACC = -Olimit 1000 - -QMAKE_CXX = cxx -QMAKE_CXXFLAGS = -w -QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS -QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG -QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB -QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC - -QMAKE_INCDIR = -QMAKE_LIBDIR = -QMAKE_INCDIR_X11 = -QMAKE_LIBDIR_X11 = -QMAKE_INCDIR_OPENGL = -QMAKE_LIBDIR_OPENGL = - -QMAKE_LINK = cxx -QMAKE_LINK_SHLIB = cxx -QMAKE_LFLAGS = -QMAKE_LFLAGS_RELEASE = -QMAKE_LFLAGS_DEBUG = -QMAKE_LFLAGS_SHLIB = -shared -QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB -QMAKE_LFLAGS_SONAME = -Wl,-soname, - -QMAKE_LIBS = -QMAKE_LIBS_DYNLOAD = -ldl -QMAKE_LIBS_X11 = -lXext -lX11 -lm -QMAKE_LIBS_NIS = -lnsl - -QMAKE_LIBS_OPENGL = -lGL - -QMAKE_AR = ar cqs -QMAKE_RANLIB = - -load(qt_config) diff --git a/mkspecs/linux-cxx/qplatformdefs.h b/mkspecs/linux-cxx/qplatformdefs.h deleted file mode 100644 index 0c26017140..0000000000 --- a/mkspecs/linux-cxx/qplatformdefs.h +++ /dev/null @@ -1,99 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QPLATFORMDEFS_H -#define QPLATFORMDEFS_H - -// Get Qt defines/settings - -#include "qglobal.h" - -// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs - -// 1) need to reset default environment if _BSD_SOURCE is defined -// 2) need to specify POSIX thread interfaces explicitly in glibc 2.0 -// 3) it seems older glibc need this to include the X/Open stuff -#ifndef _GNU_SOURCE -# define _GNU_SOURCE -#endif - -#include <unistd.h> - - -// We are hot - unistd.h should have turned on the specific APIs we requested - - -#include <pthread.h> -#include <dirent.h> -#include <fcntl.h> -#include <grp.h> -#include <pwd.h> -#include <signal.h> -#include <dlfcn.h> - -#include <sys/types.h> -#include <sys/ioctl.h> -#include <sys/ipc.h> -#include <sys/time.h> -#include <sys/shm.h> -#include <sys/socket.h> -#include <sys/stat.h> -#include <sys/wait.h> -#include <netinet/in.h> -#ifndef QT_NO_IPV6IFNAME -#include <net/if.h> -#endif - -#define QT_USE_XOPEN_LFS_EXTENSIONS -#include "../common/posix/qplatformdefs.h" - -#undef QT_SOCKLEN_T - -#if defined(__GLIBC__) && (__GLIBC__ >= 2) -#define QT_SOCKLEN_T socklen_t -#else -#define QT_SOCKLEN_T int -#endif - -#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500) -#define QT_SNPRINTF ::snprintf -#define QT_VSNPRINTF ::vsnprintf -#endif - -#endif // QPLATFORMDEFS_H diff --git a/mkspecs/linux-icc/qmake.conf b/mkspecs/linux-icc/qmake.conf index 582420ffee..4fc2251665 100644 --- a/mkspecs/linux-icc/qmake.conf +++ b/mkspecs/linux-icc/qmake.conf @@ -6,6 +6,9 @@ MAKEFILE_GENERATOR = UNIX QMAKE_COMPILER = gcc intel_icc # icc pretends to be gcc +QMAKE_CFLAGS_OPTIMIZE = -O2 +QMAKE_CFLAGS_OPTIMIZE_SIZE = -Os + QMAKE_CC = icc QMAKE_LEX = flex QMAKE_LEXFLAGS = @@ -16,7 +19,7 @@ QMAKE_CFLAGS_APP = -fPIC QMAKE_CFLAGS_DEPS = -M QMAKE_CFLAGS_WARN_ON = -w1 -Wall -Wcheck -wd1572,873,2259,2261,3373 QMAKE_CFLAGS_WARN_OFF = -w -QMAKE_CFLAGS_RELEASE = -O2 +QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_OPTIMIZE QMAKE_CFLAGS_DEBUG = -O0 -g QMAKE_CFLAGS_SHLIB = -fPIC QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB diff --git a/mkspecs/linux-kcc/qmake.conf b/mkspecs/linux-kcc/qmake.conf deleted file mode 100644 index 591a59537f..0000000000 --- a/mkspecs/linux-kcc/qmake.conf +++ /dev/null @@ -1,83 +0,0 @@ -# -# qmake configuration for linux-kcc -# -# Written for KAI C++ 4.0f for GNU/Linux -# -# This product has been discontinued, use Intel C++ instead. -# -# From the KAI C++ man page for Linux: -# --[no_]thread_safe -# [Waive or] Request thread-safe handling of system-allocated objects. -# To guarantee thread safety, this option must be used when both -# compiling and linking. Thread-safe C++ is not link-compatible with -# (the default) non-thread-safe C++. -# - -MAKEFILE_GENERATOR = UNIX -QMAKE_PLATFORM = linux - -include(../common/unix.conf) - -QMAKE_COMPILER = kai_cc - -QMAKE_CC = KCC -QMAKE_LEX = flex -QMAKE_LEXFLAGS = -QMAKE_YACC = yacc -QMAKE_YACCFLAGS = -d -QMAKE_CFLAGS = --c --display_error_number --backend -pipe -QMAKE_CFLAGS_DEPS = -M -QMAKE_CFLAGS_WARN_ON = -QMAKE_CFLAGS_WARN_OFF = -w -QMAKE_CFLAGS_RELEASE = +K2 -QMAKE_CFLAGS_DEBUG = +K0 -QMAKE_CFLAGS_SHLIB = -fPIC -QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CFLAGS_YACC = --diag_suppress 111,177 -QMAKE_CFLAGS_THREAD = --thread_safe - -QMAKE_CXX = KCC -QMAKE_CXXFLAGS = --display_error_number --diag_suppress 611,1142 --backend -pipe -QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS -QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG -QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB -QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC -QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD - -QMAKE_INCDIR = -QMAKE_LIBDIR = -QMAKE_INCDIR_X11 = -QMAKE_LIBDIR_X11 = -QMAKE_INCDIR_OPENGL = -QMAKE_LIBDIR_OPENGL = - -QMAKE_LINK = KCC -QMAKE_LINK_SHLIB = KCC -QMAKE_LFLAGS = -QMAKE_LFLAGS_RELEASE = -QMAKE_LFLAGS_DEBUG = -QMAKE_LFLAGS_SHLIB = -QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB -QMAKE_LFLAGS_SONAME = --soname$$LITERAL_WHITESPACE -QMAKE_LFLAGS_THREAD = --thread_safe -QMAKE_LFLAGS_RPATH = -rpath$$LITERAL_WHITESPACE - -QMAKE_LIBS = -QMAKE_LIBS_DYNLOAD = -ldl -QMAKE_LIBS_X11 = -lXext -lX11 -lm -QMAKE_LIBS_NIS = -lnsl -QMAKE_LIBS_OPENGL = -lGL -QMAKE_LIBS_THREAD = - -QMAKE_AR = ar cqs -QMAKE_OBJCOPY = objcopy -QMAKE_NM = nm -P -QMAKE_RANLIB = - -QMAKE_CLEAN = -r $(OBJECTS_DIR)ti_files - -load(qt_config) diff --git a/mkspecs/linux-kcc/qplatformdefs.h b/mkspecs/linux-kcc/qplatformdefs.h deleted file mode 100644 index 7398e62c5e..0000000000 --- a/mkspecs/linux-kcc/qplatformdefs.h +++ /dev/null @@ -1,102 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QPLATFORMDEFS_H -#define QPLATFORMDEFS_H - -// Get Qt defines/settings - -#include "qglobal.h" - -// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs - -// 1) need to reset default environment if _BSD_SOURCE is defined -// 2) need to specify POSIX thread interfaces explicitly in glibc 2.0 -// 3) it seems older glibc need this to include the X/Open stuff -#ifndef _GNU_SOURCE -# define _GNU_SOURCE -#endif - -#include <unistd.h> - - -// We are hot - unistd.h should have turned on the specific APIs we requested - - -#include <pthread.h> -#include <dirent.h> -#include <fcntl.h> -#include <grp.h> -#include <pwd.h> -#include <signal.h> -#include <dlfcn.h> -// KAI C++ has at the moment problems with unloading the Qt plugins. -// So don't unload them as a workaround for now. -#define QT_NO_LIBRARY_UNLOAD - -#include <sys/types.h> -#include <sys/ioctl.h> -#include <sys/ipc.h> -#include <sys/time.h> -#include <sys/shm.h> -#include <sys/socket.h> -#include <sys/stat.h> -#include <sys/wait.h> -#include <netinet/in.h> -#ifndef QT_NO_IPV6IFNAME -#include <net/if.h> -#endif - -#define QT_USE_XOPEN_LFS_EXTENSIONS -#include "../common/posix/qplatformdefs.h" - -#undef QT_SOCKLEN_T - -#if defined(__GLIBC__) && (__GLIBC__ >= 2) -#define QT_SOCKLEN_T socklen_t -#else -#define QT_SOCKLEN_T int -#endif - -#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500) -#define QT_SNPRINTF ::snprintf -#define QT_VSNPRINTF ::vsnprintf -#endif - -#endif // QPLATFORMDEFS_H diff --git a/mkspecs/linux-pgcc/qmake.conf b/mkspecs/linux-pgcc/qmake.conf deleted file mode 100644 index c41823ba94..0000000000 --- a/mkspecs/linux-pgcc/qmake.conf +++ /dev/null @@ -1,72 +0,0 @@ -# -# qmake configuration for linux-pgcc -# -# Written for the Portland Group compiler 6.0-5 -# - -MAKEFILE_GENERATOR = UNIX -QMAKE_PLATFORM = linux - -include(../common/unix.conf) - -QMAKE_COMPILER = portland_cc - -QMAKE_CC = pgcc -QMAKE_LEX = flex -QMAKE_LEXFLAGS = -QMAKE_YACC = yacc -QMAKE_YACCFLAGS = -d -QMAKE_CFLAGS = -QMAKE_CFLAGS_DEPS = -M -QMAKE_CFLAGS_WARN_ON = -QMAKE_CFLAGS_WARN_OFF = -w -QMAKE_CFLAGS_RELEASE = -fast -QMAKE_CFLAGS_DEBUG = -g -QMAKE_CFLAGS_SHLIB = -fpic -QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CFLAGS_YACC = -QMAKE_CFLAGS_THREAD = -D_REENTRANT - -QMAKE_CXX = pgCC -QMAKE_CXXFLAGS = --display_error_number --diag_suppress815 $$QMAKE_CFLAGS -QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS -QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG -QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB -QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC -QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD - -QMAKE_INCDIR = -QMAKE_LIBDIR = -QMAKE_INCDIR_X11 = -QMAKE_LIBDIR_X11 = -QMAKE_INCDIR_OPENGL = -QMAKE_LIBDIR_OPENGL = - -QMAKE_LINK = pgCC -QMAKE_LINK_SHLIB = pgCC -QMAKE_LFLAGS = -QMAKE_LFLAGS_RELEASE = -QMAKE_LFLAGS_DEBUG = -QMAKE_LFLAGS_SHLIB = -shared -fpic -QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB -QMAKE_LFLAGS_SONAME = -Wl,-soname, -QMAKE_LFLAGS_THREAD = -QMAKE_LFLAGS_RPATH = -R - -QMAKE_LIBS = -QMAKE_LIBS_DYNLOAD = -ldl -QMAKE_LIBS_X11 = -lXext -lX11 -lm -QMAKE_LIBS_NIS = -lnsl -QMAKE_LIBS_OPENGL = -lGL -QMAKE_LIBS_THREAD = -lpthread - -QMAKE_AR = ar cqs -QMAKE_OBJCOPY = objcopy -QMAKE_NM = nm -P -QMAKE_RANLIB = - -load(qt_config) diff --git a/mkspecs/linux-pgcc/qplatformdefs.h b/mkspecs/linux-pgcc/qplatformdefs.h deleted file mode 100644 index 0c26017140..0000000000 --- a/mkspecs/linux-pgcc/qplatformdefs.h +++ /dev/null @@ -1,99 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QPLATFORMDEFS_H -#define QPLATFORMDEFS_H - -// Get Qt defines/settings - -#include "qglobal.h" - -// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs - -// 1) need to reset default environment if _BSD_SOURCE is defined -// 2) need to specify POSIX thread interfaces explicitly in glibc 2.0 -// 3) it seems older glibc need this to include the X/Open stuff -#ifndef _GNU_SOURCE -# define _GNU_SOURCE -#endif - -#include <unistd.h> - - -// We are hot - unistd.h should have turned on the specific APIs we requested - - -#include <pthread.h> -#include <dirent.h> -#include <fcntl.h> -#include <grp.h> -#include <pwd.h> -#include <signal.h> -#include <dlfcn.h> - -#include <sys/types.h> -#include <sys/ioctl.h> -#include <sys/ipc.h> -#include <sys/time.h> -#include <sys/shm.h> -#include <sys/socket.h> -#include <sys/stat.h> -#include <sys/wait.h> -#include <netinet/in.h> -#ifndef QT_NO_IPV6IFNAME -#include <net/if.h> -#endif - -#define QT_USE_XOPEN_LFS_EXTENSIONS -#include "../common/posix/qplatformdefs.h" - -#undef QT_SOCKLEN_T - -#if defined(__GLIBC__) && (__GLIBC__ >= 2) -#define QT_SOCKLEN_T socklen_t -#else -#define QT_SOCKLEN_T int -#endif - -#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500) -#define QT_SNPRINTF ::snprintf -#define QT_VSNPRINTF ::vsnprintf -#endif - -#endif // QPLATFORMDEFS_H diff --git a/mkspecs/macx-icc/qmake.conf b/mkspecs/macx-icc/qmake.conf index 7e10d1f413..e999aa36a4 100644 --- a/mkspecs/macx-icc/qmake.conf +++ b/mkspecs/macx-icc/qmake.conf @@ -11,12 +11,15 @@ QMAKE_COMPILER_DEFINES += __APPLE__ __GNUC__ QMAKE_COMPILER = gcc clang intel_icc # icc pretends to be gcc and clang +QMAKE_CFLAGS_OPTIMIZE = -O2 +QMAKE_CFLAGS_OPTIMIZE_SIZE = -Os + QMAKE_CC = icc QMAKE_CFLAGS = QMAKE_CFLAGS_DEPS = -M QMAKE_CFLAGS_WARN_ON = -w1 -Wcheck -wd654,1572,411,873,1125,2259,2261,3280,3373 QMAKE_CFLAGS_WARN_OFF = -w -QMAKE_CFLAGS_RELEASE = -O2 +QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_OPTIMIZE QMAKE_CFLAGS_DEBUG = -g -O0 QMAKE_CFLAGS_SHLIB = -fPIC QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB diff --git a/mkspecs/sco-cc/qmake.conf b/mkspecs/sco-cc/qmake.conf deleted file mode 100644 index fab66b4215..0000000000 --- a/mkspecs/sco-cc/qmake.conf +++ /dev/null @@ -1,67 +0,0 @@ -# -# qmake configuration for sco-cc -# -# Written for SCO OpenServer with UDK -# -# -Wf,--diag_suppress,838 -# turns off warning about missing return types in X headers -# - -MAKEFILE_GENERATOR = UNIX -QMAKE_PLATFORM = sco - -QMAKE_COMPILER = sco_cc - -QMAKE_CC = cc -QMAKE_LEX = flex -QMAKE_LEXFLAGS = -QMAKE_YACC = yacc -QMAKE_YACCFLAGS = -d -QMAKE_CFLAGS = -QMAKE_CFLAGS_WARN_ON = -QMAKE_CFLAGS_WARN_OFF = -w -QMAKE_CFLAGS_RELEASE = -O -QMAKE_CFLAGS_DEBUG = -g -QMAKE_CFLAGS_SHLIB = -KPIC -QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CFLAGS_YACC = -Wf,--diag_suppress,111 -Wf,--diag_suppress,177 - -QMAKE_CXX = CC -QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -Wf,--display_error_number -Wf,--diag_suppress,838 -QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -Tused -QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG -QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB -QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC - -QMAKE_INCDIR = -QMAKE_LIBDIR = -QMAKE_INCDIR_X11 = -QMAKE_LIBDIR_X11 = /usr/X/lib -QMAKE_INCDIR_OPENGL = -QMAKE_LIBDIR_OPENGL = - -QMAKE_LINK = CC -QMAKE_LINK_SHLIB = CC -QMAKE_LFLAGS = -QMAKE_LFLAGS_RELEASE = -QMAKE_LFLAGS_DEBUG = -QMAKE_LFLAGS_SHLIB = -G -QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB -QMAKE_LFLAGS_SONAME = -h$$LITERAL_WHITESPACE - -QMAKE_LIBS = -QMAKE_LIBS_DYNLOAD = -ldl -QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl -lm - -QMAKE_LIBS_OPENGL = -lGL -lXt - -QMAKE_AR = ar cq -QMAKE_OBJCOPY = objcopy -QMAKE_NM = nm -P -QMAKE_RANLIB = - -include(../common/unix.conf) -load(qt_config) diff --git a/mkspecs/sco-cc/qplatformdefs.h b/mkspecs/sco-cc/qplatformdefs.h deleted file mode 100644 index 23f5d41394..0000000000 --- a/mkspecs/sco-cc/qplatformdefs.h +++ /dev/null @@ -1,85 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QPLATFORMDEFS_H -#define QPLATFORMDEFS_H - -// Get Qt defines/settings - -#include "qglobal.h" - -// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs - -#include <unistd.h> - - -// We are hot - unistd.h should have turned on the specific APIs we requested - - -#include <pthread.h> -#include <dirent.h> -#include <fcntl.h> -#include <grp.h> -#include <pwd.h> -#include <signal.h> -#include <dlfcn.h> - -#include <sys/types.h> -#include <sys/ioctl.h> -#include <sys/filio.h> -#include <sys/ipc.h> -#include <sys/time.h> -#include <sys/shm.h> -#include <sys/socket.h> -#include <sys/stat.h> -#include <sys/wait.h> -#include <netinet/in.h> -#ifndef QT_NO_IPV6IFNAME -#include <net/if.h> -#endif - -#include "../common/posix/qplatformdefs.h" - -#undef QT_SOCKLEN_T -#define QT_SOCKLEN_T size_t - -#define QT_SNPRINTF ::snprintf -#define QT_VSNPRINTF ::vsnprintf - -#endif // QPLATFORMDEFS_H diff --git a/mkspecs/sco-g++/qmake.conf b/mkspecs/sco-g++/qmake.conf deleted file mode 100644 index 27fc1cffe3..0000000000 --- a/mkspecs/sco-g++/qmake.conf +++ /dev/null @@ -1,70 +0,0 @@ -# -# qmake configuration for sco-g++ -# -# Written for SCO OpenServer 5.0.6 with Skunkware's compiler -# - -MAKEFILE_GENERATOR = UNIX -QMAKE_PLATFORM = sco - -include(../common/unix.conf) - -QMAKE_COMPILER = gcc - -QMAKE_CC = gcc -QMAKE_LEX = flex -QMAKE_LEXFLAGS = -QMAKE_YACC = yacc -QMAKE_YACCFLAGS = -d -QMAKE_CFLAGS = -QMAKE_CFLAGS_DEPS = -M -QMAKE_CFLAGS_WARN_ON = -Wall -W -QMAKE_CFLAGS_WARN_OFF = -w -QMAKE_CFLAGS_RELEASE = -O2 -QMAKE_CFLAGS_DEBUG = -g -QMAKE_CFLAGS_SHLIB = -fPIC -QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses - -QMAKE_CXX = g++ -QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS -QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG -QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB -QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC - -QMAKE_INCDIR = -QMAKE_LIBDIR = -QMAKE_INCDIR_X11 = -QMAKE_LIBDIR_X11 = -QMAKE_INCDIR_OPENGL = -QMAKE_LIBDIR_OPENGL = - -QMAKE_LINK = g++ -QMAKE_LINK_SHLIB = g++ -QMAKE_LINK_C = gcc -QMAKE_LINK_C_SHLIB = gcc -QMAKE_LFLAGS = -QMAKE_LFLAGS_RELEASE = -QMAKE_LFLAGS_DEBUG = -QMAKE_LFLAGS_SHLIB = -G -QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB -QMAKE_LFLAGS_SONAME = -h$$LITERAL_WHITESPACE -QMAKE_LFLAGS_RPATH = - -QMAKE_LIBS = -QMAKE_LIBS_DYNLOAD = -ldl -QMAKE_LIBS_X11 = -lXext -lX11 -lsocket -lm - -QMAKE_LIBS_OPENGL = -lGL - -QMAKE_AR = ar cqs -QMAKE_OBJCOPY = objcopy -QMAKE_NM = nm -P -QMAKE_RANLIB = - -load(qt_config) diff --git a/mkspecs/sco-g++/qplatformdefs.h b/mkspecs/sco-g++/qplatformdefs.h deleted file mode 100644 index aed4756d7f..0000000000 --- a/mkspecs/sco-g++/qplatformdefs.h +++ /dev/null @@ -1,89 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QPLATFORMDEFS_H -#define QPLATFORMDEFS_H - -// Get Qt defines/settings - -#include "qglobal.h" - -// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs - -// This is to have PATH_MAX defined in <limits.h> -#ifndef _IBCS2 -# define _IBCS2 -#endif - -#include <unistd.h> - - -// We are hot - unistd.h should have turned on the specific APIs we requested - - -#include <pthread.h> -#include <dirent.h> -#include <fcntl.h> -#include <grp.h> -#include <pwd.h> -#include <signal.h> -#include <dlfcn.h> - -#include <sys/types.h> -#include <sys/ioctl.h> -#include <sys/ipc.h> -#include <sys/time.h> -#include <sys/shm.h> -#include <sys/socket.h> -#include <sys/stat.h> -#include <sys/wait.h> -#include <netinet/in.h> -#ifndef QT_NO_IPV6IFNAME -#include <net/if.h> -#endif - -#include "../common/posix/qplatformdefs.h" - -#undef QT_SOCKLEN_T -#define QT_SOCKLEN_T int - -#define QT_SNPRINTF ::snprintf -#define QT_VSNPRINTF ::vsnprintf - -#endif // QPLATFORMDEFS_H diff --git a/mkspecs/tru64-cxx/qmake.conf b/mkspecs/tru64-cxx/qmake.conf deleted file mode 100644 index 87dabfb7e1..0000000000 --- a/mkspecs/tru64-cxx/qmake.conf +++ /dev/null @@ -1,69 +0,0 @@ -# -# qmake configuration for tru64-cxx -# - -MAKEFILE_GENERATOR = UNIX -QMAKE_PLATFORM = tru64 - -include(../common/unix.conf) - -QMAKE_COMPILER = dec_cc - -QMAKE_CC = cc -QMAKE_LEX = flex -QMAKE_LEXFLAGS = -QMAKE_YACC = yacc -QMAKE_YACCFLAGS = -d -QMAKE_CFLAGS = -QMAKE_CFLAGS_DEPS = -M -QMAKE_CFLAGS_WARN_ON = -QMAKE_CFLAGS_WARN_OFF = -QMAKE_CFLAGS_RELEASE = -O2 -QMAKE_CFLAGS_DEBUG = -g -QMAKE_CFLAGS_SHLIB = -QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CFLAGS_YACC = -Olimit 1000 -QMAKE_CFLAGS_THREAD = -pthread - -QMAKE_CXX = cxx -QMAKE_CXXFLAGS = -x cxx -model ansi $$QMAKE_CFLAGS -QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS -QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG -QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB -QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC -QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD - -QMAKE_INCDIR = -QMAKE_LIBDIR = -QMAKE_INCDIR_X11 = -QMAKE_LIBDIR_X11 = -QMAKE_INCDIR_OPENGL = -QMAKE_LIBDIR_OPENGL = - -QMAKE_LINK = cxx -QMAKE_LINK_SHLIB = cxx -QMAKE_LFLAGS = -model ansi -QMAKE_LFLAGS_RELEASE = -QMAKE_LFLAGS_DEBUG = -QMAKE_LFLAGS_SHLIB = -shared -QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB -QMAKE_LFLAGS_THREAD = -pthread -QMAKE_LFLAGS_SONAME = -soname$$LITERAL_WHITESPACE -QMAKE_LFLAGS_RPATH = -rpath$$LITERAL_WHITESPACE - -QMAKE_LIBS = -lm -QMAKE_LIBS_DYNLOAD = -QMAKE_LIBS_X11 = -lXext -lX11 -QMAKE_LIBS_OPENGL = -lGL -QMAKE_LIBS_THREAD = -lrt - -QMAKE_AR = ar cqs -QMAKE_OBJCOPY = objcopy -QMAKE_NM = nm -P -QMAKE_RANLIB = - -load(qt_config) diff --git a/mkspecs/tru64-cxx/qplatformdefs.h b/mkspecs/tru64-cxx/qplatformdefs.h deleted file mode 100644 index f0eadf8566..0000000000 --- a/mkspecs/tru64-cxx/qplatformdefs.h +++ /dev/null @@ -1,107 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QPLATFORMDEFS_H -#define QPLATFORMDEFS_H - -// Get Qt defines/settings - -#include "qglobal.h" - -// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs - -#include <unistd.h> - - -// We are hot - unistd.h should have turned on the specific APIs we requested - - -#ifndef QT_NO_THREAD -#include <pthread.h> -#endif -#include <dirent.h> -#include <fcntl.h> -#include <grp.h> -#include <pwd.h> -#include <signal.h> -#include <dlfcn.h> - -#include <sys/types.h> -#include <sys/ioctl.h> -#include <sys/ipc.h> -#include <sys/time.h> -#include <sys/select.h> -#include <sys/shm.h> -#include <sys/socket.h> -#include <sys/stat.h> -#include <sys/wait.h> -#include <netinet/in.h> -#ifndef QT_NO_IPV6IFNAME -#include <net/if.h> -#endif - -#define QT_NO_USE_FSEEKO -#include "../common/posix/qplatformdefs.h" - -#undef QT_OFF_T -#undef QT_SOCKLEN_T - -#define QT_OFF_T off_t - -#if defined(_POSIX_PII_SOCKET) -#define QT_SOCKLEN_T socklen_t -#elif defined(_XOPEN_SOURCE_EXTENDED) -#define QT_SOCKLEN_T size_t -#else -#define QT_SOCKLEN_T int -#endif - -#if defined(_XOPEN_SOURCE) && defined(_OSF_SOURCE) -// Not available in the <unistd.h> header file of Tru64 4.0F. -// Fixed in the <unistd.h> header of Tru64 5.0A so we copy/paste from there... -extern "C" int usleep(useconds_t); -#endif - -#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE-0 >= 400) -// Tru64 5.0 and better -#define QT_SNPRINTF ::snprintf -#define QT_VSNPRINTF ::vsnprintf -#endif - -#endif // QPLATFORMDEFS_H diff --git a/mkspecs/tru64-g++/qmake.conf b/mkspecs/tru64-g++/qmake.conf deleted file mode 100644 index c31eccca3e..0000000000 --- a/mkspecs/tru64-g++/qmake.conf +++ /dev/null @@ -1,71 +0,0 @@ -# -# qmake configuration for tru64-g++ -# - -MAKEFILE_GENERATOR = UNIX -QMAKE_PLATFORM = tru64 - -include(../common/unix.conf) - -QMAKE_COMPILER = gcc - -QMAKE_CC = gcc -QMAKE_LEX = flex -QMAKE_LEXFLAGS = -QMAKE_YACC = yacc -QMAKE_YACCFLAGS = -d -QMAKE_CFLAGS = -QMAKE_CFLAGS_DEPS = -M -QMAKE_CFLAGS_WARN_ON = -Wall -W -QMAKE_CFLAGS_WARN_OFF = -w -QMAKE_CFLAGS_RELEASE = -O2 -QMAKE_CFLAGS_DEBUG = -g -QMAKE_CFLAGS_SHLIB = -fPIC -QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses -QMAKE_CFLAGS_THREAD = -D_REENTRANT - -QMAKE_CXX = g++ -QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS -QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG -QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB -QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC -QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD - -QMAKE_INCDIR = -QMAKE_LIBDIR = -QMAKE_INCDIR_X11 = -QMAKE_LIBDIR_X11 = -QMAKE_INCDIR_OPENGL = -QMAKE_LIBDIR_OPENGL = - -QMAKE_LINK = g++ -QMAKE_LINK_SHLIB = g++ -QMAKE_LINK_C = gcc -QMAKE_LINK_C_SHLIB = gcc -QMAKE_LFLAGS = -QMAKE_LFLAGS_RELEASE = -QMAKE_LFLAGS_DEBUG = -QMAKE_LFLAGS_SHLIB = -shared -QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB -QMAKE_LFLAGS_THREAD = -QMAKE_LFLAGS_SONAME = -Wl,-soname, -QMAKE_LFLAGS_RPATH = -Wl,-rpath, - -QMAKE_LIBS = -QMAKE_LIBS_DYNLOAD = -QMAKE_LIBS_X11 = -lXext -lX11 -lm -QMAKE_LIBS_OPENGL = -lGL -QMAKE_LIBS_THREAD = -lpthread -lexc -lrt - -QMAKE_AR = ar cqs -QMAKE_OBJCOPY = objcopy -QMAKE_NM = nm -P -QMAKE_RANLIB = - -load(qt_config) diff --git a/mkspecs/tru64-g++/qplatformdefs.h b/mkspecs/tru64-g++/qplatformdefs.h deleted file mode 100644 index f0eadf8566..0000000000 --- a/mkspecs/tru64-g++/qplatformdefs.h +++ /dev/null @@ -1,107 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QPLATFORMDEFS_H -#define QPLATFORMDEFS_H - -// Get Qt defines/settings - -#include "qglobal.h" - -// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs - -#include <unistd.h> - - -// We are hot - unistd.h should have turned on the specific APIs we requested - - -#ifndef QT_NO_THREAD -#include <pthread.h> -#endif -#include <dirent.h> -#include <fcntl.h> -#include <grp.h> -#include <pwd.h> -#include <signal.h> -#include <dlfcn.h> - -#include <sys/types.h> -#include <sys/ioctl.h> -#include <sys/ipc.h> -#include <sys/time.h> -#include <sys/select.h> -#include <sys/shm.h> -#include <sys/socket.h> -#include <sys/stat.h> -#include <sys/wait.h> -#include <netinet/in.h> -#ifndef QT_NO_IPV6IFNAME -#include <net/if.h> -#endif - -#define QT_NO_USE_FSEEKO -#include "../common/posix/qplatformdefs.h" - -#undef QT_OFF_T -#undef QT_SOCKLEN_T - -#define QT_OFF_T off_t - -#if defined(_POSIX_PII_SOCKET) -#define QT_SOCKLEN_T socklen_t -#elif defined(_XOPEN_SOURCE_EXTENDED) -#define QT_SOCKLEN_T size_t -#else -#define QT_SOCKLEN_T int -#endif - -#if defined(_XOPEN_SOURCE) && defined(_OSF_SOURCE) -// Not available in the <unistd.h> header file of Tru64 4.0F. -// Fixed in the <unistd.h> header of Tru64 5.0A so we copy/paste from there... -extern "C" int usleep(useconds_t); -#endif - -#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE-0 >= 400) -// Tru64 5.0 and better -#define QT_SNPRINTF ::snprintf -#define QT_VSNPRINTF ::vsnprintf -#endif - -#endif // QPLATFORMDEFS_H diff --git a/mkspecs/unixware-cc/qmake.conf b/mkspecs/unixware-cc/qmake.conf deleted file mode 100644 index 1a36a3e76b..0000000000 --- a/mkspecs/unixware-cc/qmake.conf +++ /dev/null @@ -1,74 +0,0 @@ -# -# qmake configuration for unixware-cc -# -# Written for UnixWare 7 with UDK or OUDK -# -# -Wf,--diag_suppress,838 -# turns off warning about missing return types in X headers -# - -MAKEFILE_GENERATOR = UNIX -QMAKE_PLATFORM = unixware - -include(../common/unix.conf) - -QMAKE_COMPILER = sco_cc - -QMAKE_CC = cc -QMAKE_LEX = flex -QMAKE_LEXFLAGS = -QMAKE_YACC = yacc -QMAKE_YACCFLAGS = -d -QMAKE_CFLAGS = -QMAKE_CFLAGS_WARN_ON = -QMAKE_CFLAGS_WARN_OFF = -w -QMAKE_CFLAGS_RELEASE = -O -QMAKE_CFLAGS_DEBUG = -g -QMAKE_CFLAGS_SHLIB = -KPIC -QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CFLAGS_YACC = -Wf,--diag_suppress,111 -Wf,--diag_suppress,177 -QMAKE_CFLAGS_THREAD = -Kthread - -QMAKE_CXX = CC -QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -Wf,--display_error_number -Wf,--diag_suppress,838 -QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -Tused -QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG -QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB -QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC -QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD - -QMAKE_INCDIR = -QMAKE_LIBDIR = -QMAKE_INCDIR_X11 = -QMAKE_LIBDIR_X11 = /usr/X/lib -QMAKE_INCDIR_OPENGL = -QMAKE_LIBDIR_OPENGL = - -QMAKE_LINK = CC -QMAKE_LINK_SHLIB = CC -QMAKE_LFLAGS = -QMAKE_LFLAGS_RELEASE = -QMAKE_LFLAGS_DEBUG = -QMAKE_LFLAGS_SHLIB = -G -QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB -QMAKE_LFLAGS_SONAME = -h$$LITERAL_WHITESPACE -QMAKE_LFLAGS_THREAD = -Kthread -QMAKE_LFLAGS_RPATH = -R - -QMAKE_LIBS = -QMAKE_LIBS_DYNLOAD = -ldl -QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl -lm - -QMAKE_LIBS_OPENGL = -lGL -lXt - -QMAKE_LIBS_THREAD = - -QMAKE_AR = ar cq -QMAKE_OBJCOPY = objcopy -QMAKE_NM = nm -P -QMAKE_RANLIB = - -load(qt_config) diff --git a/mkspecs/unixware-cc/qplatformdefs.h b/mkspecs/unixware-cc/qplatformdefs.h deleted file mode 100644 index 036a9aa5bd..0000000000 --- a/mkspecs/unixware-cc/qplatformdefs.h +++ /dev/null @@ -1,89 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QPLATFORMDEFS_H -#define QPLATFORMDEFS_H - -// Get Qt defines/settings - -#include "qglobal.h" - -// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs - -#include <unistd.h> - - -// We are hot - unistd.h should have turned on the specific APIs we requested - - -#include <pthread.h> -#include <dirent.h> -#include <fcntl.h> -#include <grp.h> -#include <pwd.h> -#include <signal.h> -#include <dlfcn.h> - -#include <sys/types.h> -#include <sys/ioctl.h> -#include <sys/filio.h> -#include <sys/ipc.h> -#include <sys/time.h> -#include <sys/shm.h> -#include <sys/socket.h> -#include <sys/stat.h> -#include <sys/wait.h> -#include <netinet/in.h> -#ifndef QT_NO_IPV6IFNAME -#include <net/if.h> -#endif - -#define QT_NO_USE_FSEEKO -#include "../common/posix/qplatformdefs.h" - -#undef QT_OFF_T -#undef QT_SOCKLEN_T - -#define QT_OFF_T off_t -#define QT_SOCKLEN_T size_t - -#define QT_SNPRINTF ::snprintf -#define QT_VSNPRINTF ::vsnprintf - -#endif // QPLATFORMDEFS_H diff --git a/mkspecs/unixware-g++/qmake.conf b/mkspecs/unixware-g++/qmake.conf deleted file mode 100644 index abe2773deb..0000000000 --- a/mkspecs/unixware-g++/qmake.conf +++ /dev/null @@ -1,73 +0,0 @@ -# -# qmake configuration for unixware-g++ -# -# Written for UnixWare 7 with OSTK -# - -MAKEFILE_GENERATOR = UNIX -QMAKE_PLATFORM = unixware - -include(../common/unix.conf) - -QMAKE_COMPILER = gcc - -QMAKE_CC = gcc -QMAKE_LEX = flex -QMAKE_LEXFLAGS = -QMAKE_YACC = yacc -QMAKE_YACCFLAGS = -d -QMAKE_CFLAGS = -QMAKE_CFLAGS_DEPS = -M -QMAKE_CFLAGS_WARN_ON = -Wall -W -QMAKE_CFLAGS_WARN_OFF = -w -QMAKE_CFLAGS_RELEASE = -O2 -QMAKE_CFLAGS_DEBUG = -g -QMAKE_CFLAGS_SHLIB = -fPIC -QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses -QMAKE_CFLAGS_THREAD = - -QMAKE_CXX = g++ -QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS -QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG -QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB -QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC -QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD - -QMAKE_INCDIR = -QMAKE_LIBDIR = -QMAKE_INCDIR_X11 = -QMAKE_LIBDIR_X11 = /usr/X/lib -QMAKE_INCDIR_OPENGL = -QMAKE_LIBDIR_OPENGL = - -QMAKE_LINK = g++ -QMAKE_LINK_SHLIB = g++ -QMAKE_LINK_C = gcc -QMAKE_LINK_C_SHLIB = gcc -QMAKE_LFLAGS = -QMAKE_LFLAGS_RELEASE = -QMAKE_LFLAGS_DEBUG = -QMAKE_LFLAGS_SHLIB = -shared -QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB -QMAKE_LFLAGS_SONAME = -QMAKE_LFLAGS_THREAD = -QMAKE_LFLAGS_RPATH = -Wl,-R, - -QMAKE_LIBS = -QMAKE_LIBS_DYNLOAD = -ldl -QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl -lm -QMAKE_LIBS_OPENGL = -lGL -lXt -QMAKE_LIBS_THREAD = -lthread - -QMAKE_AR = ar cq -QMAKE_OBJCOPY = objcopy -QMAKE_NM = nm -P -QMAKE_RANLIB = - -load(qt_config) diff --git a/mkspecs/unixware-g++/qplatformdefs.h b/mkspecs/unixware-g++/qplatformdefs.h deleted file mode 100644 index 036a9aa5bd..0000000000 --- a/mkspecs/unixware-g++/qplatformdefs.h +++ /dev/null @@ -1,89 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QPLATFORMDEFS_H -#define QPLATFORMDEFS_H - -// Get Qt defines/settings - -#include "qglobal.h" - -// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs - -#include <unistd.h> - - -// We are hot - unistd.h should have turned on the specific APIs we requested - - -#include <pthread.h> -#include <dirent.h> -#include <fcntl.h> -#include <grp.h> -#include <pwd.h> -#include <signal.h> -#include <dlfcn.h> - -#include <sys/types.h> -#include <sys/ioctl.h> -#include <sys/filio.h> -#include <sys/ipc.h> -#include <sys/time.h> -#include <sys/shm.h> -#include <sys/socket.h> -#include <sys/stat.h> -#include <sys/wait.h> -#include <netinet/in.h> -#ifndef QT_NO_IPV6IFNAME -#include <net/if.h> -#endif - -#define QT_NO_USE_FSEEKO -#include "../common/posix/qplatformdefs.h" - -#undef QT_OFF_T -#undef QT_SOCKLEN_T - -#define QT_OFF_T off_t -#define QT_SOCKLEN_T size_t - -#define QT_SNPRINTF ::snprintf -#define QT_VSNPRINTF ::vsnprintf - -#endif // QPLATFORMDEFS_H diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp index 4568f1d4f2..c76708285a 100644 --- a/qmake/generators/makefile.cpp +++ b/qmake/generators/makefile.cpp @@ -1283,14 +1283,12 @@ MakefileGenerator::writeInstalls(QTextStream &t, bool noBuild) if(is_target || exists(wild)) { //real file or target QFileInfo fi(fileInfo(wild)); QString dst_file = filePrefixRoot(root, dst_dir); - if(fi.isDir() && project->isActiveConfig("copy_dir_files")) { - if(!dst_file.endsWith(Option::dir_sep)) - dst_file += Option::dir_sep; - dst_file += fi.fileName(); - } + if (!dst_file.endsWith(Option::dir_sep)) + dst_file += Option::dir_sep; + dst_file += fi.fileName(); QString cmd; if (fi.isDir()) - cmd = "-$(INSTALL_DIR)"; + cmd = "-$(QINSTALL_DIR)"; else if (is_target || fi.isExecutable()) cmd = "-$(QINSTALL_PROGRAM)"; else @@ -1310,13 +1308,11 @@ MakefileGenerator::writeInstalls(QTextStream &t, bool noBuild) if (installConfigValues.contains("no_check_exist") && files.isEmpty()) { QString dst_file = filePrefixRoot(root, dst_dir); QString cmd; + if (!dst_file.endsWith(Option::dir_sep)) + dst_file += Option::dir_sep; + dst_file += filestr; if (installConfigValues.contains("directory")) { - cmd = QLatin1String("-$(INSTALL_DIR)"); - if (project->isActiveConfig("copy_dir_files")) { - if (!dst_file.endsWith(Option::dir_sep)) - dst_file += Option::dir_sep; - dst_file += filestr; - } + cmd = QLatin1String("-$(QINSTALL_DIR)"); } else if (installConfigValues.contains("executable")) { cmd = QLatin1String("-$(QINSTALL_PROGRAM)"); } else { @@ -1331,12 +1327,10 @@ MakefileGenerator::writeInstalls(QTextStream &t, bool noBuild) uninst.append(rm_dir_contents + " " + escapeFilePath(filePrefixRoot(root, fileFixify(dst_dir + file, FileFixifyAbsolute, false)))); QFileInfo fi(fileInfo(dirstr + file)); QString dst_file = filePrefixRoot(root, fileFixify(dst_dir, FileFixifyAbsolute, false)); - if(fi.isDir() && project->isActiveConfig("copy_dir_files")) { - if(!dst_file.endsWith(Option::dir_sep)) - dst_file += Option::dir_sep; - dst_file += fi.fileName(); - } - QString cmd = QString(fi.isDir() ? "-$(INSTALL_DIR)" : "-$(QINSTALL_FILE)") + " " + + if (!dst_file.endsWith(Option::dir_sep)) + dst_file += Option::dir_sep; + dst_file += fi.fileName(); + QString cmd = QString(fi.isDir() ? "-$(QINSTALL_DIR)" : "-$(QINSTALL_FILE)") + " " + escapeFilePath(dirstr + file) + " " + escapeFilePath(dst_file); inst << cmd; if (!project->isActiveConfig("debug_info") && !project->isActiveConfig("nostrip") && @@ -2250,6 +2244,7 @@ MakefileGenerator::writeDefaultVariables(QTextStream &t) t << "INSTALL_DIR = " << var("QMAKE_INSTALL_DIR") << endl; t << "QINSTALL_FILE = " << var("QMAKE_QMAKE") << " -install qinstall file" << endl; t << "QINSTALL_PROGRAM = " << var("QMAKE_QMAKE") << " -install qinstall program" << endl; + t << "QINSTALL_DIR = " << var("QMAKE_QMAKE") << " -install qinstall directory" << endl; t << "DEL_FILE = " << var("QMAKE_DEL_FILE") << endl; t << "SYMLINK = " << var("QMAKE_SYMBOLIC_LINK") << endl; t << "DEL_DIR = " << var("QMAKE_DEL_DIR") << endl; diff --git a/qmake/generators/unix/unixmake.cpp b/qmake/generators/unix/unixmake.cpp index 1073386a82..20318f120c 100644 --- a/qmake/generators/unix/unixmake.cpp +++ b/qmake/generators/unix/unixmake.cpp @@ -636,7 +636,7 @@ UnixMakefileGenerator::defaultInstall(const QString &t) QString copy_cmd; if (bundle == SolidBundle) { - copy_cmd += "-$(INSTALL_DIR) " + src_targ + ' ' + plain_targ; + copy_cmd += "-$(QINSTALL_DIR) " + src_targ + ' ' + plain_targ; } else if (project->first("TEMPLATE") == "lib" && project->isActiveConfig("staticlib")) { copy_cmd += "-$(QINSTALL_FILE) " + src_targ + ' ' + dst_targ; } else if (!isAux) { @@ -698,7 +698,7 @@ UnixMakefileGenerator::defaultInstall(const QString &t) ret += "\n\t"; ret += mkdir_p_asstring("\"`dirname " + dst + "`\"", false) + "\n\t"; ret += "-$(DEL_FILE) " + dst + "\n\t"; // Can't overwrite symlinks to directories - ret += "-$(INSTALL_DIR) " + escapeFilePath(src) + " " + dst; // Use cp -R to copy symlinks + ret += "-$(QINSTALL_DIR) " + escapeFilePath(src) + " " + dst; if (!uninst.isEmpty()) uninst.append("\n\t"); uninst.append("-$(DEL_FILE) " + dst); diff --git a/qmake/generators/win32/msvc_nmake.cpp b/qmake/generators/win32/msvc_nmake.cpp index 8ac462da6b..ef1eaf095e 100644 --- a/qmake/generators/win32/msvc_nmake.cpp +++ b/qmake/generators/win32/msvc_nmake.cpp @@ -94,8 +94,8 @@ NmakeMakefileGenerator::writeMakefile(QTextStream &t) compiler += QStringLiteral("x64"); compilerArch = QStringLiteral("amd64"); } else { + arch = QStringLiteral("x86"); compiler += QStringLiteral("x86"); - compilerArch = QStringLiteral("amd64"); } } else { if (arch == QLatin1String("arm")) { diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp index 86d388354a..2013698c99 100644 --- a/qmake/generators/win32/winmakefile.cpp +++ b/qmake/generators/win32/winmakefile.cpp @@ -532,6 +532,7 @@ void Win32MakefileGenerator::writeStandardParts(QTextStream &t) t << "INSTALL_DIR = " << var("QMAKE_INSTALL_DIR") << endl; t << "QINSTALL_FILE = " << var("QMAKE_QMAKE") << " -install qinstall file" << endl; t << "QINSTALL_PROGRAM = " << var("QMAKE_QMAKE") << " -install qinstall program" << endl; + t << "QINSTALL_DIR = " << var("QMAKE_QMAKE") << " -install qinstall directory" << endl; t << endl; t << "####### Output directory\n\n"; diff --git a/qmake/library/ioutils.cpp b/qmake/library/ioutils.cpp index 39264952c6..684bcb9a37 100644 --- a/qmake/library/ioutils.cpp +++ b/qmake/library/ioutils.cpp @@ -253,4 +253,39 @@ bool IoUtils::touchFile(const QString &targetFileName, const QString &referenceF } #endif +#ifdef Q_OS_UNIX +bool IoUtils::readLinkTarget(const QString &symlinkPath, QString *target) +{ + const QByteArray localSymlinkPath = QFile::encodeName(symlinkPath); +# if defined(__GLIBC__) && !defined(PATH_MAX) +# define PATH_CHUNK_SIZE 256 + char *s = 0; + int len = -1; + int size = PATH_CHUNK_SIZE; + + forever { + s = (char *)::realloc(s, size); + len = ::readlink(localSymlinkPath.constData(), s, size); + if (len < 0) { + ::free(s); + break; + } + if (len < size) + break; + size *= 2; + } +# else + char s[PATH_MAX+1]; + int len = readlink(localSymlinkPath.constData(), s, PATH_MAX); +# endif + if (len <= 0) + return false; + *target = QFile::decodeName(QByteArray(s, len)); +# if defined(__GLIBC__) && !defined(PATH_MAX) + ::free(s); +# endif + return true; +} +#endif + QT_END_NAMESPACE diff --git a/qmake/library/ioutils.h b/qmake/library/ioutils.h index 905974b7cb..ad379404f3 100644 --- a/qmake/library/ioutils.h +++ b/qmake/library/ioutils.h @@ -65,6 +65,9 @@ public: #if defined(PROEVALUATOR_FULL) static bool touchFile(const QString &targetFileName, const QString &referenceFileName, QString *errorString); #endif +#ifdef Q_OS_UNIX + static bool readLinkTarget(const QString &symlinkPath, QString *target); +#endif }; } // namespace ProFileEvaluatorInternal diff --git a/qmake/main.cpp b/qmake/main.cpp index 2bdb5370df..f25b128d03 100644 --- a/qmake/main.cpp +++ b/qmake/main.cpp @@ -36,6 +36,7 @@ #include <qdebug.h> #include <qregexp.h> #include <qdir.h> +#include <qdiriterator.h> #include <stdio.h> #include <stdlib.h> #include <ctype.h> @@ -43,6 +44,11 @@ #include <sys/types.h> #include <sys/stat.h> +#if defined(Q_OS_UNIX) +#include <errno.h> +#include <unistd.h> +#endif + #ifdef Q_OS_WIN # include <qt_windows.h> #endif @@ -236,17 +242,11 @@ static int doLink(int argc, char **argv) #endif -static int installFile(const QString &source, const QString &targetFileOrDirectory, bool exe = false) +static int installFile(const QString &source, const QString &target, bool exe = false) { QFile sourceFile(source); - QString target(targetFileOrDirectory); - if (QFileInfo(target).isDir()) - target += QDir::separator() + QFileInfo(sourceFile.fileName()).fileName(); - - if (QFile::exists(target)) - QFile::remove(target); - + QFile::remove(target); QDir::root().mkpath(QFileInfo(target).absolutePath()); if (!sourceFile.copy(target)) { @@ -273,6 +273,44 @@ static int installFile(const QString &source, const QString &targetFileOrDirecto return 0; } +static int installDirectory(const QString &source, const QString &target) +{ + QFileInfo fi(source); + if (false) { +#if defined(Q_OS_UNIX) + } else if (fi.isSymLink()) { + QString linkTarget; + if (!IoUtils::readLinkTarget(fi.absoluteFilePath(), &linkTarget)) { + fprintf(stderr, "Could not read link %s: %s\n", qPrintable(fi.absoluteFilePath()), strerror(errno)); + return 3; + } + QFile::remove(target); + if (::symlink(linkTarget.toLocal8Bit().constData(), target.toLocal8Bit().constData()) < 0) { + fprintf(stderr, "Could not create link: %s\n", strerror(errno)); + return 3; + } +#endif + } else if (fi.isDir()) { + QDir::current().mkpath(target); + + QDirIterator it(source, QDir::AllEntries | QDir::NoDotAndDotDot); + while (it.hasNext()) { + it.next(); + const QFileInfo &entry = it.fileInfo(); + const QString &entryTarget = target + QDir::separator() + entry.fileName(); + + const int recursionResult = installDirectory(entry.filePath(), entryTarget); + if (recursionResult != 0) + return recursionResult; + } + } else { + const int fileCopyResult = installFile(source, target); + if (fileCopyResult != 0) + return fileCopyResult; + } + return 0; +} + static int doQInstall(int argc, char **argv) { if (argc != 3) { @@ -287,6 +325,8 @@ static int doQInstall(int argc, char **argv) return installFile(source, target); if (!strcmp(argv[0], "program")) return installFile(source, target, /*exe=*/true); + if (!strcmp(argv[0], "directory")) + return installDirectory(source, target); fprintf(stderr, "Error: Unsupported qinstall command type %s\n", argv[0]); return 3; diff --git a/src/android/java/src/org/qtproject/qt5/android/bindings/QtLoader.java b/src/android/java/src/org/qtproject/qt5/android/bindings/QtLoader.java index aeac2448bb..69f351033d 100644 --- a/src/android/java/src/org/qtproject/qt5/android/bindings/QtLoader.java +++ b/src/android/java/src/org/qtproject/qt5/android/bindings/QtLoader.java @@ -608,9 +608,11 @@ public abstract class QtLoader { if (!(new File(stylePath)).exists() && !extractOption.equals("none")) { loaderParams.putString(EXTRACT_STYLE_KEY, stylePath); loaderParams.putBoolean(EXTRACT_STYLE_MINIMAL_KEY, extractOption.equals("minimal")); - if (extractOption.equals("full")) - ENVIRONMENT_VARIABLES += "\tQT_USE_ANDROID_NATIVE_STYLE=1"; } + + if (extractOption.equals("full")) + ENVIRONMENT_VARIABLES += "\tQT_USE_ANDROID_NATIVE_STYLE=1"; + ENVIRONMENT_VARIABLES += "\tMINISTRO_ANDROID_STYLE_PATH=" + stylePath + "\tQT_ANDROID_THEMES_ROOT_PATH=" + themePath; diff --git a/src/concurrent/qtconcurrentrun.h b/src/concurrent/qtconcurrentrun.h index 8e7c495a0f..c0c0e66913 100644 --- a/src/concurrent/qtconcurrentrun.h +++ b/src/concurrent/qtconcurrentrun.h @@ -606,6 +606,317 @@ QFuture<T> run(QThreadPool *pool, const Class *object, T (Class::*fn)(Param1, Pa return (new typename SelectStoredConstMemberFunctionPointerCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>::type(fn, object, arg1, arg2, arg3, arg4, arg5))->start(pool); } +#if defined(__cpp_noexcept_function_type) && __cpp_noexcept_function_type >= 201510 +template <typename T> +QFuture<T> run(T (*functionPointer)() noexcept) +{ + return (new StoredFunctorCall0<T, T (*)() noexcept>(functionPointer))->start(); +} +template <typename T, typename Param1, typename Arg1> +QFuture<T> run(T (*functionPointer)(Param1) noexcept, const Arg1 &arg1) +{ + return (new StoredFunctorCall1<T, T (*)(Param1) noexcept, Arg1>(functionPointer, arg1))->start(); +} +template <typename T, typename Param1, typename Arg1, typename Param2, typename Arg2> +QFuture<T> run(T (*functionPointer)(Param1, Param2) noexcept, const Arg1 &arg1, const Arg2 &arg2) +{ + return (new StoredFunctorCall2<T, T (*)(Param1, Param2) noexcept, Arg1, Arg2>(functionPointer, arg1, arg2))->start(); +} +template <typename T, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3> +QFuture<T> run(T (*functionPointer)(Param1, Param2, Param3) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3) +{ + return (new StoredFunctorCall3<T, T (*)(Param1, Param2, Param3) noexcept, Arg1, Arg2, Arg3>(functionPointer, arg1, arg2, arg3))->start(); +} +template <typename T, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4> +QFuture<T> run(T (*functionPointer)(Param1, Param2, Param3, Param4) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4) +{ + return (new StoredFunctorCall4<T, T (*)(Param1, Param2, Param3, Param4) noexcept, Arg1, Arg2, Arg3, Arg4>(functionPointer, arg1, arg2, arg3, arg4))->start(); +} +template <typename T, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5> +QFuture<T> run(T (*functionPointer)(Param1, Param2, Param3, Param4, Param5) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5) +{ + return (new StoredFunctorCall5<T, T (*)(Param1, Param2, Param3, Param4, Param5) noexcept, Arg1, Arg2, Arg3, Arg4, Arg5>(functionPointer, arg1, arg2, arg3, arg4, arg5))->start(); +} + +template <typename T, typename Class> +QFuture<T> run(const Class &object, T (Class::*fn)() noexcept) +{ + return (new typename SelectStoredNoExceptMemberFunctionCall0<T, Class>::type(fn, object))->start(); +} +template <typename T, typename Class, typename Param1, typename Arg1> +QFuture<T> run(const Class &object, T (Class::*fn)(Param1) noexcept, const Arg1 &arg1) +{ + return (new typename SelectStoredNoExceptMemberFunctionCall1<T, Class, Param1, Arg1>::type(fn, object, arg1))->start(); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2> +QFuture<T> run(const Class &object, T (Class::*fn)(Param1, Param2) noexcept, const Arg1 &arg1, const Arg2 &arg2) +{ + return (new typename SelectStoredNoExceptMemberFunctionCall2<T, Class, Param1, Arg1, Param2, Arg2>::type(fn, object, arg1, arg2))->start(); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3> +QFuture<T> run(const Class &object, T (Class::*fn)(Param1, Param2, Param3) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3) +{ + return (new typename SelectStoredNoExceptMemberFunctionCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>::type(fn, object, arg1, arg2, arg3))->start(); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4> +QFuture<T> run(const Class &object, T (Class::*fn)(Param1, Param2, Param3, Param4) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4) +{ + return (new typename SelectStoredNoExceptMemberFunctionCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>::type(fn, object, arg1, arg2, arg3, arg4))->start(); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5> +QFuture<T> run(const Class &object, T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5) +{ + return (new typename SelectStoredNoExceptMemberFunctionCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>::type(fn, object, arg1, arg2, arg3, arg4, arg5))->start(); +} + +template <typename T, typename Class> +QFuture<T> run(const Class &object, T (Class::*fn)() const noexcept) +{ + return (new typename SelectStoredConstNoExceptMemberFunctionCall0<T, Class>::type(fn, object))->start(); +} +template <typename T, typename Class, typename Param1, typename Arg1> +QFuture<T> run(const Class &object, T (Class::*fn)(Param1) const noexcept, const Arg1 &arg1) +{ + return (new typename SelectStoredConstNoExceptMemberFunctionCall1<T, Class, Param1, Arg1>::type(fn, object, arg1))->start(); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2> +QFuture<T> run(const Class &object, T (Class::*fn)(Param1, Param2) const noexcept, const Arg1 &arg1, const Arg2 &arg2) +{ + return (new typename SelectStoredConstNoExceptMemberFunctionCall2<T, Class, Param1, Arg1, Param2, Arg2>::type(fn, object, arg1, arg2))->start(); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3> +QFuture<T> run(const Class &object, T (Class::*fn)(Param1, Param2, Param3) const noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3) +{ + return (new typename SelectStoredConstNoExceptMemberFunctionCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>::type(fn, object, arg1, arg2, arg3))->start(); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4> +QFuture<T> run(const Class &object, T (Class::*fn)(Param1, Param2, Param3, Param4) const noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4) +{ + return (new typename SelectStoredConstNoExceptMemberFunctionCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>::type(fn, object, arg1, arg2, arg3, arg4))->start(); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5> +QFuture<T> run(const Class &object, T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) const noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5) +{ + return (new typename SelectStoredConstNoExceptMemberFunctionCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>::type(fn, object, arg1, arg2, arg3, arg4, arg5))->start(); +} + +template <typename T, typename Class> +QFuture<T> run(Class *object, T (Class::*fn)() noexcept) +{ + return (new typename SelectStoredNoExceptMemberFunctionPointerCall0<T, Class>::type(fn, object))->start(); +} +template <typename T, typename Class, typename Param1, typename Arg1> +QFuture<T> run(Class *object, T (Class::*fn)(Param1) noexcept, const Arg1 &arg1) +{ + return (new typename SelectStoredNoExceptMemberFunctionPointerCall1<T, Class, Param1, Arg1>::type(fn, object, arg1))->start(); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2> +QFuture<T> run(Class *object, T (Class::*fn)(Param1, Param2) noexcept, const Arg1 &arg1, const Arg2 &arg2) +{ + return (new typename SelectStoredNoExceptMemberFunctionPointerCall2<T, Class, Param1, Arg1, Param2, Arg2>::type(fn, object, arg1, arg2))->start(); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3> +QFuture<T> run(Class *object, T (Class::*fn)(Param1, Param2, Param3) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3) +{ + return (new typename SelectStoredNoExceptMemberFunctionPointerCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>::type(fn, object, arg1, arg2, arg3))->start(); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4> +QFuture<T> run(Class *object, T (Class::*fn)(Param1, Param2, Param3, Param4) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4) +{ + return (new typename SelectStoredNoExceptMemberFunctionPointerCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>::type(fn, object, arg1, arg2, arg3, arg4))->start(); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5> +QFuture<T> run(Class *object, T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5) +{ + return (new typename SelectStoredNoExceptMemberFunctionPointerCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>::type(fn, object, arg1, arg2, arg3, arg4, arg5))->start(); +} + +template <typename T, typename Class> +QFuture<T> run(const Class *object, T (Class::*fn)() const noexcept) +{ + return (new typename SelectStoredConstNoExceptMemberFunctionPointerCall0<T, Class>::type(fn, object))->start(); +} +template <typename T, typename Class, typename Param1, typename Arg1> +QFuture<T> run(const Class *object, T (Class::*fn)(Param1) const noexcept, const Arg1 &arg1) +{ + return (new typename SelectStoredConstNoExceptMemberFunctionPointerCall1<T, Class, Param1, Arg1>::type(fn, object, arg1))->start(); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2> +QFuture<T> run(const Class *object, T (Class::*fn)(Param1, Param2) const noexcept, const Arg1 &arg1, const Arg2 &arg2) +{ + return (new typename SelectStoredConstNoExceptMemberFunctionPointerCall2<T, Class, Param1, Arg1, Param2, Arg2>::type(fn, object, arg1, arg2))->start(); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3> +QFuture<T> run(const Class *object, T (Class::*fn)(Param1, Param2, Param3) const noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3) +{ + return (new typename SelectStoredConstNoExceptMemberFunctionPointerCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>::type(fn, object, arg1, arg2, arg3))->start(); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4> +QFuture<T> run(const Class *object, T (Class::*fn)(Param1, Param2, Param3, Param4) const noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4) +{ + return (new typename SelectStoredConstNoExceptMemberFunctionPointerCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>::type(fn, object, arg1, arg2, arg3, arg4))->start(); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5> +QFuture<T> run(const Class *object, T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) const noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5) +{ + return (new typename SelectStoredConstNoExceptMemberFunctionPointerCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>::type(fn, object, arg1, arg2, arg3, arg4, arg5))->start(); +} +template <typename T> +QFuture<T> run(QThreadPool *pool, T (*functionPointer)() noexcept) +{ + return (new StoredFunctorCall0<T, T (*)() noexcept>(functionPointer))->start(pool); +} +template <typename T, typename Param1, typename Arg1> +QFuture<T> run(QThreadPool *pool, T (*functionPointer)(Param1) noexcept, const Arg1 &arg1) +{ + return (new StoredFunctorCall1<T, T (*)(Param1) noexcept, Arg1>(functionPointer, arg1))->start(pool); +} +template <typename T, typename Param1, typename Arg1, typename Param2, typename Arg2> +QFuture<T> run(QThreadPool *pool, T (*functionPointer)(Param1, Param2) noexcept, const Arg1 &arg1, const Arg2 &arg2) +{ + return (new StoredFunctorCall2<T, T (*)(Param1, Param2) noexcept, Arg1, Arg2>(functionPointer, arg1, arg2))->start(pool); +} +template <typename T, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3> +QFuture<T> run(QThreadPool *pool, T (*functionPointer)(Param1, Param2, Param3) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3) +{ + return (new StoredFunctorCall3<T, T (*)(Param1, Param2, Param3) noexcept, Arg1, Arg2, Arg3>(functionPointer, arg1, arg2, arg3))->start(pool); +} +template <typename T, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4> +QFuture<T> run(QThreadPool *pool, T (*functionPointer)(Param1, Param2, Param3, Param4) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4) +{ + return (new StoredFunctorCall4<T, T (*)(Param1, Param2, Param3, Param4) noexcept, Arg1, Arg2, Arg3, Arg4>(functionPointer, arg1, arg2, arg3, arg4))->start(pool); +} +template <typename T, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5> +QFuture<T> run(QThreadPool *pool, T (*functionPointer)(Param1, Param2, Param3, Param4, Param5) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5) +{ + return (new StoredFunctorCall5<T, T (*)(Param1, Param2, Param3, Param4, Param5) noexcept, Arg1, Arg2, Arg3, Arg4, Arg5>(functionPointer, arg1, arg2, arg3, arg4, arg5))->start(pool); +} + +template <typename T, typename Class> +QFuture<T> run(QThreadPool *pool, const Class &object, T (Class::*fn)() noexcept) +{ + return (new typename SelectStoredNoExceptMemberFunctionCall0<T, Class>::type(fn, object))->start(pool); +} +template <typename T, typename Class, typename Param1, typename Arg1> +QFuture<T> run(QThreadPool *pool, const Class &object, T (Class::*fn)(Param1) noexcept, const Arg1 &arg1) +{ + return (new typename SelectStoredNoExceptMemberFunctionCall1<T, Class, Param1, Arg1>::type(fn, object, arg1))->start(pool); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2> +QFuture<T> run(QThreadPool *pool, const Class &object, T (Class::*fn)(Param1, Param2) noexcept, const Arg1 &arg1, const Arg2 &arg2) +{ + return (new typename SelectStoredNoExceptMemberFunctionCall2<T, Class, Param1, Arg1, Param2, Arg2>::type(fn, object, arg1, arg2))->start(pool); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3> +QFuture<T> run(QThreadPool *pool, const Class &object, T (Class::*fn)(Param1, Param2, Param3) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3) +{ + return (new typename SelectStoredNoExceptMemberFunctionCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>::type(fn, object, arg1, arg2, arg3))->start(pool); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4> +QFuture<T> run(QThreadPool *pool, const Class &object, T (Class::*fn)(Param1, Param2, Param3, Param4) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4) +{ + return (new typename SelectStoredNoExceptMemberFunctionCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>::type(fn, object, arg1, arg2, arg3, arg4))->start(pool); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5> +QFuture<T> run(QThreadPool *pool, const Class &object, T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5) +{ + return (new typename SelectStoredNoExceptMemberFunctionCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>::type(fn, object, arg1, arg2, arg3, arg4, arg5))->start(pool); +} + +template <typename T, typename Class> +QFuture<T> run(QThreadPool *pool, const Class &object, T (Class::*fn)() const noexcept) +{ + return (new typename SelectStoredConstNoExceptMemberFunctionCall0<T, Class>::type(fn, object))->start(pool); +} +template <typename T, typename Class, typename Param1, typename Arg1> +QFuture<T> run(QThreadPool *pool, const Class &object, T (Class::*fn)(Param1) const noexcept, const Arg1 &arg1) +{ + return (new typename SelectStoredConstNoExceptMemberFunctionCall1<T, Class, Param1, Arg1>::type(fn, object, arg1))->start(pool); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2> +QFuture<T> run(QThreadPool *pool, const Class &object, T (Class::*fn)(Param1, Param2) const noexcept, const Arg1 &arg1, const Arg2 &arg2) +{ + return (new typename SelectStoredConstNoExceptMemberFunctionCall2<T, Class, Param1, Arg1, Param2, Arg2>::type(fn, object, arg1, arg2))->start(pool); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3> +QFuture<T> run(QThreadPool *pool, const Class &object, T (Class::*fn)(Param1, Param2, Param3) const noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3) +{ + return (new typename SelectStoredConstNoExceptMemberFunctionCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>::type(fn, object, arg1, arg2, arg3))->start(pool); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4> +QFuture<T> run(QThreadPool *pool, const Class &object, T (Class::*fn)(Param1, Param2, Param3, Param4) const noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4) +{ + return (new typename SelectStoredConstNoExceptMemberFunctionCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>::type(fn, object, arg1, arg2, arg3, arg4))->start(pool); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5> +QFuture<T> run(QThreadPool *pool, const Class &object, T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) const noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5) +{ + return (new typename SelectStoredConstNoExceptMemberFunctionCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>::type(fn, object, arg1, arg2, arg3, arg4, arg5))->start(pool); +} + +template <typename T, typename Class> +QFuture<T> run(QThreadPool *pool, Class *object, T (Class::*fn)() noexcept) +{ + return (new typename SelectStoredNoExceptMemberFunctionPointerCall0<T, Class>::type(fn, object))->start(pool); +} +template <typename T, typename Class, typename Param1, typename Arg1> +QFuture<T> run(QThreadPool *pool, Class *object, T (Class::*fn)(Param1) noexcept, const Arg1 &arg1) +{ + return (new typename SelectStoredNoExceptMemberFunctionPointerCall1<T, Class, Param1, Arg1>::type(fn, object, arg1))->start(pool); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2> +QFuture<T> run(QThreadPool *pool, Class *object, T (Class::*fn)(Param1, Param2) noexcept, const Arg1 &arg1, const Arg2 &arg2) +{ + return (new typename SelectStoredNoExceptMemberFunctionPointerCall2<T, Class, Param1, Arg1, Param2, Arg2>::type(fn, object, arg1, arg2))->start(pool); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3> +QFuture<T> run(QThreadPool *pool, Class *object, T (Class::*fn)(Param1, Param2, Param3) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3) +{ + return (new typename SelectStoredNoExceptMemberFunctionPointerCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>::type(fn, object, arg1, arg2, arg3))->start(pool); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4> +QFuture<T> run(QThreadPool *pool, Class *object, T (Class::*fn)(Param1, Param2, Param3, Param4) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4) +{ + return (new typename SelectStoredNoExceptMemberFunctionPointerCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>::type(fn, object, arg1, arg2, arg3, arg4))->start(pool); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5> +QFuture<T> run(QThreadPool *pool, Class *object, T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5) +{ + return (new typename SelectStoredNoExceptMemberFunctionPointerCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>::type(fn, object, arg1, arg2, arg3, arg4, arg5))->start(pool); +} + +template <typename T, typename Class> +QFuture<T> run(QThreadPool *pool, const Class *object, T (Class::*fn)() const noexcept) +{ + return (new typename SelectStoredConstNoExceptMemberFunctionPointerCall0<T, Class>::type(fn, object))->start(pool); +} +template <typename T, typename Class, typename Param1, typename Arg1> +QFuture<T> run(QThreadPool *pool, const Class *object, T (Class::*fn)(Param1) const noexcept, const Arg1 &arg1) +{ + return (new typename SelectStoredConstNoExceptMemberFunctionPointerCall1<T, Class, Param1, Arg1>::type(fn, object, arg1))->start(pool); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2> +QFuture<T> run(QThreadPool *pool, const Class *object, T (Class::*fn)(Param1, Param2) const noexcept, const Arg1 &arg1, const Arg2 &arg2) +{ + return (new typename SelectStoredConstNoExceptMemberFunctionPointerCall2<T, Class, Param1, Arg1, Param2, Arg2>::type(fn, object, arg1, arg2))->start(pool); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3> +QFuture<T> run(QThreadPool *pool, const Class *object, T (Class::*fn)(Param1, Param2, Param3) const noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3) +{ + return (new typename SelectStoredConstNoExceptMemberFunctionPointerCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>::type(fn, object, arg1, arg2, arg3))->start(pool); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4> +QFuture<T> run(QThreadPool *pool, const Class *object, T (Class::*fn)(Param1, Param2, Param3, Param4) const noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4) +{ + return (new typename SelectStoredConstNoExceptMemberFunctionPointerCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>::type(fn, object, arg1, arg2, arg3, arg4))->start(pool); +} +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5> +QFuture<T> run(QThreadPool *pool, const Class *object, T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) const noexcept, const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3, const Arg4 &arg4, const Arg5 &arg5) +{ + return (new typename SelectStoredConstNoExceptMemberFunctionPointerCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>::type(fn, object, arg1, arg2, arg3, arg4, arg5))->start(pool); +} +#endif + } //namespace QtConcurrent #endif // Q_QDOC diff --git a/src/concurrent/qtconcurrentstoredfunctioncall.h b/src/concurrent/qtconcurrentstoredfunctioncall.h index eba6a1aad0..32a0214a88 100644 --- a/src/concurrent/qtconcurrentstoredfunctioncall.h +++ b/src/concurrent/qtconcurrentstoredfunctioncall.h @@ -255,6 +255,165 @@ struct SelectStoredConstMemberFunctionPointerCall0 Type<StoredConstMemberFunctionPointerCall0 <T, Class>, VoidStoredConstMemberFunctionPointerCall0<T, Class> >::type type; }; +#if defined(__cpp_noexcept_function_type) && __cpp_noexcept_function_type >= 201510 +template <typename T, typename Class> +class StoredNoExceptMemberFunctionCall0 : public RunFunctionTask<T> +{ +public: + StoredNoExceptMemberFunctionCall0(T (Class::*_fn)() noexcept, const Class &_object) + : fn(_fn), object(_object){ } + + void runFunctor() override + { + this->result = (object.*fn)(); + } +private: + T (Class::*fn)() noexcept; + Class object; + +}; +template <typename T, typename Class> +class VoidStoredNoExceptMemberFunctionCall0 : public RunFunctionTask<T> +{ +public: + VoidStoredNoExceptMemberFunctionCall0(T (Class::*_fn)() noexcept, const Class &_object) + : fn(_fn), object(_object){ } + + void runFunctor() override + { + (object.*fn)(); + } +private: + T (Class::*fn)() noexcept; + Class object; + +}; +template <typename T, typename Class> +struct SelectStoredNoExceptMemberFunctionCall0 +{ + typedef typename SelectSpecialization<T>::template + Type<StoredNoExceptMemberFunctionCall0 <T, Class>, + VoidStoredNoExceptMemberFunctionCall0<T, Class> >::type type; +}; +template <typename T, typename Class> +class StoredConstNoExceptMemberFunctionCall0 : public RunFunctionTask<T> +{ +public: + StoredConstNoExceptMemberFunctionCall0(T (Class::*_fn)() const noexcept, const Class &_object) + : fn(_fn), object(_object){ } + + void runFunctor() override + { + this->result = (object.*fn)(); + } +private: + T (Class::*fn)() const noexcept; + const Class object; + +}; +template <typename T, typename Class> +class VoidStoredConstNoExceptMemberFunctionCall0 : public RunFunctionTask<T> +{ +public: + VoidStoredConstNoExceptMemberFunctionCall0(T (Class::*_fn)() const noexcept, const Class &_object) + : fn(_fn), object(_object){ } + + void runFunctor() override + { + (object.*fn)(); + } +private: + T (Class::*fn)() const noexcept; + const Class object; + +}; +template <typename T, typename Class> +struct SelectStoredConstNoExceptMemberFunctionCall0 +{ + typedef typename SelectSpecialization<T>::template + Type<StoredConstNoExceptMemberFunctionCall0 <T, Class>, + VoidStoredConstNoExceptMemberFunctionCall0<T, Class> >::type type; +}; +template <typename T, typename Class> +class StoredNoExceptMemberFunctionPointerCall0 : public RunFunctionTask<T> +{ +public: + StoredNoExceptMemberFunctionPointerCall0(T (Class::*_fn)() noexcept, Class *_object) + : fn(_fn), object(_object){ } + + void runFunctor() override + { + this->result = (object->*fn)(); + } +private: + T (Class::*fn)() noexcept; + Class *object; + +}; +template <typename T, typename Class> +class VoidStoredNoExceptMemberFunctionPointerCall0 : public RunFunctionTask<T> +{ +public: + VoidStoredNoExceptMemberFunctionPointerCall0(T (Class::*_fn)() noexcept, Class *_object) + : fn(_fn), object(_object){ } + + void runFunctor() override + { + (object->*fn)(); + } +private: + T (Class::*fn)() noexcept; + Class *object; + +}; +template <typename T, typename Class> +struct SelectStoredNoExceptMemberFunctionPointerCall0 +{ + typedef typename SelectSpecialization<T>::template + Type<StoredNoExceptMemberFunctionPointerCall0 <T, Class>, + VoidStoredNoExceptMemberFunctionPointerCall0<T, Class> >::type type; +}; +template <typename T, typename Class> +class StoredConstNoExceptMemberFunctionPointerCall0 : public RunFunctionTask<T> +{ +public: + StoredConstNoExceptMemberFunctionPointerCall0(T (Class::*_fn)() const noexcept, Class const *_object) + : fn(_fn), object(_object){ } + + void runFunctor() override + { + this->result = (object->*fn)(); + } +private: + T (Class::*fn)() const noexcept; + Class const *object; + +}; +template <typename T, typename Class> +class VoidStoredConstNoExceptMemberFunctionPointerCall0 : public RunFunctionTask<T> +{ +public: + VoidStoredConstNoExceptMemberFunctionPointerCall0(T (Class::*_fn)() const noexcept, Class const *_object) + : fn(_fn), object(_object){ } + + void runFunctor() override + { + (object->*fn)(); + } +private: + T (Class::*fn)() const noexcept; + Class const *object; + +}; +template <typename T, typename Class> +struct SelectStoredConstNoExceptMemberFunctionPointerCall0 +{ + typedef typename SelectSpecialization<T>::template + Type<StoredConstNoExceptMemberFunctionPointerCall0 <T, Class>, + VoidStoredConstNoExceptMemberFunctionPointerCall0<T, Class> >::type type; +}; +#endif + template <typename T, typename FunctionPointer, typename Arg1> struct StoredFunctorCall1: public RunFunctionTask<T> { @@ -458,6 +617,165 @@ struct SelectStoredConstMemberFunctionPointerCall1 Type<StoredConstMemberFunctionPointerCall1 <T, Class, Param1, Arg1>, VoidStoredConstMemberFunctionPointerCall1<T, Class, Param1, Arg1> >::type type; }; +#if defined(__cpp_noexcept_function_type) && __cpp_noexcept_function_type >= 201510 +template <typename T, typename Class, typename Param1, typename Arg1> +class StoredNoExceptMemberFunctionCall1 : public RunFunctionTask<T> +{ +public: + StoredNoExceptMemberFunctionCall1(T (Class::*_fn)(Param1) noexcept, const Class &_object, const Arg1 &_arg1) + : fn(_fn), object(_object), arg1(_arg1){ } + + void runFunctor() override + { + this->result = (object.*fn)(arg1); + } +private: + T (Class::*fn)(Param1) noexcept; + Class object; + Arg1 arg1; +}; +template <typename T, typename Class, typename Param1, typename Arg1> +class VoidStoredNoExceptMemberFunctionCall1 : public RunFunctionTask<T> +{ +public: + VoidStoredNoExceptMemberFunctionCall1(T (Class::*_fn)(Param1) noexcept, const Class &_object, const Arg1 &_arg1) + : fn(_fn), object(_object), arg1(_arg1){ } + + void runFunctor() override + { + (object.*fn)(arg1); + } +private: + T (Class::*fn)(Param1) noexcept; + Class object; + Arg1 arg1; +}; +template <typename T, typename Class, typename Param1, typename Arg1> +struct SelectStoredNoExceptMemberFunctionCall1 +{ + typedef typename SelectSpecialization<T>::template + Type<StoredNoExceptMemberFunctionCall1 <T, Class, Param1, Arg1>, + VoidStoredNoExceptMemberFunctionCall1<T, Class, Param1, Arg1> >::type type; +}; +template <typename T, typename Class, typename Param1, typename Arg1> +class StoredConstNoExceptMemberFunctionCall1 : public RunFunctionTask<T> +{ +public: + StoredConstNoExceptMemberFunctionCall1(T (Class::*_fn)(Param1) const noexcept, const Class &_object, const Arg1 &_arg1) + : fn(_fn), object(_object), arg1(_arg1){ } + + void runFunctor() override + { + this->result = (object.*fn)(arg1); + } +private: + T (Class::*fn)(Param1) const noexcept; + const Class object; + Arg1 arg1; +}; +template <typename T, typename Class, typename Param1, typename Arg1> +class VoidStoredConstNoExceptMemberFunctionCall1 : public RunFunctionTask<T> +{ +public: + VoidStoredConstNoExceptMemberFunctionCall1(T (Class::*_fn)(Param1) const noexcept, const Class &_object, const Arg1 &_arg1) + : fn(_fn), object(_object), arg1(_arg1){ } + + void runFunctor() override + { + (object.*fn)(arg1); + } +private: + T (Class::*fn)(Param1) const noexcept; + const Class object; + Arg1 arg1; +}; +template <typename T, typename Class, typename Param1, typename Arg1> +struct SelectStoredConstNoExceptMemberFunctionCall1 +{ + typedef typename SelectSpecialization<T>::template + Type<StoredConstNoExceptMemberFunctionCall1 <T, Class, Param1, Arg1>, + VoidStoredConstNoExceptMemberFunctionCall1<T, Class, Param1, Arg1> >::type type; +}; +template <typename T, typename Class, typename Param1, typename Arg1> +class StoredNoExceptMemberFunctionPointerCall1 : public RunFunctionTask<T> +{ +public: + StoredNoExceptMemberFunctionPointerCall1(T (Class::*_fn)(Param1) noexcept, Class *_object, const Arg1 &_arg1) + : fn(_fn), object(_object), arg1(_arg1){ } + + void runFunctor() override + { + this->result = (object->*fn)(arg1); + } +private: + T (Class::*fn)(Param1) noexcept; + Class *object; + Arg1 arg1; +}; +template <typename T, typename Class, typename Param1, typename Arg1> +class VoidStoredNoExceptMemberFunctionPointerCall1 : public RunFunctionTask<T> +{ +public: + VoidStoredNoExceptMemberFunctionPointerCall1(T (Class::*_fn)(Param1) noexcept, Class *_object, const Arg1 &_arg1) + : fn(_fn), object(_object), arg1(_arg1){ } + + void runFunctor() override + { + (object->*fn)(arg1); + } +private: + T (Class::*fn)(Param1) noexcept; + Class *object; + Arg1 arg1; +}; +template <typename T, typename Class, typename Param1, typename Arg1> +struct SelectStoredNoExceptMemberFunctionPointerCall1 +{ + typedef typename SelectSpecialization<T>::template + Type<StoredNoExceptMemberFunctionPointerCall1 <T, Class, Param1, Arg1>, + VoidStoredNoExceptMemberFunctionPointerCall1<T, Class, Param1, Arg1> >::type type; +}; +template <typename T, typename Class, typename Param1, typename Arg1> +class StoredConstNoExceptMemberFunctionPointerCall1 : public RunFunctionTask<T> +{ +public: + StoredConstNoExceptMemberFunctionPointerCall1(T (Class::*_fn)(Param1) const noexcept, Class const *_object, const Arg1 &_arg1) + : fn(_fn), object(_object), arg1(_arg1){ } + + void runFunctor() override + { + this->result = (object->*fn)(arg1); + } +private: + T (Class::*fn)(Param1) const noexcept; + Class const *object; + Arg1 arg1; +}; +template <typename T, typename Class, typename Param1, typename Arg1> +class VoidStoredConstNoExceptMemberFunctionPointerCall1 : public RunFunctionTask<T> +{ +public: + VoidStoredConstNoExceptMemberFunctionPointerCall1(T (Class::*_fn)(Param1) const noexcept, Class const *_object, const Arg1 &_arg1) + : fn(_fn), object(_object), arg1(_arg1){ } + + void runFunctor() override + { + (object->*fn)(arg1); + } +private: + T (Class::*fn)(Param1) const noexcept; + Class const *object; + Arg1 arg1; +}; +template <typename T, typename Class, typename Param1, typename Arg1> +struct SelectStoredConstNoExceptMemberFunctionPointerCall1 +{ + typedef typename SelectSpecialization<T>::template + Type<StoredConstNoExceptMemberFunctionPointerCall1 <T, Class, Param1, Arg1>, + VoidStoredConstNoExceptMemberFunctionPointerCall1<T, Class, Param1, Arg1> >::type type; +}; +#endif + template <typename T, typename FunctionPointer, typename Arg1, typename Arg2> struct StoredFunctorCall2: public RunFunctionTask<T> { @@ -661,6 +979,165 @@ struct SelectStoredConstMemberFunctionPointerCall2 Type<StoredConstMemberFunctionPointerCall2 <T, Class, Param1, Arg1, Param2, Arg2>, VoidStoredConstMemberFunctionPointerCall2<T, Class, Param1, Arg1, Param2, Arg2> >::type type; }; +#if defined(__cpp_noexcept_function_type) && __cpp_noexcept_function_type >= 201510 +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2> +class StoredNoExceptMemberFunctionCall2 : public RunFunctionTask<T> +{ +public: + StoredNoExceptMemberFunctionCall2(T (Class::*_fn)(Param1, Param2) noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ } + + void runFunctor() override + { + this->result = (object.*fn)(arg1, arg2); + } +private: + T (Class::*fn)(Param1, Param2) noexcept; + Class object; + Arg1 arg1; Arg2 arg2; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2> +class VoidStoredNoExceptMemberFunctionCall2 : public RunFunctionTask<T> +{ +public: + VoidStoredNoExceptMemberFunctionCall2(T (Class::*_fn)(Param1, Param2) noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ } + + void runFunctor() override + { + (object.*fn)(arg1, arg2); + } +private: + T (Class::*fn)(Param1, Param2) noexcept; + Class object; + Arg1 arg1; Arg2 arg2; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2> +struct SelectStoredNoExceptMemberFunctionCall2 +{ + typedef typename SelectSpecialization<T>::template + Type<StoredNoExceptMemberFunctionCall2 <T, Class, Param1, Arg1, Param2, Arg2>, + VoidStoredNoExceptMemberFunctionCall2<T, Class, Param1, Arg1, Param2, Arg2> >::type type; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2> +class StoredConstNoExceptMemberFunctionCall2 : public RunFunctionTask<T> +{ +public: + StoredConstNoExceptMemberFunctionCall2(T (Class::*_fn)(Param1, Param2) const noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ } + + void runFunctor() override + { + this->result = (object.*fn)(arg1, arg2); + } +private: + T (Class::*fn)(Param1, Param2) const noexcept; + const Class object; + Arg1 arg1; Arg2 arg2; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2> +class VoidStoredConstNoExceptMemberFunctionCall2 : public RunFunctionTask<T> +{ +public: + VoidStoredConstNoExceptMemberFunctionCall2(T (Class::*_fn)(Param1, Param2) const noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ } + + void runFunctor() override + { + (object.*fn)(arg1, arg2); + } +private: + T (Class::*fn)(Param1, Param2) const noexcept; + const Class object; + Arg1 arg1; Arg2 arg2; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2> +struct SelectStoredConstNoExceptMemberFunctionCall2 +{ + typedef typename SelectSpecialization<T>::template + Type<StoredConstNoExceptMemberFunctionCall2 <T, Class, Param1, Arg1, Param2, Arg2>, + VoidStoredConstNoExceptMemberFunctionCall2<T, Class, Param1, Arg1, Param2, Arg2> >::type type; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2> +class StoredNoExceptMemberFunctionPointerCall2 : public RunFunctionTask<T> +{ +public: + StoredNoExceptMemberFunctionPointerCall2(T (Class::*_fn)(Param1, Param2) noexcept, Class *_object, const Arg1 &_arg1, const Arg2 &_arg2) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ } + + void runFunctor() override + { + this->result = (object->*fn)(arg1, arg2); + } +private: + T (Class::*fn)(Param1, Param2) noexcept; + Class *object; + Arg1 arg1; Arg2 arg2; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2> +class VoidStoredNoExceptMemberFunctionPointerCall2 : public RunFunctionTask<T> +{ +public: + VoidStoredNoExceptMemberFunctionPointerCall2(T (Class::*_fn)(Param1, Param2) noexcept, Class *_object, const Arg1 &_arg1, const Arg2 &_arg2) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ } + + void runFunctor() override + { + (object->*fn)(arg1, arg2); + } +private: + T (Class::*fn)(Param1, Param2) noexcept; + Class *object; + Arg1 arg1; Arg2 arg2; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2> +struct SelectStoredNoExceptMemberFunctionPointerCall2 +{ + typedef typename SelectSpecialization<T>::template + Type<StoredNoExceptMemberFunctionPointerCall2 <T, Class, Param1, Arg1, Param2, Arg2>, + VoidStoredNoExceptMemberFunctionPointerCall2<T, Class, Param1, Arg1, Param2, Arg2> >::type type; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2> +class StoredConstNoExceptMemberFunctionPointerCall2 : public RunFunctionTask<T> +{ +public: + StoredConstNoExceptMemberFunctionPointerCall2(T (Class::*_fn)(Param1, Param2) const noexcept, Class const *_object, const Arg1 &_arg1, const Arg2 &_arg2) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ } + + void runFunctor() override + { + this->result = (object->*fn)(arg1, arg2); + } +private: + T (Class::*fn)(Param1, Param2) const noexcept; + Class const *object; + Arg1 arg1; Arg2 arg2; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2> +class VoidStoredConstNoExceptMemberFunctionPointerCall2 : public RunFunctionTask<T> +{ +public: + VoidStoredConstNoExceptMemberFunctionPointerCall2(T (Class::*_fn)(Param1, Param2) const noexcept, Class const *_object, const Arg1 &_arg1, const Arg2 &_arg2) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2){ } + + void runFunctor() override + { + (object->*fn)(arg1, arg2); + } +private: + T (Class::*fn)(Param1, Param2) const noexcept; + Class const *object; + Arg1 arg1; Arg2 arg2; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2> +struct SelectStoredConstNoExceptMemberFunctionPointerCall2 +{ + typedef typename SelectSpecialization<T>::template + Type<StoredConstNoExceptMemberFunctionPointerCall2 <T, Class, Param1, Arg1, Param2, Arg2>, + VoidStoredConstNoExceptMemberFunctionPointerCall2<T, Class, Param1, Arg1, Param2, Arg2> >::type type; +}; +#endif + template <typename T, typename FunctionPointer, typename Arg1, typename Arg2, typename Arg3> struct StoredFunctorCall3: public RunFunctionTask<T> { @@ -864,6 +1341,165 @@ struct SelectStoredConstMemberFunctionPointerCall3 Type<StoredConstMemberFunctionPointerCall3 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>, VoidStoredConstMemberFunctionPointerCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3> >::type type; }; +#if defined(__cpp_noexcept_function_type) && __cpp_noexcept_function_type >= 201510 +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3> +class StoredNoExceptMemberFunctionCall3 : public RunFunctionTask<T> +{ +public: + StoredNoExceptMemberFunctionCall3(T (Class::*_fn)(Param1, Param2, Param3) noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ } + + void runFunctor() override + { + this->result = (object.*fn)(arg1, arg2, arg3); + } +private: + T (Class::*fn)(Param1, Param2, Param3) noexcept; + Class object; + Arg1 arg1; Arg2 arg2; Arg3 arg3; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3> +class VoidStoredNoExceptMemberFunctionCall3 : public RunFunctionTask<T> +{ +public: + VoidStoredNoExceptMemberFunctionCall3(T (Class::*_fn)(Param1, Param2, Param3) noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ } + + void runFunctor() override + { + (object.*fn)(arg1, arg2, arg3); + } +private: + T (Class::*fn)(Param1, Param2, Param3) noexcept; + Class object; + Arg1 arg1; Arg2 arg2; Arg3 arg3; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3> +struct SelectStoredNoExceptMemberFunctionCall3 +{ + typedef typename SelectSpecialization<T>::template + Type<StoredNoExceptMemberFunctionCall3 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>, + VoidStoredNoExceptMemberFunctionCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3> >::type type; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3> +class StoredConstNoExceptMemberFunctionCall3 : public RunFunctionTask<T> +{ +public: + StoredConstNoExceptMemberFunctionCall3(T (Class::*_fn)(Param1, Param2, Param3) const noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ } + + void runFunctor() override + { + this->result = (object.*fn)(arg1, arg2, arg3); + } +private: + T (Class::*fn)(Param1, Param2, Param3) const noexcept; + const Class object; + Arg1 arg1; Arg2 arg2; Arg3 arg3; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3> +class VoidStoredConstNoExceptMemberFunctionCall3 : public RunFunctionTask<T> +{ +public: + VoidStoredConstNoExceptMemberFunctionCall3(T (Class::*_fn)(Param1, Param2, Param3) const noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ } + + void runFunctor() override + { + (object.*fn)(arg1, arg2, arg3); + } +private: + T (Class::*fn)(Param1, Param2, Param3) const noexcept; + const Class object; + Arg1 arg1; Arg2 arg2; Arg3 arg3; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3> +struct SelectStoredConstNoExceptMemberFunctionCall3 +{ + typedef typename SelectSpecialization<T>::template + Type<StoredConstNoExceptMemberFunctionCall3 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>, + VoidStoredConstNoExceptMemberFunctionCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3> >::type type; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3> +class StoredNoExceptMemberFunctionPointerCall3 : public RunFunctionTask<T> +{ +public: + StoredNoExceptMemberFunctionPointerCall3(T (Class::*_fn)(Param1, Param2, Param3) noexcept, Class *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ } + + void runFunctor() override + { + this->result = (object->*fn)(arg1, arg2, arg3); + } +private: + T (Class::*fn)(Param1, Param2, Param3) noexcept; + Class *object; + Arg1 arg1; Arg2 arg2; Arg3 arg3; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3> +class VoidStoredNoExceptMemberFunctionPointerCall3 : public RunFunctionTask<T> +{ +public: + VoidStoredNoExceptMemberFunctionPointerCall3(T (Class::*_fn)(Param1, Param2, Param3) noexcept, Class *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ } + + void runFunctor() override + { + (object->*fn)(arg1, arg2, arg3); + } +private: + T (Class::*fn)(Param1, Param2, Param3) noexcept; + Class *object; + Arg1 arg1; Arg2 arg2; Arg3 arg3; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3> +struct SelectStoredNoExceptMemberFunctionPointerCall3 +{ + typedef typename SelectSpecialization<T>::template + Type<StoredNoExceptMemberFunctionPointerCall3 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>, + VoidStoredNoExceptMemberFunctionPointerCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3> >::type type; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3> +class StoredConstNoExceptMemberFunctionPointerCall3 : public RunFunctionTask<T> +{ +public: + StoredConstNoExceptMemberFunctionPointerCall3(T (Class::*_fn)(Param1, Param2, Param3) const noexcept, Class const *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ } + + void runFunctor() override + { + this->result = (object->*fn)(arg1, arg2, arg3); + } +private: + T (Class::*fn)(Param1, Param2, Param3) const noexcept; + Class const *object; + Arg1 arg1; Arg2 arg2; Arg3 arg3; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3> +class VoidStoredConstNoExceptMemberFunctionPointerCall3 : public RunFunctionTask<T> +{ +public: + VoidStoredConstNoExceptMemberFunctionPointerCall3(T (Class::*_fn)(Param1, Param2, Param3) const noexcept, Class const *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3){ } + + void runFunctor() override + { + (object->*fn)(arg1, arg2, arg3); + } +private: + T (Class::*fn)(Param1, Param2, Param3) const noexcept; + Class const *object; + Arg1 arg1; Arg2 arg2; Arg3 arg3; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3> +struct SelectStoredConstNoExceptMemberFunctionPointerCall3 +{ + typedef typename SelectSpecialization<T>::template + Type<StoredConstNoExceptMemberFunctionPointerCall3 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3>, + VoidStoredConstNoExceptMemberFunctionPointerCall3<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3> >::type type; +}; +#endif + template <typename T, typename FunctionPointer, typename Arg1, typename Arg2, typename Arg3, typename Arg4> struct StoredFunctorCall4: public RunFunctionTask<T> { @@ -1067,6 +1703,165 @@ struct SelectStoredConstMemberFunctionPointerCall4 Type<StoredConstMemberFunctionPointerCall4 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>, VoidStoredConstMemberFunctionPointerCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4> >::type type; }; +#if defined(__cpp_noexcept_function_type) && __cpp_noexcept_function_type >= 201510 +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4> +class StoredNoExceptMemberFunctionCall4 : public RunFunctionTask<T> +{ +public: + StoredNoExceptMemberFunctionCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4) noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ } + + void runFunctor() override + { + this->result = (object.*fn)(arg1, arg2, arg3, arg4); + } +private: + T (Class::*fn)(Param1, Param2, Param3, Param4) noexcept; + Class object; + Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4> +class VoidStoredNoExceptMemberFunctionCall4 : public RunFunctionTask<T> +{ +public: + VoidStoredNoExceptMemberFunctionCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4) noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ } + + void runFunctor() override + { + (object.*fn)(arg1, arg2, arg3, arg4); + } +private: + T (Class::*fn)(Param1, Param2, Param3, Param4) noexcept; + Class object; + Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4> +struct SelectStoredNoExceptMemberFunctionCall4 +{ + typedef typename SelectSpecialization<T>::template + Type<StoredNoExceptMemberFunctionCall4 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>, + VoidStoredNoExceptMemberFunctionCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4> >::type type; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4> +class StoredConstNoExceptMemberFunctionCall4 : public RunFunctionTask<T> +{ +public: + StoredConstNoExceptMemberFunctionCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4) const noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ } + + void runFunctor() override + { + this->result = (object.*fn)(arg1, arg2, arg3, arg4); + } +private: + T (Class::*fn)(Param1, Param2, Param3, Param4) const noexcept; + const Class object; + Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4> +class VoidStoredConstNoExceptMemberFunctionCall4 : public RunFunctionTask<T> +{ +public: + VoidStoredConstNoExceptMemberFunctionCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4) const noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ } + + void runFunctor() override + { + (object.*fn)(arg1, arg2, arg3, arg4); + } +private: + T (Class::*fn)(Param1, Param2, Param3, Param4) const noexcept; + const Class object; + Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4> +struct SelectStoredConstNoExceptMemberFunctionCall4 +{ + typedef typename SelectSpecialization<T>::template + Type<StoredConstNoExceptMemberFunctionCall4 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>, + VoidStoredConstNoExceptMemberFunctionCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4> >::type type; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4> +class StoredNoExceptMemberFunctionPointerCall4 : public RunFunctionTask<T> +{ +public: + StoredNoExceptMemberFunctionPointerCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4) noexcept, Class *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ } + + void runFunctor() override + { + this->result = (object->*fn)(arg1, arg2, arg3, arg4); + } +private: + T (Class::*fn)(Param1, Param2, Param3, Param4) noexcept; + Class *object; + Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4> +class VoidStoredNoExceptMemberFunctionPointerCall4 : public RunFunctionTask<T> +{ +public: + VoidStoredNoExceptMemberFunctionPointerCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4) noexcept, Class *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ } + + void runFunctor() override + { + (object->*fn)(arg1, arg2, arg3, arg4); + } +private: + T (Class::*fn)(Param1, Param2, Param3, Param4) noexcept; + Class *object; + Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4> +struct SelectStoredNoExceptMemberFunctionPointerCall4 +{ + typedef typename SelectSpecialization<T>::template + Type<StoredNoExceptMemberFunctionPointerCall4 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>, + VoidStoredNoExceptMemberFunctionPointerCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4> >::type type; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4> +class StoredConstNoExceptMemberFunctionPointerCall4 : public RunFunctionTask<T> +{ +public: + StoredConstNoExceptMemberFunctionPointerCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4) const noexcept, Class const *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ } + + void runFunctor() override + { + this->result = (object->*fn)(arg1, arg2, arg3, arg4); + } +private: + T (Class::*fn)(Param1, Param2, Param3, Param4) const noexcept; + Class const *object; + Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4> +class VoidStoredConstNoExceptMemberFunctionPointerCall4 : public RunFunctionTask<T> +{ +public: + VoidStoredConstNoExceptMemberFunctionPointerCall4(T (Class::*_fn)(Param1, Param2, Param3, Param4) const noexcept, Class const *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4){ } + + void runFunctor() override + { + (object->*fn)(arg1, arg2, arg3, arg4); + } +private: + T (Class::*fn)(Param1, Param2, Param3, Param4) const noexcept; + Class const *object; + Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4> +struct SelectStoredConstNoExceptMemberFunctionPointerCall4 +{ + typedef typename SelectSpecialization<T>::template + Type<StoredConstNoExceptMemberFunctionPointerCall4 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4>, + VoidStoredConstNoExceptMemberFunctionPointerCall4<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4> >::type type; +}; +#endif + template <typename T, typename FunctionPointer, typename Arg1, typename Arg2, typename Arg3, typename Arg4, typename Arg5> struct StoredFunctorCall5: public RunFunctionTask<T> { @@ -1270,6 +2065,164 @@ struct SelectStoredConstMemberFunctionPointerCall5 Type<StoredConstMemberFunctionPointerCall5 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>, VoidStoredConstMemberFunctionPointerCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5> >::type type; }; +#if defined(__cpp_noexcept_function_type) && __cpp_noexcept_function_type >= 201510 +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5> +class StoredNoExceptMemberFunctionCall5 : public RunFunctionTask<T> +{ +public: + StoredNoExceptMemberFunctionCall5(T (Class::*_fn)(Param1, Param2, Param3, Param4, Param5) noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4, const Arg5 &_arg5) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ } + + void runFunctor() override + { + this->result = (object.*fn)(arg1, arg2, arg3, arg4, arg5); + } +private: + T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) noexcept; + Class object; + Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5> +class VoidStoredNoExceptMemberFunctionCall5 : public RunFunctionTask<T> +{ +public: + VoidStoredNoExceptMemberFunctionCall5(T (Class::*_fn)(Param1, Param2, Param3, Param4, Param5) noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4, const Arg5 &_arg5) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ } + + void runFunctor() override + { + (object.*fn)(arg1, arg2, arg3, arg4, arg5); + } +private: + T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) noexcept; + Class object; + Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5> +struct SelectStoredNoExceptMemberFunctionCall5 +{ + typedef typename SelectSpecialization<T>::template + Type<StoredNoExceptMemberFunctionCall5 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>, + VoidStoredNoExceptMemberFunctionCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5> >::type type; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5> +class StoredConstNoExceptMemberFunctionCall5 : public RunFunctionTask<T> +{ +public: + StoredConstNoExceptMemberFunctionCall5(T (Class::*_fn)(Param1, Param2, Param3, Param4, Param5) const noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4, const Arg5 &_arg5) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ } + + void runFunctor() override + { + this->result = (object.*fn)(arg1, arg2, arg3, arg4, arg5); + } +private: + T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) const noexcept; + const Class object; + Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5> +class VoidStoredConstNoExceptMemberFunctionCall5 : public RunFunctionTask<T> +{ +public: + VoidStoredConstNoExceptMemberFunctionCall5(T (Class::*_fn)(Param1, Param2, Param3, Param4, Param5) const noexcept, const Class &_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4, const Arg5 &_arg5) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ } + + void runFunctor() override + { + (object.*fn)(arg1, arg2, arg3, arg4, arg5); + } +private: + T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) const noexcept; + const Class object; + Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5> +struct SelectStoredConstNoExceptMemberFunctionCall5 +{ + typedef typename SelectSpecialization<T>::template + Type<StoredConstNoExceptMemberFunctionCall5 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>, + VoidStoredConstNoExceptMemberFunctionCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5> >::type type; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5> +class StoredNoExceptMemberFunctionPointerCall5 : public RunFunctionTask<T> +{ +public: + StoredNoExceptMemberFunctionPointerCall5(T (Class::*_fn)(Param1, Param2, Param3, Param4, Param5) noexcept, Class *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4, const Arg5 &_arg5) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ } + + void runFunctor() override + { + this->result = (object->*fn)(arg1, arg2, arg3, arg4, arg5); + } +private: + T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) noexcept; + Class *object; + Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5> +class VoidStoredNoExceptMemberFunctionPointerCall5 : public RunFunctionTask<T> +{ +public: + VoidStoredNoExceptMemberFunctionPointerCall5(T (Class::*_fn)(Param1, Param2, Param3, Param4, Param5) noexcept, Class *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4, const Arg5 &_arg5) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ } + + void runFunctor() override + { + (object->*fn)(arg1, arg2, arg3, arg4, arg5); + } +private: + T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) noexcept; + Class *object; + Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5> +struct SelectStoredNoExceptMemberFunctionPointerCall5 +{ + typedef typename SelectSpecialization<T>::template + Type<StoredNoExceptMemberFunctionPointerCall5 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>, + VoidStoredNoExceptMemberFunctionPointerCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5> >::type type; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5> +class StoredConstNoExceptMemberFunctionPointerCall5 : public RunFunctionTask<T> +{ +public: + StoredConstNoExceptMemberFunctionPointerCall5(T (Class::*_fn)(Param1, Param2, Param3, Param4, Param5) const noexcept, Class const *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4, const Arg5 &_arg5) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ } + + void runFunctor() override + { + this->result = (object->*fn)(arg1, arg2, arg3, arg4, arg5); + } +private: + T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) const noexcept; + Class const *object; + Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5> +class VoidStoredConstNoExceptMemberFunctionPointerCall5 : public RunFunctionTask<T> +{ +public: + VoidStoredConstNoExceptMemberFunctionPointerCall5(T (Class::*_fn)(Param1, Param2, Param3, Param4, Param5) const noexcept, Class const *_object, const Arg1 &_arg1, const Arg2 &_arg2, const Arg3 &_arg3, const Arg4 &_arg4, const Arg5 &_arg5) + : fn(_fn), object(_object), arg1(_arg1), arg2(_arg2), arg3(_arg3), arg4(_arg4), arg5(_arg5){ } + + void runFunctor() override + { + (object->*fn)(arg1, arg2, arg3, arg4, arg5); + } +private: + T (Class::*fn)(Param1, Param2, Param3, Param4, Param5) const noexcept; + Class const *object; + Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5; +}; +template <typename T, typename Class, typename Param1, typename Arg1, typename Param2, typename Arg2, typename Param3, typename Arg3, typename Param4, typename Arg4, typename Param5, typename Arg5> +struct SelectStoredConstNoExceptMemberFunctionPointerCall5 +{ + typedef typename SelectSpecialization<T>::template + Type<StoredConstNoExceptMemberFunctionPointerCall5 <T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5>, + VoidStoredConstNoExceptMemberFunctionPointerCall5<T, Class, Param1, Arg1, Param2, Arg2, Param3, Arg3, Param4, Arg4, Param5, Arg5> >::type type; +}; +#endif template <typename T, typename Functor> class StoredFunctorCall : public RunFunctionTask<T> diff --git a/src/corelib/global/qconfig-bootstrapped.h b/src/corelib/global/qconfig-bootstrapped.h index bda8ad7916..0b02ecc8ec 100644 --- a/src/corelib/global/qconfig-bootstrapped.h +++ b/src/corelib/global/qconfig-bootstrapped.h @@ -68,6 +68,13 @@ #define QT_CRYPTOGRAPHICHASH_ONLY_SHA1 #define QT_NO_DATASTREAM +#define QT_FEATURE_alloca 1 +#define QT_FEATURE_alloca_h -1 +#ifdef _WIN32 +# define QT_FEATURE_alloca_malloc_h 1 +#else +# define QT_FEATURE_alloca_malloc_h -1 +#endif #define QT_FEATURE_iconv -1 #define QT_FEATURE_icu -1 #define QT_FEATURE_journald -1 diff --git a/src/corelib/global/qsysinfo.h b/src/corelib/global/qsysinfo.h index f443ab4b93..6b73a17dc5 100644 --- a/src/corelib/global/qsysinfo.h +++ b/src/corelib/global/qsysinfo.h @@ -211,11 +211,7 @@ public: }; QT_WARNING_PUSH -QT_WARNING_DISABLE_GCC("-Wdeprecated-declarations") -QT_WARNING_DISABLE_CLANG("-Wdeprecated-declarations") -QT_WARNING_DISABLE_INTEL(1478) -QT_WARNING_DISABLE_INTEL(1786) -QT_WARNING_DISABLE_MSVC(4996) +QT_WARNING_DISABLE_DEPRECATED #if defined(Q_OS_WIN) || defined(Q_OS_CYGWIN) QT_SYSINFO_DEPRECATED_X("Use QOperatingSystemVersion::current()") static const WinVersion WindowsVersion; QT_SYSINFO_DEPRECATED_X("Use QOperatingSystemVersion::current()") static WinVersion windowsVersion(); diff --git a/src/corelib/io/qwindowspipereader.cpp b/src/corelib/io/qwindowspipereader.cpp index b8df8e8084..827ed43b63 100644 --- a/src/corelib/io/qwindowspipereader.cpp +++ b/src/corelib/io/qwindowspipereader.cpp @@ -215,13 +215,13 @@ void QWindowsPipeReader::notified(DWORD errorCode, DWORD numberOfBytesRead) void QWindowsPipeReader::startAsyncRead() { const DWORD minReadBufferSize = 4096; - DWORD bytesToRead = qMax(checkPipeState(), minReadBufferSize); + qint64 bytesToRead = qMax(checkPipeState(), minReadBufferSize); if (pipeBroken) return; if (readBufferMaxSize && bytesToRead > (readBufferMaxSize - readBuffer.size())) { bytesToRead = readBufferMaxSize - readBuffer.size(); - if (bytesToRead == 0) { + if (bytesToRead <= 0) { // Buffer is full. User must read data from the buffer // before we can read more from the pipe. return; diff --git a/src/corelib/kernel/qabstracteventdispatcher.h b/src/corelib/kernel/qabstracteventdispatcher.h index a256b03523..0d3e53e4a7 100644 --- a/src/corelib/kernel/qabstracteventdispatcher.h +++ b/src/corelib/kernel/qabstracteventdispatcher.h @@ -102,9 +102,7 @@ public: virtual void wakeUp() = 0; virtual void interrupt() = 0; -#if QT_DEPRECATED_SINCE(5, 9) - QT_DEPRECATED virtual void flush() = 0; -#endif + virtual void flush() = 0; // ### Qt6: remove, mark final or make protected virtual void startingUp(); virtual void closingDown(); diff --git a/src/corelib/kernel/qcfsocketnotifier.cpp b/src/corelib/kernel/qcfsocketnotifier.cpp index a079031e96..1fee2aa5fc 100644 --- a/src/corelib/kernel/qcfsocketnotifier.cpp +++ b/src/corelib/kernel/qcfsocketnotifier.cpp @@ -292,10 +292,19 @@ void QCFSocketNotifier::enableSocketNotifiers(CFRunLoopObserverRef ref, CFRunLoo continue; } - if (!socketInfo->readNotifier) + // Apple docs say: "If a callback is automatically re-enabled, + // it is called every time the condition becomes true ... If a + // callback is not automatically re-enabled, then it gets called + // exactly once, and is not called again until you manually + // re-enable that callback by calling CFSocketEnableCallBacks()". + // So, we don't need to enable callbacks on registering. + socketInfo->readEnabled = (socketInfo->readNotifier != nullptr); + if (!socketInfo->readEnabled) CFSocketDisableCallBacks(socketInfo->socket, kCFSocketReadCallBack); - if (!socketInfo->writeNotifier) + socketInfo->writeEnabled = (socketInfo->writeNotifier != nullptr); + if (!socketInfo->writeEnabled) CFSocketDisableCallBacks(socketInfo->socket, kCFSocketWriteCallBack); + continue; } if (socketInfo->readNotifier && !socketInfo->readEnabled) { diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp index 4a4ad3ddf8..0104ba0101 100644 --- a/src/corelib/kernel/qcoreapplication.cpp +++ b/src/corelib/kernel/qcoreapplication.cpp @@ -714,12 +714,14 @@ QCoreApplication::QCoreApplication(QCoreApplicationPrivate &p) \sa sendPostedEvents(), processEvents(), QAbstractEventDispatcher::flush() */ +#if QT_DEPRECATED_SINCE(5, 9) void QCoreApplication::flush() { if (self && self->d_func()->eventDispatcher) self->d_func()->eventDispatcher->flush(); } #endif +#endif /*! Constructs a Qt core application. Core applications are applications without @@ -756,6 +758,10 @@ QCoreApplication::QCoreApplication(int &argc, char **argv void QCoreApplicationPrivate::init() { +#if defined(Q_OS_MACOS) + QMacAutoReleasePool pool; +#endif + Q_Q(QCoreApplication); initLocale(); diff --git a/src/corelib/kernel/qeventdispatcher_win.cpp b/src/corelib/kernel/qeventdispatcher_win.cpp index 74fa2d8d50..40db5020ab 100644 --- a/src/corelib/kernel/qeventdispatcher_win.cpp +++ b/src/corelib/kernel/qeventdispatcher_win.cpp @@ -177,15 +177,24 @@ LRESULT QT_WIN_CALLBACK qt_internal_proc(HWND hwnd, UINT message, WPARAM wp, LPA QSNDict *dict = sn_vec[type]; QSockNot *sn = dict ? dict->value(wp) : 0; - if (sn) { - d->doWsaAsyncSelect(sn->fd, 0); - d->active_fd[sn->fd].selected = false; + if (sn == nullptr) { d->postActivateSocketNotifiers(); - if (type < 3) { - QEvent event(QEvent::SockAct); - QCoreApplication::sendEvent(sn->obj, &event); - } else { - QEvent event(QEvent::SockClose); + } else { + Q_ASSERT(d->active_fd.contains(sn->fd)); + QSockFd &sd = d->active_fd[sn->fd]; + if (sd.selected) { + Q_ASSERT(sd.mask == 0); + d->doWsaAsyncSelect(sn->fd, 0); + sd.selected = false; + } + d->postActivateSocketNotifiers(); + + // Ignore the message if a notification with the same type was + // received previously. Suppressed message is definitely spurious. + const long eventCode = WSAGETSELECTEVENT(lp); + if ((sd.mask & eventCode) != eventCode) { + sd.mask |= eventCode; + QEvent event(type < 3 ? QEvent::SockAct : QEvent::SockClose); QCoreApplication::sendEvent(sn->obj, &event); } } @@ -194,13 +203,22 @@ LRESULT QT_WIN_CALLBACK qt_internal_proc(HWND hwnd, UINT message, WPARAM wp, LPA } else if (message == WM_QT_ACTIVATENOTIFIERS) { Q_ASSERT(d != 0); - // register all socket notifiers - for (QSFDict::iterator it = d->active_fd.begin(), end = d->active_fd.end(); - it != end; ++it) { - QSockFd &sd = it.value(); - if (!sd.selected) { - d->doWsaAsyncSelect(it.key(), sd.event); - sd.selected = true; + // Postpone activation if we have unhandled socket notifier messages + // in the queue. WM_QT_ACTIVATENOTIFIERS will be posted again as a result of + // event processing. + MSG msg; + if (!PeekMessage(&msg, 0, WM_QT_SOCKETNOTIFIER, WM_QT_SOCKETNOTIFIER, PM_NOREMOVE) + && d->queuedSocketEvents.isEmpty()) { + // register all socket notifiers + for (QSFDict::iterator it = d->active_fd.begin(), end = d->active_fd.end(); + it != end; ++it) { + QSockFd &sd = it.value(); + if (!sd.selected) { + d->doWsaAsyncSelect(it.key(), sd.event); + // allow any event to be accepted + sd.mask = 0; + sd.selected = true; + } } } d->activateNotifiersPosted = false; @@ -706,7 +724,9 @@ void QEventDispatcherWin32::registerSocketNotifier(QSocketNotifier *notifier) } sd.event |= event; } else { - d->active_fd.insert(sockfd, QSockFd(event)); + // Disable the events which could be implicitly re-enabled. Next activation + // of socket notifiers will reset the mask. + d->active_fd.insert(sockfd, QSockFd(event, FD_READ | FD_ACCEPT | FD_WRITE | FD_OOB)); } d->postActivateSocketNotifiers(); diff --git a/src/corelib/kernel/qeventdispatcher_win_p.h b/src/corelib/kernel/qeventdispatcher_win_p.h index 423dc5b169..f6d1bffdf5 100644 --- a/src/corelib/kernel/qeventdispatcher_win_p.h +++ b/src/corelib/kernel/qeventdispatcher_win_p.h @@ -126,9 +126,10 @@ typedef QHash<int, QSockNot *> QSNDict; struct QSockFd { long event; + long mask; bool selected; - explicit inline QSockFd(long ev = 0) : event(ev), selected(false) { } + explicit inline QSockFd(long ev = 0, long ma = 0) : event(ev), mask(ma), selected(false) { } }; typedef QHash<int, QSockFd> QSFDict; diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index 1b05962c07..3f50716cd7 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -4292,7 +4292,7 @@ QDebug operator<<(QDebug dbg, const QObject *o) This macro registers an enum type with the meta-object system. It must be placed after the enum declaration in a class that has the Q_OBJECT or the - Q_GADGET macro. For namespaces use \l Q_ENUM_NS instead. + Q_GADGET macro. For namespaces use \l Q_ENUM_NS() instead. For example: @@ -4319,7 +4319,7 @@ QDebug operator<<(QDebug dbg, const QObject *o) This macro registers a single \l{QFlags}{flags type} with the meta-object system. It is typically used in a class definition to declare that values of a given enum can be used as flags and combined using the - bitwise OR operator. For namespaces use \l Q_FLAG_NS instead. + bitwise OR operator. For namespaces use \l Q_FLAG_NS() instead. The macro must be placed after the enum declaration. @@ -4340,6 +4340,7 @@ QDebug operator<<(QDebug dbg, const QObject *o) /*! \macro Q_ENUM_NS(...) + \relates QObject \since 5.8 This macro registers an enum type with the meta-object system. @@ -4363,6 +4364,7 @@ QDebug operator<<(QDebug dbg, const QObject *o) /*! \macro Q_FLAG_NS(...) + \relates QObject \since 5.8 This macro registers a single \l{QFlags}{flags type} with the @@ -5079,4 +5081,5 @@ bool QMetaObject::Connection::isConnected_helper() const QT_END_NAMESPACE +#include "moc_qnamespace.cpp" #include "moc_qobject.cpp" diff --git a/src/corelib/tools/qhash.cpp b/src/corelib/tools/qhash.cpp index 334bd52f1e..1f9c05c0b7 100644 --- a/src/corelib/tools/qhash.cpp +++ b/src/corelib/tools/qhash.cpp @@ -2527,7 +2527,7 @@ uint qHash(long double key, uint seed) Q_DECL_NOTHROW /*! \fn QMultiHash::QMultiHash(std::initializer_list<std::pair<Key,T> > list) \since 5.1 - Constructs a multi hash with a copy of each of the elements in the + Constructs a multi-hash with a copy of each of the elements in the initializer list \a list. This function is only available if the program is being diff --git a/src/corelib/tools/qmap.cpp b/src/corelib/tools/qmap.cpp index 94ed47f898..29534bdeee 100644 --- a/src/corelib/tools/qmap.cpp +++ b/src/corelib/tools/qmap.cpp @@ -1867,7 +1867,7 @@ void QMapDataBase::freeData(QMapDataBase *d) /*! \fn QMultiMap::QMultiMap(std::initializer_list<std::pair<Key,T> > list) \since 5.1 - Constructs a multi map with a copy of each of the elements in the + Constructs a multi-map with a copy of each of the elements in the initializer list \a list. This function is only available if the program is being diff --git a/src/corelib/tools/qset.qdoc b/src/corelib/tools/qset.qdoc index 48dcc9eec0..93f157fdc5 100644 --- a/src/corelib/tools/qset.qdoc +++ b/src/corelib/tools/qset.qdoc @@ -530,7 +530,7 @@ */ /*! - \fn QSet::const_iterator QSet::insert(const T &value) + \fn QSet::insert(const T &value) Inserts item \a value into the set, if \a value isn't already in the set, and returns an iterator pointing at the inserted diff --git a/src/gui/image/qicon.cpp b/src/gui/image/qicon.cpp index 07dcf8b726..fa4b4e01af 100644 --- a/src/gui/image/qicon.cpp +++ b/src/gui/image/qicon.cpp @@ -576,11 +576,11 @@ QFactoryLoader *qt_iconEngineFactoryLoader() When you retrieve a pixmap using pixmap(QSize, Mode, State), and no pixmap for this given size, mode and state has been added with addFile() or addPixmap(), then QIcon will generate one on the - fly. This pixmap generation happens in a QIconEngineV2. The default + fly. This pixmap generation happens in a QIconEngine. The default engine scales pixmaps down if required, but never up, and it uses the current style to calculate a disabled appearance. By using custom icon engines, you can customize every aspect of generated - icons. With QIconEnginePluginV2 it is possible to register different + icons. With QIconEnginePlugin it is possible to register different icon engines for different file suffixes, making it possible for third parties to provide additional icon engines to those included with Qt. @@ -1114,7 +1114,7 @@ QList<QSize> QIcon::availableSizes(Mode mode, State state) const Depending on the way the icon was created, it may have an associated name. This is the case for icons created with fromTheme() or icons - using a QIconEngine which supports the QIconEngineV2::IconNameHook. + using a QIconEngine which supports the QIconEngine::IconNameHook. \sa fromTheme(), QIconEngine */ diff --git a/src/gui/image/qiconloader.cpp b/src/gui/image/qiconloader.cpp index d72c05a3c5..349e0dfbe3 100644 --- a/src/gui/image/qiconloader.cpp +++ b/src/gui/image/qiconloader.cpp @@ -649,6 +649,9 @@ QIconLoaderEngineEntry *QIconLoaderEngine::entryForSize(const QSize &size, int s QSize QIconLoaderEngine::actualSize(const QSize &size, QIcon::Mode mode, QIcon::State state) { + Q_UNUSED(mode); + Q_UNUSED(state); + ensureLoaded(); QIconLoaderEngineEntry *entry = entryForSize(size); @@ -661,7 +664,7 @@ QSize QIconLoaderEngine::actualSize(const QSize &size, QIcon::Mode mode, return QSize(result, result); } } - return QIconEngine::actualSize(size, mode, state); + return QSize(0, 0); } QPixmap PixmapEntry::pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state) diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp index 56f112c36c..1dd019cd55 100644 --- a/src/gui/kernel/qguiapplication.cpp +++ b/src/gui/kernel/qguiapplication.cpp @@ -1319,6 +1319,10 @@ void QGuiApplicationPrivate::eventDispatcherReady() void QGuiApplicationPrivate::init() { +#if defined(Q_OS_MACOS) + QMacAutoReleasePool pool; +#endif + QCoreApplicationPrivate::init(); QCoreApplicationPrivate::is_app_running = false; // Starting up. diff --git a/src/gui/kernel/qplatformthemefactory_p.h b/src/gui/kernel/qplatformthemefactory_p.h index 3f77f03485..c312eadf27 100644 --- a/src/gui/kernel/qplatformthemefactory_p.h +++ b/src/gui/kernel/qplatformthemefactory_p.h @@ -59,7 +59,7 @@ QT_BEGIN_NAMESPACE class QPlatformTheme; -class QPlatformThemeFactory +class Q_GUI_EXPORT QPlatformThemeFactory { public: static QStringList keys(const QString &platformPluginPath = QString()); diff --git a/src/gui/opengl/qopenglpaintengine.cpp b/src/gui/opengl/qopenglpaintengine.cpp index aeb4fc0b7a..17dc9df619 100644 --- a/src/gui/opengl/qopenglpaintengine.cpp +++ b/src/gui/opengl/qopenglpaintengine.cpp @@ -1330,8 +1330,7 @@ void QOpenGL2PaintEngineExPrivate::stroke(const QVectorPath &path, const QPen &p QVectorPath dashStroke(dasher.points(), dasher.elementCount(), - dasher.elementTypes(), - s->renderHints); + dasher.elementTypes()); stroker.process(dashStroke, pen, clip, s->renderHints); } diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp index 0cd5ff1d0e..b2e762a391 100644 --- a/src/gui/painting/qdrawhelper.cpp +++ b/src/gui/painting/qdrawhelper.cpp @@ -5697,62 +5697,74 @@ void qt_alphamapblit_quint16(QRasterBuffer *rasterBuffer, } } -static inline void rgbBlendPixel(quint32 *dst, int coverage, QRgba64 slinear, const QColorProfile *colorProfile, bool useGammaCorrection) +static inline void rgbBlendPixel(quint32 *dst, int coverage, QRgba64 slinear, const QColorProfile *colorProfile) { // Do a gammacorrected RGB alphablend... - const QRgba64 dlinear = useGammaCorrection ? colorProfile->toLinear64(*dst) : QRgba64::fromArgb32(*dst); + const QRgba64 dlinear = colorProfile ? colorProfile->toLinear64(*dst) : QRgba64::fromArgb32(*dst); QRgba64 blend = rgbBlend(dlinear, slinear, coverage); - *dst = useGammaCorrection ? colorProfile->fromLinear64(blend) : toArgb32(blend); + *dst = colorProfile ? colorProfile->fromLinear64(blend) : toArgb32(blend); } -static inline void grayBlendPixel(quint32 *dst, int coverage, QRgba64 slinear, const QColorProfile *colorProfile) +static inline void grayBlendPixel(quint32 *dst, int coverage, QRgba64 srcLinear, const QColorProfile *colorProfile) { // Do a gammacorrected gray alphablend... - const QRgba64 dlinear = colorProfile->toLinear64(*dst); + QRgba64 dstLinear = QRgba64::fromArgb32(*dst); - QRgba64 blend = interpolate255(slinear, coverage, dlinear, 255 - coverage); + if (colorProfile && !dstLinear.isTransparent()) + dstLinear = colorProfile->fromLinear(dstLinear.unpremultiplied()).premultiplied(); - *dst = colorProfile->fromLinear64(blend); + dstLinear = interpolate255(srcLinear, coverage, dstLinear, 255 - coverage); + + if (colorProfile && !dstLinear.isTransparent()) + dstLinear = colorProfile->fromLinear(dstLinear.unpremultiplied()).premultiplied(); + + *dst = toArgb32(dstLinear); +} + +static inline void alphamapblend_argb32(quint32 *dst, int coverage, QRgba64 srcLinear, quint32 src, const QColorProfile *colorProfile) +{ + if (coverage == 0) { + // nothing + } else if (coverage == 255) { + *dst = src; + } else { + grayBlendPixel(dst, coverage, srcLinear, colorProfile); + } } -static void qt_alphamapblit_uint32(QRasterBuffer *rasterBuffer, - int x, int y, quint32 color, +static void qt_alphamapblit_argb32(QRasterBuffer *rasterBuffer, + int x, int y, const QRgba64 &color, const uchar *map, int mapWidth, int mapHeight, int mapStride, const QClipData *clip, bool useGammaCorrection) { - const quint32 c = color; + const quint32 c = color.toArgb32(); const int destStride = rasterBuffer->bytesPerLine() / sizeof(quint32); - const QColorProfile *colorProfile = QGuiApplicationPrivate::instance()->colorProfileForA8Text(); - if (!colorProfile) + if (color.isTransparent()) return; - const QRgba64 slinear = colorProfile->toLinear64(c); + const QColorProfile *colorProfile = nullptr; + + if (useGammaCorrection) + colorProfile = QGuiApplicationPrivate::instance()->colorProfileForA8Text(); - bool opaque_src = (qAlpha(color) == 255); - bool doGrayBlendPixel = opaque_src && useGammaCorrection; + QRgba64 srcColor = color; + if (colorProfile) { + if (color.isOpaque()) + srcColor = colorProfile->toLinear(srcColor); + else + srcColor = colorProfile->toLinear(srcColor.unpremultiplied()).premultiplied(); + } if (!clip) { quint32 *dest = reinterpret_cast<quint32*>(rasterBuffer->scanLine(y)) + x; while (mapHeight--) { for (int i = 0; i < mapWidth; ++i) { const int coverage = map[i]; - - if (coverage == 0) { - // nothing - } else if (coverage == 255) { - dest[i] = c; - } else { - if (doGrayBlendPixel && qAlpha(dest[i]) == 255) { - grayBlendPixel(dest+i, coverage, slinear, colorProfile); - } else { - int ialpha = 255 - coverage; - dest[i] = INTERPOLATE_PIXEL_255(c, coverage, dest[i], ialpha); - } - } + alphamapblend_argb32(dest + i, coverage, srcColor, c, colorProfile); } dest += destStride; map += mapStride; @@ -5777,20 +5789,7 @@ static void qt_alphamapblit_uint32(QRasterBuffer *rasterBuffer, for (int xp=start; xp<end; ++xp) { const int coverage = map[xp - x]; - - if (coverage == 0) { - // nothing - } else if (coverage == 255) { - dest[xp] = c; - } else { - if (doGrayBlendPixel && qAlpha(dest[xp]) == 255) { - grayBlendPixel(dest+xp, coverage, slinear, colorProfile); - } else { - int ialpha = 255 - coverage; - dest[xp] = INTERPOLATE_PIXEL_255(c, coverage, dest[xp], ialpha); - } - } - + alphamapblend_argb32(dest + xp, coverage, srcColor, c, colorProfile); } // for (i -> line.count) } // for (yp -> bottom) map += mapStride; @@ -5798,27 +5797,6 @@ static void qt_alphamapblit_uint32(QRasterBuffer *rasterBuffer, } } - -static void qt_alphamapblit_argb32(QRasterBuffer *rasterBuffer, - int x, int y, const QRgba64 &color, - const uchar *map, - int mapWidth, int mapHeight, int mapStride, - const QClipData *clip, bool useGammaCorrection) -{ - qt_alphamapblit_uint32(rasterBuffer, x, y, color.toArgb32(), map, mapWidth, mapHeight, mapStride, clip, useGammaCorrection); -} - -#if Q_BYTE_ORDER == Q_LITTLE_ENDIAN -static void qt_alphamapblit_rgba8888(QRasterBuffer *rasterBuffer, - int x, int y, const QRgba64 &color, - const uchar *map, - int mapWidth, int mapHeight, int mapStride, - const QClipData *clip, bool useGammaCorrection) -{ - qt_alphamapblit_uint32(rasterBuffer, x, y, ARGB2RGBA(color.toArgb32()), map, mapWidth, mapHeight, mapStride, clip, useGammaCorrection); -} -#endif - static inline int qRgbAvg(QRgb rgb) { return (qRed(rgb) * 5 + qGreen(rgb) * 6 + qBlue(rgb) * 5) / 16; @@ -5863,7 +5841,7 @@ static void qt_alphargbblit_generic(QRasterBuffer *rasterBuffer, const QColorProfile *colorProfile = nullptr; if (useGammaCorrection) - colorProfile = QGuiApplicationPrivate::instance()->colorProfileForA8Text(); + colorProfile = QGuiApplicationPrivate::instance()->colorProfileForA32Text(); QRgba64 srcColor = color; if (colorProfile) { @@ -5933,11 +5911,18 @@ static void qt_alphargbblit_argb32(QRasterBuffer *rasterBuffer, const quint32 c = color.toArgb32(); - const QColorProfile *colorProfile = QGuiApplicationPrivate::instance()->colorProfileForA32Text(); - if (!colorProfile) - return; + const QColorProfile *colorProfile = nullptr; - const QRgba64 slinear = useGammaCorrection ? colorProfile->toLinear64(c) : color; + if (useGammaCorrection) + colorProfile = QGuiApplicationPrivate::instance()->colorProfileForA32Text(); + + QRgba64 srcColor = color; + if (colorProfile) { + if (color.isOpaque()) + srcColor = colorProfile->toLinear(srcColor); + else + srcColor = colorProfile->toLinear(srcColor.unpremultiplied()).premultiplied(); + } if (!clip) { quint32 *dst = reinterpret_cast<quint32*>(rasterBuffer->scanLine(y)) + x; @@ -5949,14 +5934,10 @@ static void qt_alphargbblit_argb32(QRasterBuffer *rasterBuffer, dst[i] = c; } else if (coverage != 0xff000000) { if (dst[i] >= 0xff000000) { - rgbBlendPixel(dst+i, coverage, slinear, colorProfile, useGammaCorrection); + rgbBlendPixel(dst + i, coverage, srcColor, colorProfile); } else { // Give up and do a gray blend. - const int a = qRgbAvg(coverage); - if (useGammaCorrection) - grayBlendPixel(dst+i, a, slinear, colorProfile); - else - dst[i] = INTERPOLATE_PIXEL_255(c, a, dst[i], 255 - a); + grayBlendPixel(dst + i, qRgbAvg(coverage), srcColor, colorProfile); } } } @@ -5988,14 +5969,10 @@ static void qt_alphargbblit_argb32(QRasterBuffer *rasterBuffer, dst[xp] = c; } else if (coverage != 0xff000000) { if (dst[xp] >= 0xff000000) { - rgbBlendPixel(dst+xp, coverage, slinear, colorProfile, useGammaCorrection); + rgbBlendPixel(dst + xp, coverage, srcColor, colorProfile); } else { // Give up and do a gray blend. - const int a = qRgbAvg(coverage); - if (useGammaCorrection) - grayBlendPixel(dst+xp, a, slinear, colorProfile); - else - dst[xp] = INTERPOLATE_PIXEL_255(c, a, dst[xp], 255 - coverage); + grayBlendPixel(dst + xp, qRgbAvg(coverage), srcColor, colorProfile); } } } @@ -6209,11 +6186,7 @@ DrawHelper qDrawHelper[QImage::NImageFormats] = blend_color_generic, blend_src_generic, qt_bitmapblit_rgba8888, -#if Q_BYTE_ORDER == Q_LITTLE_ENDIAN - qt_alphamapblit_rgba8888, -#else qt_alphamapblit_generic, -#endif qt_alphargbblit_generic, qt_rectfill_rgba }, @@ -6222,11 +6195,7 @@ DrawHelper qDrawHelper[QImage::NImageFormats] = blend_color_generic, blend_src_generic, qt_bitmapblit_rgba8888, -#if Q_BYTE_ORDER == Q_LITTLE_ENDIAN - qt_alphamapblit_rgba8888, -#else qt_alphamapblit_generic, -#endif qt_alphargbblit_generic, qt_rectfill_nonpremul_rgba }, @@ -6235,11 +6204,7 @@ DrawHelper qDrawHelper[QImage::NImageFormats] = blend_color_generic, blend_src_generic, qt_bitmapblit_rgba8888, -#if Q_BYTE_ORDER == Q_LITTLE_ENDIAN - qt_alphamapblit_rgba8888, -#else qt_alphamapblit_generic, -#endif qt_alphargbblit_generic, qt_rectfill_rgba }, diff --git a/src/gui/painting/qpathclipper.cpp b/src/gui/painting/qpathclipper.cpp index addd9c0c2c..924d332452 100644 --- a/src/gui/painting/qpathclipper.cpp +++ b/src/gui/painting/qpathclipper.cpp @@ -2096,7 +2096,12 @@ QPainterPath intersectPath(const QPainterPath &path, const QRectF &rect) result.addPath(subPath); } } - return result; + // The algorithm above might return one side of \a rect if there was no intersection, + // so only return intersections that are not empty rectangles. + if (result.boundingRect().isEmpty()) + return QPainterPath(); + else + return result; } } diff --git a/src/gui/painting/qtriangulatingstroker.cpp b/src/gui/painting/qtriangulatingstroker.cpp index 6243f1e2a4..3f7b01ddbe 100644 --- a/src/gui/painting/qtriangulatingstroker.cpp +++ b/src/gui/painting/qtriangulatingstroker.cpp @@ -525,6 +525,7 @@ void QDashedStrokeProcessor::process(const QVectorPath &path, const QPen &pen, c int count = path.elementCount(); bool cosmetic = qt_pen_is_cosmetic(pen, hints); + bool implicitClose = path.hasImplicitClose(); m_points.reset(); m_types.reset(); @@ -558,8 +559,14 @@ void QDashedStrokeProcessor::process(const QVectorPath &path, const QPen &pen, c if (count < 2) return; - const qreal *endPts = pts + (count<<1); + bool needsClose = false; + if (implicitClose) { + if (pts[0] != pts[count * 2 - 2] || pts[1] != pts[count * 2 - 1]) + needsClose = true; + } + const qreal *firstPts = pts; + const qreal *endPts = pts + (count<<1); m_dash_stroker.begin(this); if (!types) { @@ -605,6 +612,8 @@ void QDashedStrokeProcessor::process(const QVectorPath &path, const QPen &pen, c } } } + if (needsClose) + m_dash_stroker.lineTo(firstPts[0], firstPts[1]); m_dash_stroker.end(); } diff --git a/src/network/configure.json b/src/network/configure.json index 7bd3f6164a..d35dda99bc 100644 --- a/src/network/configure.json +++ b/src/network/configure.json @@ -212,7 +212,7 @@ "label": "SOCKS5", "purpose": "Provides SOCKS5 support in QNetworkProxy.", "section": "Networking", - "condition": "!config.winrt", + "condition": "!config.winrt && features.networkproxy", "output": [ "publicFeature", "feature" ] }, "networkinterface": { diff --git a/src/network/socket/socket.pri b/src/network/socket/socket.pri index 793ea60b07..18a8153f56 100644 --- a/src/network/socket/socket.pri +++ b/src/network/socket/socket.pri @@ -2,7 +2,6 @@ HEADERS += socket/qabstractsocketengine_p.h \ socket/qhttpsocketengine_p.h \ - socket/qsocks5socketengine_p.h \ socket/qabstractsocket.h \ socket/qabstractsocket_p.h \ socket/qtcpsocket.h \ @@ -17,7 +16,6 @@ HEADERS += socket/qabstractsocketengine_p.h \ SOURCES += socket/qabstractsocketengine.cpp \ socket/qhttpsocketengine.cpp \ - socket/qsocks5socketengine.cpp \ socket/qabstractsocket.cpp \ socket/qtcpsocket.cpp \ socket/qudpsocket.cpp \ @@ -25,6 +23,15 @@ SOURCES += socket/qabstractsocketengine.cpp \ socket/qlocalsocket.cpp \ socket/qlocalserver.cpp +# SOCK5 support. + +qtConfig(socks5) { + HEADERS += \ + socket/qsocks5socketengine_p.h + SOURCES += \ + socket/qsocks5socketengine.cpp +} + # SCTP support. qtConfig(sctp) { diff --git a/src/platformsupport/services/genericunix/qgenericunixservices.cpp b/src/platformsupport/services/genericunix/qgenericunixservices.cpp index dee983264d..cdb5d33859 100644 --- a/src/platformsupport/services/genericunix/qgenericunixservices.cpp +++ b/src/platformsupport/services/genericunix/qgenericunixservices.cpp @@ -40,12 +40,14 @@ #include "qgenericunixservices_p.h" #include <QtGui/private/qtguiglobal_p.h> -#include <QtCore/QStandardPaths> +#include <QtCore/QDebug> +#include <QtCore/QFile> #if QT_CONFIG(process) # include <QtCore/QProcess> #endif +#include <QtCore/QSettings> +#include <QtCore/QStandardPaths> #include <QtCore/QUrl> -#include <QtCore/QDebug> #include <stdlib.h> @@ -68,11 +70,29 @@ static inline QByteArray detectDesktopEnvironment() return QByteArrayLiteral("GNOME"); // Fallback to checking $DESKTOP_SESSION (unreliable) - const QByteArray desktopSession = qgetenv("DESKTOP_SESSION"); + QByteArray desktopSession = qgetenv("DESKTOP_SESSION"); + + // This can be a path in /usr/share/xsessions + int slash = desktopSession.lastIndexOf('/'); + if (slash != -1) { +#ifndef QT_NO_SETTINGS + QSettings desktopFile(QFile::decodeName(desktopSession + ".desktop"), QSettings::IniFormat); + desktopFile.beginGroup(QStringLiteral("Desktop Entry")); + QByteArray desktopName = desktopFile.value(QStringLiteral("DesktopNames")).toByteArray(); + if (!desktopName.isEmpty()) + return desktopName; +#endif + + // try decoding just the basename + desktopSession = desktopSession.mid(slash + 1); + } + if (desktopSession == "gnome") return QByteArrayLiteral("GNOME"); - if (desktopSession == "xfce") + else if (desktopSession == "xfce") return QByteArrayLiteral("XFCE"); + else if (desktopSession == "kde") + return QByteArrayLiteral("KDE"); return QByteArrayLiteral("UNKNOWN"); } diff --git a/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp b/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp index e9116223bd..8dfae2ca0b 100644 --- a/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp +++ b/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp @@ -824,11 +824,13 @@ QStringList QGenericUnixTheme::themeNames() result.push_back(QStringLiteral("gtk3")); // fallback to the generic Gnome theme if loading the GTK3 theme fails result.push_back(QLatin1String(QGnomeTheme::name)); + } else { + // unknown, but lowercase the name (our standard practice) and + // remove any "x-" prefix + QString s = QString::fromLatin1(desktopName.toLower()); + result.push_back(s.startsWith(QLatin1String("x-")) ? s.mid(2) : s); } } - const QString session = QString::fromLocal8Bit(qgetenv("DESKTOP_SESSION")); - if (!session.isEmpty() && session != QLatin1String("default") && !result.contains(session)) - result.push_back(session); } // desktopSettingsAware result.append(QLatin1String(QGenericUnixTheme::name)); return result; diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm index b453da818f..b85fb97f67 100644 --- a/src/plugins/platforms/cocoa/qcocoawindow.mm +++ b/src/plugins/platforms/cocoa/qcocoawindow.mm @@ -1556,6 +1556,8 @@ void QCocoaWindow::foreachChildNSWindow(void (^block)(QCocoaWindow *)) */ void QCocoaWindow::recreateWindowIfNeeded() { + QMacAutoReleasePool pool; + QPlatformWindow *parentWindow = QPlatformWindow::parent(); qCDebug(lcQpaCocoaWindow) << "QCocoaWindow::recreateWindowIfNeeded" << window() << "parent" << (parentWindow ? parentWindow->window() : 0); diff --git a/src/plugins/platforms/eglfs/api/qeglfscursor.cpp b/src/plugins/platforms/eglfs/api/qeglfscursor.cpp index 19a0e03212..f46206cab5 100644 --- a/src/plugins/platforms/eglfs/api/qeglfscursor.cpp +++ b/src/plugins/platforms/eglfs/api/qeglfscursor.cpp @@ -410,6 +410,8 @@ struct StateSaver f->glGetIntegerv(GL_ARRAY_BUFFER_BINDING, &arrayBuf); if (vaoHelper->isValid()) f->glGetIntegerv(GL_VERTEX_ARRAY_BINDING, &vao); + else + vao = 0; for (int i = 0; i < 2; ++i) { f->glGetVertexAttribiv(i, GL_VERTEX_ATTRIB_ARRAY_ENABLED, &va[i].enabled); f->glGetVertexAttribiv(i, GL_VERTEX_ATTRIB_ARRAY_SIZE, &va[i].size); diff --git a/src/plugins/platforms/windows/qwindowscontext.cpp b/src/plugins/platforms/windows/qwindowscontext.cpp index ff4ab1accb..eb62bd2e1f 100644 --- a/src/plugins/platforms/windows/qwindowscontext.cpp +++ b/src/plugins/platforms/windows/qwindowscontext.cpp @@ -855,6 +855,9 @@ bool QWindowsContext::windowsProc(HWND hwnd, UINT message, GetCursorPos(&msg.pt); } + QWindowsWindow *platformWindow = findPlatformWindow(hwnd); + *platformWindowPtr = platformWindow; + // Run the native event filters. long filterResult = 0; QAbstractEventDispatcher* dispatcher = QAbstractEventDispatcher::instance(); @@ -863,8 +866,6 @@ bool QWindowsContext::windowsProc(HWND hwnd, UINT message, return true; } - QWindowsWindow *platformWindow = findPlatformWindow(hwnd); - *platformWindowPtr = platformWindow; if (platformWindow) { filterResult = 0; if (QWindowSystemInterface::handleNativeEvent(platformWindow->window(), d->m_eventType, &msg, &filterResult)) { diff --git a/src/plugins/platforms/windows/qwindowsinputcontext.cpp b/src/plugins/platforms/windows/qwindowsinputcontext.cpp index e7ebf73d5d..8c228f588e 100644 --- a/src/plugins/platforms/windows/qwindowsinputcontext.cpp +++ b/src/plugins/platforms/windows/qwindowsinputcontext.cpp @@ -229,7 +229,7 @@ void QWindowsInputContext::updateEnabled() const bool accepted = inputMethodAccepted(); if (QWindowsContext::verbose > 1) qCDebug(lcQpaInputMethods) << __FUNCTION__ << platformWindow->window() << "accepted=" << accepted; - QWindowsInputContext::setWindowsImeEnabled(platformWindow, accepted); + QWindowsInputContext::setWindowsImeEnabled(platformWindow, accepted); } } diff --git a/src/plugins/platformthemes/gtk3/qgtk3menu.cpp b/src/plugins/platformthemes/gtk3/qgtk3menu.cpp index 38c2d251b4..f48e00ab8e 100644 --- a/src/plugins/platformthemes/gtk3/qgtk3menu.cpp +++ b/src/plugins/platformthemes/gtk3/qgtk3menu.cpp @@ -47,6 +47,7 @@ QT_BEGIN_NAMESPACE +#if QT_CONFIG(shortcut) static guint qt_gdkKey(const QKeySequence &shortcut) { if (shortcut.isEmpty()) @@ -75,6 +76,7 @@ static GdkModifierType qt_gdkModifiers(const QKeySequence &shortcut) return static_cast<GdkModifierType>(mods); } +#endif QGtk3MenuItem::QGtk3MenuItem() : m_visible(true), @@ -126,10 +128,12 @@ GtkWidget *QGtk3MenuItem::create() if (m_menu) gtk_menu_item_set_submenu(GTK_MENU_ITEM(m_item), m_menu->handle()); g_signal_connect(m_item, "select", G_CALLBACK(onSelect), this); +#if QT_CONFIG(shortcut) if (!m_shortcut.isEmpty()) { GtkWidget *label = gtk_bin_get_child(GTK_BIN(m_item)); gtk_accel_label_set_accel(GTK_ACCEL_LABEL(label), qt_gdkKey(m_shortcut), qt_gdkModifiers(m_shortcut)); } +#endif } gtk_widget_set_sensitive(m_item, m_enabled); gtk_widget_set_visible(m_item, m_visible); @@ -267,6 +271,7 @@ void QGtk3MenuItem::setChecked(bool checked) gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(m_item), checked); } +#if QT_CONFIG(shortcut) QKeySequence QGtk3MenuItem::shortcut() const { return m_shortcut; @@ -283,6 +288,7 @@ void QGtk3MenuItem::setShortcut(const QKeySequence& shortcut) gtk_accel_label_set_accel(GTK_ACCEL_LABEL(label), qt_gdkKey(m_shortcut), qt_gdkModifiers(m_shortcut)); } } +#endif bool QGtk3MenuItem::isEnabled() const { diff --git a/src/plugins/platformthemes/gtk3/qgtk3menu.h b/src/plugins/platformthemes/gtk3/qgtk3menu.h index b43f363fa4..c4dd89cefc 100644 --- a/src/plugins/platformthemes/gtk3/qgtk3menu.h +++ b/src/plugins/platformthemes/gtk3/qgtk3menu.h @@ -82,8 +82,10 @@ public: bool isChecked() const; void setChecked(bool checked) override; +#if QT_CONFIG(shortcut) QKeySequence shortcut() const; void setShortcut(const QKeySequence &shortcut) override; +#endif bool isEnabled() const; void setEnabled(bool enabled) override; @@ -114,7 +116,9 @@ private: QGtk3Menu *m_menu; GtkWidget *m_item; QString m_text; +#if QT_CONFIG(shortcut) QKeySequence m_shortcut; +#endif }; class QGtk3Menu : public QPlatformMenu diff --git a/src/printsupport/dialogs/qprintdialog_unix.cpp b/src/printsupport/dialogs/qprintdialog_unix.cpp index 4d8299b115..5527cd94f9 100644 --- a/src/printsupport/dialogs/qprintdialog_unix.cpp +++ b/src/printsupport/dialogs/qprintdialog_unix.cpp @@ -38,7 +38,7 @@ ****************************************************************************/ #include "qplatformdefs.h" -#include <QtPrintSupport/qtprintsupportglobal.h> +#include <QtPrintSupport/private/qtprintsupportglobal_p.h> #ifndef QT_NO_PRINTDIALOG @@ -66,8 +66,10 @@ #ifndef QT_NO_CUPS #include <private/qcups_p.h> +#if QT_CONFIG(cupsjobwidget) #include "qcupsjobwidget_p.h" #endif +#endif /* @@ -129,7 +131,7 @@ private: friend class QUnixPrintWidgetPrivate; Ui::QPrintPropertiesWidget widget; QDialogButtonBox *m_buttons; -#ifndef QT_NO_CUPS +#if QT_CONFIG(cupsjobwidget) QCupsJobWidget *m_jobOptions; #endif }; @@ -247,7 +249,7 @@ QPrintPropertiesDialog::QPrintPropertiesDialog(QAbstractPrintDialog *parent) connect(m_buttons->button(QDialogButtonBox::Ok), SIGNAL(clicked()), this, SLOT(accept())); connect(m_buttons->button(QDialogButtonBox::Cancel), SIGNAL(clicked()), this, SLOT(reject())); -#ifndef QT_NO_CUPS +#if QT_CONFIG(cupsjobwidget) m_jobOptions = new QCupsJobWidget(); widget.tabs->addTab(m_jobOptions, tr("Job Options")); #endif @@ -260,7 +262,7 @@ QPrintPropertiesDialog::~QPrintPropertiesDialog() void QPrintPropertiesDialog::applyPrinterProperties(QPrinter *p) { widget.pageSetup->setPrinter(p); -#ifndef QT_NO_CUPS +#if QT_CONFIG(cupsjobwidget) m_jobOptions->setPrinter(p); #endif } @@ -268,7 +270,7 @@ void QPrintPropertiesDialog::applyPrinterProperties(QPrinter *p) void QPrintPropertiesDialog::setupPrinter() const { widget.pageSetup->setupPrinter(); -#ifndef QT_NO_CUPS +#if QT_CONFIG(cupsjobwidget) m_jobOptions->setupPrinter(); #endif } diff --git a/src/printsupport/kernel/qtprintsupportglobal_p.h b/src/printsupport/kernel/qtprintsupportglobal_p.h index 2f6b924ed0..0623a08f1c 100644 --- a/src/printsupport/kernel/qtprintsupportglobal_p.h +++ b/src/printsupport/kernel/qtprintsupportglobal_p.h @@ -53,5 +53,6 @@ #include <QtPrintSupport/qtprintsupportglobal.h> #include <QtWidgets/private/qtwidgetsglobal_p.h> +#include <QtPrintSupport/private/qtprintsupport-config_p.h> #endif // QTPRINTSUPPORTGLOBAL_P_H diff --git a/src/printsupport/widgets/qcupsjobwidget_p.h b/src/printsupport/widgets/qcupsjobwidget_p.h index 288aeac1aa..7d3c15938f 100644 --- a/src/printsupport/widgets/qcupsjobwidget_p.h +++ b/src/printsupport/widgets/qcupsjobwidget_p.h @@ -56,7 +56,8 @@ #include <QtPrintSupport/private/qtprintsupportglobal_p.h> #include <private/qcups_p.h> -#if !defined(QT_NO_PRINTER) && !defined(QT_NO_CUPS) && !defined(QT_NO_DATETIMEEDIT) +QT_REQUIRE_CONFIG(cupsjobwidget); + #include <ui_qcupsjobwidget.h> QT_BEGIN_NAMESPACE @@ -109,6 +110,4 @@ private: QT_END_NAMESPACE -#endif // QT_NO_PRINTER / QT_NO_CUPS - #endif // QCUPSJOBWIDGET_P_H diff --git a/src/widgets/accessible/qaccessiblewidget.cpp b/src/widgets/accessible/qaccessiblewidget.cpp index 94cf58ae3b..d5f7449e57 100644 --- a/src/widgets/accessible/qaccessiblewidget.cpp +++ b/src/widgets/accessible/qaccessiblewidget.cpp @@ -148,6 +148,8 @@ QString qt_accHotKey(const QString &text) int ampIndex = qt_accAmpIndex(text); if (ampIndex != -1) return QKeySequence(Qt::ALT).toString(QKeySequence::NativeText) + text.at(ampIndex + 1); +#else + Q_UNUSED(text) #endif return QString(); diff --git a/src/widgets/accessible/simplewidgets.cpp b/src/widgets/accessible/simplewidgets.cpp index a53e5eaf30..aa075cad1b 100644 --- a/src/widgets/accessible/simplewidgets.cpp +++ b/src/widgets/accessible/simplewidgets.cpp @@ -327,9 +327,8 @@ int QAccessibleToolButton::childCount() const QAccessible::Role QAccessibleToolButton::role() const { - QAbstractButton *ab = button(); - #ifndef QT_NO_MENU + QAbstractButton *ab = button(); QToolButton *tb = qobject_cast<QToolButton*>(ab); if (!tb->menu()) return tb->isCheckable() ? QAccessible::CheckBox : QAccessible::PushButton; @@ -347,6 +346,8 @@ QAccessibleInterface *QAccessibleToolButton::child(int index) const { return QAccessible::queryAccessibleInterface(toolButton()->menu()); } +#else + Q_UNUSED(index) #endif return 0; } diff --git a/src/widgets/dialogs/qfiledialog.cpp b/src/widgets/dialogs/qfiledialog.cpp index 78e304950a..98f8147236 100644 --- a/src/widgets/dialogs/qfiledialog.cpp +++ b/src/widgets/dialogs/qfiledialog.cpp @@ -3812,8 +3812,8 @@ void QFileDialogPrivate::_q_nativeEnterDirectory(const QUrl &directory) */ bool QFileDialogPrivate::itemViewKeyboardEvent(QKeyEvent *event) { - Q_Q(QFileDialog); #if QT_CONFIG(shortcut) + Q_Q(QFileDialog); if (event->matches(QKeySequence::Cancel)) { q->reject(); return true; @@ -4018,7 +4018,9 @@ void QFileDialogLineEdit::keyPressEvent(QKeyEvent *e) } #endif // QT_KEYPAD_NAVIGATION +#if QT_CONFIG(shortcut) int key = e->key(); +#endif QLineEdit::keyPressEvent(e); #if QT_CONFIG(shortcut) if (!e->matches(QKeySequence::Cancel) && key != Qt::Key_Back) diff --git a/src/widgets/dialogs/qfiledialog_p.h b/src/widgets/dialogs/qfiledialog_p.h index b665b54a9b..d5df7542b6 100644 --- a/src/widgets/dialogs/qfiledialog_p.h +++ b/src/widgets/dialogs/qfiledialog_p.h @@ -253,15 +253,15 @@ public: bool canBeNativeDialog() const Q_DECL_OVERRIDE; inline bool usingWidgets() const; - void setDirectory_sys(const QUrl &directory); - QUrl directory_sys() const; - void selectFile_sys(const QUrl &filename); - QList<QUrl> selectedFiles_sys() const; - void setFilter_sys(); - void selectMimeTypeFilter_sys(const QString &filter); - QString selectedMimeTypeFilter_sys() const; - void selectNameFilter_sys(const QString &filter); - QString selectedNameFilter_sys() const; + inline void setDirectory_sys(const QUrl &directory); + inline QUrl directory_sys() const; + inline void selectFile_sys(const QUrl &filename); + inline QList<QUrl> selectedFiles_sys() const; + inline void setFilter_sys(); + inline void selectMimeTypeFilter_sys(const QString &filter); + inline QString selectedMimeTypeFilter_sys() const; + inline void selectNameFilter_sys(const QString &filter); + inline QString selectedNameFilter_sys() const; ////////////////////////////////////////////// QScopedPointer<Ui_QFileDialog> qFileDialogUi; @@ -341,14 +341,14 @@ private: QFileDialogPrivate *d_ptr; }; -inline QModelIndex QFileDialogPrivate::mapToSource(const QModelIndex &index) const { +QModelIndex QFileDialogPrivate::mapToSource(const QModelIndex &index) const { #ifdef QT_NO_PROXYMODEL return index; #else return proxyModel ? proxyModel->mapToSource(index) : index; #endif } -inline QModelIndex QFileDialogPrivate::mapFromSource(const QModelIndex &index) const { +QModelIndex QFileDialogPrivate::mapFromSource(const QModelIndex &index) const { #ifdef QT_NO_PROXYMODEL return index; #else @@ -356,11 +356,12 @@ inline QModelIndex QFileDialogPrivate::mapFromSource(const QModelIndex &index) c #endif } -inline QString QFileDialogPrivate::rootPath() const { +QString QFileDialogPrivate::rootPath() const +{ return (model ? model->rootPath() : QStringLiteral("/")); } -inline void QFileDialogPrivate::setDirectory_sys(const QUrl &directory) +void QFileDialogPrivate::setDirectory_sys(const QUrl &directory) { QPlatformFileDialogHelper *helper = platformFileDialogHelper(); @@ -371,14 +372,14 @@ inline void QFileDialogPrivate::setDirectory_sys(const QUrl &directory) helper->setDirectory(directory); } -inline QUrl QFileDialogPrivate::directory_sys() const +QUrl QFileDialogPrivate::directory_sys() const { if (QPlatformFileDialogHelper *helper = platformFileDialogHelper()) return helper->directory(); return QUrl(); } -inline void QFileDialogPrivate::selectFile_sys(const QUrl &filename) +void QFileDialogPrivate::selectFile_sys(const QUrl &filename) { QPlatformFileDialogHelper *helper = platformFileDialogHelper(); @@ -389,20 +390,20 @@ inline void QFileDialogPrivate::selectFile_sys(const QUrl &filename) helper->selectFile(filename); } -inline QList<QUrl> QFileDialogPrivate::selectedFiles_sys() const +QList<QUrl> QFileDialogPrivate::selectedFiles_sys() const { if (QPlatformFileDialogHelper *helper = platformFileDialogHelper()) return helper->selectedFiles(); return QList<QUrl>(); } -inline void QFileDialogPrivate::setFilter_sys() +void QFileDialogPrivate::setFilter_sys() { if (QPlatformFileDialogHelper *helper = platformFileDialogHelper()) helper->setFilter(); } -inline void QFileDialogPrivate::selectMimeTypeFilter_sys(const QString &filter) +void QFileDialogPrivate::selectMimeTypeFilter_sys(const QString &filter) { if (QPlatformFileDialogHelper *helper = platformFileDialogHelper()) helper->selectMimeTypeFilter(filter); @@ -416,13 +417,13 @@ QString QFileDialogPrivate::selectedMimeTypeFilter_sys() const return QString(); } -inline void QFileDialogPrivate::selectNameFilter_sys(const QString &filter) +void QFileDialogPrivate::selectNameFilter_sys(const QString &filter) { if (QPlatformFileDialogHelper *helper = platformFileDialogHelper()) helper->selectNameFilter(filter); } -inline QString QFileDialogPrivate::selectedNameFilter_sys() const +QString QFileDialogPrivate::selectedNameFilter_sys() const { if (QPlatformFileDialogHelper *helper = platformFileDialogHelper()) return helper->selectedNameFilter(); diff --git a/src/widgets/dialogs/qmessagebox.cpp b/src/widgets/dialogs/qmessagebox.cpp index fe32611ed8..7a98fae99c 100644 --- a/src/widgets/dialogs/qmessagebox.cpp +++ b/src/widgets/dialogs/qmessagebox.cpp @@ -1404,8 +1404,8 @@ void QMessageBox::changeEvent(QEvent *ev) */ void QMessageBox::keyPressEvent(QKeyEvent *e) { - Q_D(QMessageBox); #if QT_CONFIG(shortcut) + Q_D(QMessageBox); if (e->matches(QKeySequence::Cancel)) { if (d->detectedEscapeButton) { #ifdef Q_OS_MAC diff --git a/src/widgets/doc/images/tableWidget-stylesheet.png b/src/widgets/doc/images/tableWidget-stylesheet.png Binary files differindex e99e7a97c8..8c0669838c 100644 --- a/src/widgets/doc/images/tableWidget-stylesheet.png +++ b/src/widgets/doc/images/tableWidget-stylesheet.png diff --git a/src/widgets/doc/snippets/code/doc_src_stylesheet.qdoc b/src/widgets/doc/snippets/code/doc_src_stylesheet.qdoc index afe38b24e9..dfea9f2ca4 100644 --- a/src/widgets/doc/snippets/code/doc_src_stylesheet.qdoc +++ b/src/widgets/doc/snippets/code/doc_src_stylesheet.qdoc @@ -1883,3 +1883,9 @@ QTabBar::close-button:hover { * { lineedit-password-mask-delay: 1000 } //! [160] +//! [161] +QTableView::indicator:unchecked { + background-color: #d7d6d5 +} +//! [161] + diff --git a/src/widgets/doc/src/widgets-and-layouts/stylesheet.qdoc b/src/widgets/doc/src/widgets-and-layouts/stylesheet.qdoc index 61379fb2f0..6745b78898 100644 --- a/src/widgets/doc/src/widgets-and-layouts/stylesheet.qdoc +++ b/src/widgets/doc/src/widgets-and-layouts/stylesheet.qdoc @@ -3904,6 +3904,12 @@ \snippet code/doc_src_stylesheet.qdoc 150 + The QTableView's checkbox indicator can also be customized. In the + following snippet the indicator \c background-color in unchecked state is + customized: + + \snippet code/doc_src_stylesheet.qdoc 161 + \section2 Customizing QToolBar The background and the handle of a QToolBar is customized as below: diff --git a/src/widgets/itemviews/qabstractitemdelegate.cpp b/src/widgets/itemviews/qabstractitemdelegate.cpp index f63e258e8e..f7c170f0bb 100644 --- a/src/widgets/itemviews/qabstractitemdelegate.cpp +++ b/src/widgets/itemviews/qabstractitemdelegate.cpp @@ -547,6 +547,8 @@ bool QAbstractItemDelegatePrivate::tryFixup(QWidget *editor) return e->hasAcceptableInput(); } } +#else + Q_UNUSED(editor) #endif // QT_NO_LINEEDIT return true; diff --git a/src/widgets/kernel/qapplication.cpp b/src/widgets/kernel/qapplication.cpp index 0e4ee30c19..4ab43628b9 100644 --- a/src/widgets/kernel/qapplication.cpp +++ b/src/widgets/kernel/qapplication.cpp @@ -564,6 +564,10 @@ QApplication::QApplication(int &argc, char **argv, int _internal) */ void QApplicationPrivate::init() { +#if defined(Q_OS_MACOS) + QMacAutoReleasePool pool; +#endif + QGuiApplicationPrivate::init(); initResources(); diff --git a/src/widgets/styles/qmacstyle_mac.mm b/src/widgets/styles/qmacstyle_mac.mm index 0bd2894402..8d0fe1196c 100644 --- a/src/widgets/styles/qmacstyle_mac.mm +++ b/src/widgets/styles/qmacstyle_mac.mm @@ -2470,11 +2470,13 @@ int QMacStyle::pixelMetric(PixelMetric metric, const QStyleOption *opt, const QW case PM_ButtonDefaultIndicator: ret = 0; break; - case PM_TitleBarHeight: - // Always use NSTitledWindowMask since we never need any other type of window here + case PM_TitleBarHeight: { + NSUInteger style = NSTitledWindowMask; + if (widget && ((widget->windowFlags() & Qt::Tool) == Qt::Tool)) + style |= NSUtilityWindowMask; ret = int([NSWindow frameRectForContentRect:NSZeroRect - styleMask:NSTitledWindowMask].size.height); - break; + styleMask:style].size.height); + break; } case QStyle::PM_TabBarTabHSpace: switch (d->aquaSizeConstrain(opt, widget)) { case QAquaSizeLarge: @@ -2503,7 +2505,7 @@ int QMacStyle::pixelMetric(PixelMetric metric, const QStyleOption *opt, const QW ret = 0; break; case PM_TabBarBaseHeight: - ret = 21; + ret = 0; break; case PM_TabBarTabOverlap: ret = 1; diff --git a/src/widgets/util/qflickgesture.cpp b/src/widgets/util/qflickgesture.cpp index 10e92e04e1..71c4458b79 100644 --- a/src/widgets/util/qflickgesture.cpp +++ b/src/widgets/util/qflickgesture.cpp @@ -292,6 +292,8 @@ protected: qFGDebug() << "QFG: ungrabbing" << grabber; grabber->ungrabMouse(); } +#else + Q_UNUSED(flags); #endif // QT_NO_GRAPHICSVIEW if (me) { diff --git a/src/widgets/util/qsystemtrayicon.cpp b/src/widgets/util/qsystemtrayicon.cpp index 1e0d2ab857..11214d93eb 100644 --- a/src/widgets/util/qsystemtrayicon.cpp +++ b/src/widgets/util/qsystemtrayicon.cpp @@ -738,6 +738,8 @@ void QSystemTrayIconPrivate::addPlatformMenu(QMenu *menu) const QPlatformMenu *platformMenu = qpa_sys->createMenu(); if (platformMenu) menu->setPlatformMenu(platformMenu); +#else + Q_UNUSED(menu) #endif // QT_CONFIG(menu) } diff --git a/src/widgets/widgets/qmenu.cpp b/src/widgets/widgets/qmenu.cpp index d62c010c60..2cafe462b1 100644 --- a/src/widgets/widgets/qmenu.cpp +++ b/src/widgets/widgets/qmenu.cpp @@ -130,7 +130,7 @@ public: setAttribute(Qt::WA_X11NetWmWindowTypeMenu, true); updateWindowTitle(); setEnabled(p->isEnabled()); -#if QT_CONFIG(cssparser) +#if QT_CONFIG(style_stylesheet) setStyleSheet(p->styleSheet()); #endif if (style() != p->style()) @@ -327,8 +327,8 @@ void QMenuPrivate::updateActionRects(const QRect &screen) const const int deskFw = style->pixelMetric(QStyle::PM_MenuDesktopFrameWidth, &opt, q); const int tearoffHeight = tearoff ? style->pixelMetric(QStyle::PM_MenuTearoffHeight, &opt, q) : 0; const int base_y = vmargin + fw + topmargin + (scroll ? scroll->scrollOffset : 0) + tearoffHeight; + const int column_max_y = screen.height() - 2 * deskFw - (vmargin + bottommargin + fw); int max_column_width = 0; - int dh = screen.height(); int y = base_y; //for compatibility now - will have to refactor this away @@ -406,8 +406,7 @@ void QMenuPrivate::updateActionRects(const QRect &screen) const if (!sz.isEmpty()) { max_column_width = qMax(max_column_width, sz.width()); //wrapping - if (!scroll && - y + sz.height() + vmargin + bottommargin + fw > dh - (deskFw * 2)) { + if (!scroll && y + sz.height() > column_max_y) { ncols++; y = base_y; } else { @@ -433,8 +432,7 @@ void QMenuPrivate::updateActionRects(const QRect &screen) const QRect &rect = actionRects[i]; if (rect.isNull()) continue; - if (!scroll && - y + rect.height() + vmargin + bottommargin + fw > dh - deskFw * 2) { + if (!scroll && y + rect.height() > column_max_y) { x += max_column_width + hmargin; y = base_y; } @@ -2325,16 +2323,7 @@ void QMenu::popup(const QPoint &p, QAction *atAction) ensurePolished(); // Get the right font emit aboutToShow(); const bool actionListChanged = d->itemsDirty; - d->updateActionRects(); - QPoint pos; - QPushButton *causedButton = qobject_cast<QPushButton*>(d->causedPopup.widget); - if (actionListChanged && causedButton) - pos = QPushButtonPrivate::get(causedButton)->adjustedMenuPosition(); - else - pos = p; - const QSize menuSizeHint(sizeHint()); - QSize size = menuSizeHint; QRect screen; #ifndef QT_NO_GRAPHICSVIEW bool isEmbedded = !bypassGraphicsProxyWidget(this) && d->nearestGraphicsProxyWidget(this); @@ -2343,6 +2332,17 @@ void QMenu::popup(const QPoint &p, QAction *atAction) else #endif screen = d->popupGeometry(QApplication::desktop()->screenNumber(p)); + d->updateActionRects(screen); + + QPoint pos; + QPushButton *causedButton = qobject_cast<QPushButton*>(d->causedPopup.widget); + if (actionListChanged && causedButton) + pos = QPushButtonPrivate::get(causedButton)->adjustedMenuPosition(); + else + pos = p; + + const QSize menuSizeHint(sizeHint()); + QSize size = menuSizeHint; const int desktopFrame = style()->pixelMetric(QStyle::PM_MenuDesktopFrameWidth, 0, this); bool adjustToDesktop = !window()->testAttribute(Qt::WA_DontShowOnScreen); diff --git a/src/widgets/widgets/qwidgetlinecontrol.cpp b/src/widgets/widgets/qwidgetlinecontrol.cpp index 363e7157ac..905bc0f586 100644 --- a/src/widgets/widgets/qwidgetlinecontrol.cpp +++ b/src/widgets/widgets/qwidgetlinecontrol.cpp @@ -1704,7 +1704,9 @@ void QWidgetLineControl::processKeyEvent(QKeyEvent* event) } bool unknown = false; +#if QT_CONFIG(shortcut) bool visual = cursorMoveStyle() == Qt::VisualMoveStyle; +#endif if (false) { } diff --git a/tests/auto/corelib/global/qflags/tst_qflags.cpp b/tests/auto/corelib/global/qflags/tst_qflags.cpp index d70b099fe3..7dd1a1be01 100644 --- a/tests/auto/corelib/global/qflags/tst_qflags.cpp +++ b/tests/auto/corelib/global/qflags/tst_qflags.cpp @@ -111,19 +111,19 @@ void tst_QFlags::constExpr() default: QVERIFY(false); } - QVERIFY(verifyConstExpr<(Qt::LeftButton | Qt::RightButton) & Qt::LeftButton>(Qt::LeftButton)); - QVERIFY(verifyConstExpr<(Qt::LeftButton | Qt::RightButton) & Qt::MiddleButton>(0)); - QVERIFY(verifyConstExpr<(Qt::LeftButton | Qt::RightButton) | Qt::MiddleButton>(Qt::LeftButton | Qt::RightButton | Qt::MiddleButton)); - QVERIFY(verifyConstExpr<~(Qt::LeftButton | Qt::RightButton)>(~(Qt::LeftButton | Qt::RightButton))); - QVERIFY(verifyConstExpr<Qt::MouseButtons(Qt::LeftButton) ^ Qt::RightButton>(Qt::LeftButton ^ Qt::RightButton)); - QVERIFY(verifyConstExpr<Qt::MouseButtons(0)>(0)); - QVERIFY(verifyConstExpr<Qt::MouseButtons(Qt::RightButton) & 0xff>(Qt::RightButton)); - QVERIFY(verifyConstExpr<Qt::MouseButtons(Qt::RightButton) | 0xff>(0xff)); + QVERIFY(verifyConstExpr<uint((Qt::LeftButton | Qt::RightButton) & Qt::LeftButton)>(Qt::LeftButton)); + QVERIFY(verifyConstExpr<uint((Qt::LeftButton | Qt::RightButton) & Qt::MiddleButton)>(0)); + QVERIFY(verifyConstExpr<uint((Qt::LeftButton | Qt::RightButton) | Qt::MiddleButton)>(Qt::LeftButton | Qt::RightButton | Qt::MiddleButton)); + QVERIFY(verifyConstExpr<uint(~(Qt::LeftButton | Qt::RightButton))>(~(Qt::LeftButton | Qt::RightButton))); + QVERIFY(verifyConstExpr<uint(Qt::MouseButtons(Qt::LeftButton) ^ Qt::RightButton)>(Qt::LeftButton ^ Qt::RightButton)); + QVERIFY(verifyConstExpr<uint(Qt::MouseButtons(0))>(0)); + QVERIFY(verifyConstExpr<uint(Qt::MouseButtons(Qt::RightButton) & 0xff)>(Qt::RightButton)); + QVERIFY(verifyConstExpr<uint(Qt::MouseButtons(Qt::RightButton) | 0xff)>(0xff)); QVERIFY(!verifyConstExpr<Qt::RightButton>(!Qt::MouseButtons(Qt::LeftButton))); #if defined(__cpp_constexpr) && __cpp_constexpr-0 >= 201304 - QVERIFY(verifyConstExpr<testRelaxedConstExpr()>(Qt::MiddleButton)); + QVERIFY(verifyConstExpr<uint(testRelaxedConstExpr())>(Qt::MiddleButton)); #endif #endif } diff --git a/tests/auto/corelib/kernel/qsocketnotifier/tst_qsocketnotifier.cpp b/tests/auto/corelib/kernel/qsocketnotifier/tst_qsocketnotifier.cpp index 1598382959..a52b80170f 100644 --- a/tests/auto/corelib/kernel/qsocketnotifier/tst_qsocketnotifier.cpp +++ b/tests/auto/corelib/kernel/qsocketnotifier/tst_qsocketnotifier.cpp @@ -360,11 +360,16 @@ void tst_QSocketNotifier::asyncMultipleDatagram() QSignalSpy spy(m_asyncReceiver, &QIODevice::readyRead); connect(m_asyncReceiver, &QIODevice::readyRead, this, &tst_QSocketNotifier::async_readDatagramSlot); + + // activate socket notifiers + QTestEventLoop::instance().enterLoopMSecs(100); + m_asyncSender->writeDatagram("1", makeNonAny(m_asyncReceiver->localAddress()), port); m_asyncSender->writeDatagram("2", makeNonAny(m_asyncReceiver->localAddress()), port); // wait a little to ensure that the datagrams we've just sent // will be delivered on receiver side. QTest::qSleep(100); + QVERIFY(m_asyncReceiver->hasPendingDatagrams()); QTimer::singleShot(500, this, &tst_QSocketNotifier::async_writeDatagramSlot); diff --git a/tests/auto/gui/image/qicon/tst_qicon.cpp b/tests/auto/gui/image/qicon/tst_qicon.cpp index d628fad705..e031ffec71 100644 --- a/tests/auto/gui/image/qicon/tst_qicon.cpp +++ b/tests/auto/gui/image/qicon/tst_qicon.cpp @@ -594,6 +594,7 @@ void tst_QIcon::fromTheme() QIcon noIcon = QIcon::fromTheme("broken-icon"); QVERIFY(noIcon.isNull()); QVERIFY(!QIcon::hasThemeIcon("broken-icon")); + QCOMPARE(noIcon.actualSize(QSize(32, 32), QIcon::Normal, QIcon::On), QSize(0, 0)); // Test non existing icon with fallback noIcon = QIcon::fromTheme("broken-icon", abIcon); diff --git a/tests/auto/gui/painting/qpathclipper/tst_qpathclipper.cpp b/tests/auto/gui/painting/qpathclipper/tst_qpathclipper.cpp index e3f8f0fbac..14ba9c5c84 100644 --- a/tests/auto/gui/painting/qpathclipper/tst_qpathclipper.cpp +++ b/tests/auto/gui/painting/qpathclipper/tst_qpathclipper.cpp @@ -84,6 +84,7 @@ private slots: void task251909(); void qtbug3778(); + void qtbug60024(); }; Q_DECLARE_METATYPE(QPainterPath) @@ -1293,6 +1294,260 @@ void tst_QPathClipper::qtbug3778() QVERIFY(p12.contains(QPointF(100, 100))); } +void tst_QPathClipper::qtbug60024() +{ + QPolygonF poly1, poly2; + poly1 << QPointF(508.331,1010.23) ; + poly1 << QPointF(492.798,1023.11) ; + poly1 << QPointF(491.431,1024.23) ; + poly1 << QPointF(491.928,1022.94) ; + poly1 << QPointF(492.054,1022.15) ; + poly1 << QPointF(492.136,1020.91) ; + poly1 << QPointF(491.638,1019.2) ; + poly1 << QPointF(490.436,1017.12) ; + poly1 << QPointF(489.856,1016.46) ; + poly1 << QPointF(489.276,1016.08) ; + poly1 << QPointF(488.16,1015.54) ; + poly1 << QPointF(487.33,1014.91) ; + poly1 << QPointF(486.914,1014.16) ; + poly1 << QPointF(486.875,1013.54) ; + poly1 << QPointF(487.204,1012.38) ; + poly1 << QPointF(487.412,1011.34) ; + poly1 << QPointF(487.373,1009.92) ; + poly1 << QPointF(487.702,1007.34) ; + poly1 << QPointF(487.909,1006.3) ; + poly1 << QPointF(488.242,1005.55) ; + poly1 << QPointF(488.74,1004.14) ; + poly1 << QPointF(489.445,1003.14) ; + poly1 << QPointF(490.107,1001.56) ; + poly1 << QPointF(490.064,1000.98) ; + poly1 << QPointF(489.566,999.936) ; + poly1 << QPointF(488.489,998.194) ; + poly1 << QPointF(488.117,997.274) ; + poly1 << QPointF(487.909,995.946) ; + poly1 << QPointF(487.909,995.027) ; + poly1 << QPointF(488.117,993.16) ; + poly1 << QPointF(488.658,989.749) ; + poly1 << QPointF(488.861,987.002) ; + poly1 << QPointF(489.359,976.434) ; + poly1 << QPointF(489.484,974.476) ; + poly1 << QPointF(489.484,972.859) ; + poly1 << QPointF(489.359,971.775) ; + poly1 << QPointF(489.151,970.986) ; + poly1 << QPointF(488.948,969.323) ; + poly1 << QPointF(488.74,966.036) ; + poly1 << QPointF(488.74,964.118) ; + poly1 << QPointF(489.03,961.292) ; + poly1 << QPointF(489.237,960.667) ; + poly1 << QPointF(489.648,960.043) ; + poly1 << QPointF(490.452,959.229) ; + poly1 << QPointF(491.528,958.225) ; + poly1 << QPointF(491.731,957.515) ; + poly1 << QPointF(491.32,956.812) ; + poly1 << QPointF(490.45,955.852) ; + poly1 << QPointF(489.412,954.354) ; + poly1 << QPointF(488.68,952.934) ; + poly1 << QPointF(488.625,951.201) ; + poly1 << QPointF(488.954,950.072) ; + poly1 << QPointF(489.237,949.225) ; + poly1 << QPointF(489.256,948.668) ; + poly1 << QPointF(489.402,948.186) ; + poly1 << QPointF(489.566,947.437) ; + poly1 << QPointF(490.025,945.899) ; + poly1 << QPointF(490.687,944.026) ; + poly1 << QPointF(491.059,942.073) ; + poly1 << QPointF(491.31,941.159) ; + poly1 << QPointF(491.846,937.248) ; + poly1 << QPointF(492.054,936.374) ; + poly1 << QPointF(492.594,935.29) ; + poly1 << QPointF(492.594,935.086) ; + poly1 << QPointF(492.261,934.416) ; + poly1 << QPointF(492.054,933.377) ; + poly1 << QPointF(492.054,932.628) ; + poly1 << QPointF(492.798,929.217) ; + poly1 << QPointF(493.174,928.217) ; + poly1 << QPointF(493.005,927.514) ; + poly1 << QPointF(492.923,926.719) ; + poly1 << QPointF(493.295,921.44) ; + poly1 << QPointF(493.421,919.771) ; + poly1 << QPointF(493.628,914.492) ; + poly1 << QPointF(493.71,913.158) ; + poly1 << QPointF(493.961,910.831) ; + poly1 << QPointF(494.623,909.247) ; + poly1 << QPointF(495.41,906.085) ; + poly1 << QPointF(495.203,905.421) ; + poly1 << QPointF(494.788,904.632) ; + poly1 << QPointF(494.705,904.297) ; + poly1 << QPointF(494.788,903.797) ; + poly1 << QPointF(495.121,902.844) ; + poly1 << QPointF(495.493,902.055) ; + poly1 << QPointF(496.033,900.556) ; + poly1 << QPointF(496.28,900.096) ; + poly1 << QPointF(496.488,899.222) ; + poly1 << QPointF(496.28,898.723) ; + poly1 << QPointF(495.41,898.098) ; + poly1 << QPointF(494.326,898.084) ; + poly1 << QPointF(493.993,897.42) ; + poly1 << QPointF(493.829,896.67) ; + poly1 << QPointF(493.621,894.962) ; + poly1 << QPointF(493.565,893.93) ; + poly1 << QPointF(494.416,893.358) ; + poly1 << QPointF(501.666,887.435) ; + poly1 << QPointF(513.305,877.908) ; + poly1 << QPointF(523.795,869.356) ; + poly1 << QPointF(603.378,804.221) ; + poly1 << QPointF(618.764,791.762) ; + poly1 << QPointF(618.981,791.584) ; + poly1 << QPointF(634.696,778.743) ; + poly1 << QPointF(673.531,747.007) ; + poly1 << QPointF(726.115,704.031) ; + poly1 << QPointF(759.04,677.12) ; + poly1 << QPointF(759.672,676.62) ; + poly1 << QPointF(778.846,660.773) ; + poly1 << QPointF(789.919,651.709) ; + poly1 << QPointF(810.528,634.696) ; + poly1 << QPointF(810.804,634.468) ; + poly1 << QPointF(818.197,628.365) ; + poly1 << QPointF(826.44,621.505) ; + poly1 << QPointF(832.634,616.351) ; + poly1 << QPointF(835.337,614.05) ; + poly1 << QPointF(835.492,613.931) ; + poly1 << QPointF(852.079,600.176) ; + poly1 << QPointF(860.469,593.219) ; + poly1 << QPointF(869.883,585.411) ; + poly1 << QPointF(896.749,563.131) ; + poly1 << QPointF(922.094,542.111) ; + poly1 << QPointF(936.469,530.189) ; + poly1 << QPointF(990.034,485.759) ; + poly1 << QPointF(1001.65,476.123) ; + poly1 << QPointF(1010.87,468.472) ; + poly1 << QPointF(1028.6,453.769) ; + poly1 << QPointF(1095.89,397.341) ; + poly1 << QPointF(1130.52,368.297) ; + poly1 << QPointF(1135.05,364.497) ; + poly1 << QPointF(1123.55,337.582) ; + poly1 << QPointF(1103.42,290.476) ; + poly1 << QPointF(1095.21,271.259) ; + poly1 << QPointF(1068.04,207.66) ; + poly1 << QPointF(1051.62,169.118) ; + poly1 << QPointF(1038.65,138.708) ; + poly1 << QPointF(1027.81,113.269) ; + poly1 << QPointF(1020.97,97.2145) ; + poly1 << QPointF(1010.84,73.4644) ; + poly1 << QPointF(988.424,20.9198) ; + poly1 << QPointF(968.442,-25.9307) ; + poly1 << QPointF(964.63,-34.8693) ; + poly1 << QPointF(961.883,-41.3111) ; + poly1 << QPointF(953.157,-61.929) ; + poly1 << QPointF(949.712,-70.0717) ; + poly1 << QPointF(946.048,-78.7331) ; + poly1 << QPointF(945.789,-79.3443) ; + poly1 << QPointF(945.548,-79.9146) ; + poly1 << QPointF(941.671,-89.0782) ; + poly1 << QPointF(940.408,-92.0616) ; + poly1 << QPointF(940.095,-92.8021) ; + poly1 << QPointF(938.65,-97.1094) ; + poly1 << QPointF(934.565,-106.581) ; + poly1 << QPointF(928.429,-121.542) ; + poly1 << QPointF(928.24,-122.003) ; + poly1 << QPointF(920.902,-139.241) ; + poly1 << QPointF(910.85,-162.115) ; + poly1 << QPointF(910.744,-162.357) ; + poly1 << QPointF(900.875,-186.271) ; + poly1 << QPointF(889.416,-213.089) ; + poly1 << QPointF(883.705,-226.225) ; + poly1 << QPointF(882.788,-228.422) ; + poly1 << QPointF(881.399,-231.753) ; + poly1 << QPointF(880.373,-234.213) ; + poly1 << QPointF(875.788,-245.204) ; + poly1 << QPointF(872.772,-252.085) ; + poly1 << QPointF(869.686,-259.126) ; + poly1 << QPointF(865.607,-268.43) ; + poly1 << QPointF(868.74,-269.605) ; + poly1 << QPointF(869.315,-269.834) ; + poly1 << QPointF(879.443,-273.853) ; + poly1 << QPointF(880.259,-274.217) ; + poly1 << QPointF(888.958,-278.09) ; + poly1 << QPointF(894.204,-280.426) ; + poly1 << QPointF(902.866,-284.423) ; + poly1 << QPointF(913.804,-289.072) ; + poly1 << QPointF(917.975,-290.846) ; + poly1 << QPointF(921.854,-292.375) ; + poly1 << QPointF(930.52,-295.793) ; + poly1 << QPointF(939.972,-299.79) ; + poly1 << QPointF(940.899,-300.183) ; + poly1 << QPointF(943.262,-294.709) ; + poly1 << QPointF(946.922,-286.233) ; + poly1 << QPointF(952.358,-273.643) ; + poly1 << QPointF(959.976,-256) ; + poly1 << QPointF(975.219,-220.296) ; + poly1 << QPointF(988.991,-188.494) ; + poly1 << QPointF(990.089,-185.959) ; + poly1 << QPointF(1001.86,-158.88) ; + poly1 << QPointF(1003.8,-154.245) ; + poly1 << QPointF(1011.55,-135.749) ; + poly1 << QPointF(1012.2,-134.199) ; + poly1 << QPointF(1012.77,-132.837) ; + poly1 << QPointF(1015.9,-125.529) ; + poly1 << QPointF(1015.99,-125.305) ; + poly1 << QPointF(1016.42,-124.299) ; + poly1 << QPointF(1018.02,-120.569) ; + poly1 << QPointF(1018.47,-119.395) ; + poly1 << QPointF(1028.09,-97.0593) ; + poly1 << QPointF(1028.89,-95.1902) ; + poly1 << QPointF(1032.85,-85.957) ; + poly1 << QPointF(1044.48,-58.8103) ; + poly1 << QPointF(1047.23,-52.3933) ; + poly1 << QPointF(1076.35,15.5527) ; + poly1 << QPointF(1089.43,46.0648) ; + poly1 << QPointF(1105.35,83.1913) ; + poly1 << QPointF(1120.01,117.391) ; + poly1 << QPointF(1131.66,144.66) ; + poly1 << QPointF(1142.1,169.072) ; + poly1 << QPointF(1183.42,265.698) ; + poly1 << QPointF(1200.9,306.583) ; + poly1 << QPointF(1208.48,324.306) ; + poly1 << QPointF(1231.19,377.389) ; + poly1 << QPointF(1241.55,400.064) ; + poly1 << QPointF(1139.56,485.759) ; + poly1 << QPointF(1104.96,514.822) ; + poly1 << QPointF(1044.32,565.761) ; + poly1 << QPointF(1020.92,585.411) ; + poly1 << QPointF(1013.72,591.462) ; + poly1 << QPointF(1012.73,592.285) ; + poly1 << QPointF(926.449,663.776) ; + poly1 << QPointF(843.981,732.099) ; + poly1 << QPointF(826.923,746.23) ; + poly1 << QPointF(810.856,759.539) ; + poly1 << QPointF(736.788,820.887) ; + poly1 << QPointF(709.695,843.348) ; + poly1 << QPointF(693.265,856.967) ; + poly1 << QPointF(690.228,859.484) ; + poly1 << QPointF(673.813,873.091) ; + poly1 << QPointF(672.34,874.317) ; + poly1 << QPointF(618.453,919.164) ; + poly1 << QPointF(607.821,928.011) ; + poly1 << QPointF(596.057,937.538) ; + poly1 << QPointF(580.774,950.204) ; + poly1 << QPointF(573.229,956.457) ; + poly1 << QPointF(533.091,989.719) ; + poly1 << QPointF(513.657,1005.86) ; + poly1 << QPointF(508.331,1010.23) ; + + poly2 << QPointF(941.306,435.236) ; + poly2 << QPointF(983.306,435.236) ; + poly2 << QPointF(983.306,473.236) ; + poly2 << QPointF(941.306,473.236) ; + poly2 << QPointF(941.306,435.236) ; + + QPainterPath path1, path2; + path1.addPolygon(poly1); + path2.addPolygon(poly2); + + QVERIFY(!path1.intersects(path2)); + QVERIFY(path1.intersected(path2).isEmpty()); +} + QTEST_MAIN(tst_QPathClipper) diff --git a/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp b/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp index a74a056d91..60ee4eb471 100644 --- a/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp +++ b/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp @@ -625,6 +625,18 @@ void tst_QLocalSocket::readBufferOverflow() QCOMPARE(client.read(buffer, readBufferSize), qint64(readBufferSize)); // no more bytes available QCOMPARE(client.bytesAvailable(), 0); + +#ifdef Q_OS_WIN + // Test overflow caused by an asynchronous pipe operation. + client.setReadBufferSize(1); + serverSocket->write(buffer, 2); + + QVERIFY(client.waitForReadyRead()); + // socket disconnects, if there any error on pipe + QCOMPARE(client.state(), QLocalSocket::ConnectedState); + QCOMPARE(client.bytesAvailable(), qint64(2)); + QCOMPARE(client.read(buffer, 2), qint64(2)); +#endif } static qint64 writeCommand(const QVariant &command, QIODevice *device, int commandCounter) diff --git a/tests/auto/network/ssl/qsslsocket/BLACKLIST b/tests/auto/network/ssl/qsslsocket/BLACKLIST index cfab0b7eb0..52c023b78f 100644 --- a/tests/auto/network/ssl/qsslsocket/BLACKLIST +++ b/tests/auto/network/ssl/qsslsocket/BLACKLIST @@ -5,5 +5,3 @@ windows rhel-7.2 [protocolServerSide:tls1.0-any] rhel-7.2 -[protocolServerSide] -osx-10.11 diff --git a/tests/auto/widgets/dialogs/qfiledialog2/tst_qfiledialog2.cpp b/tests/auto/widgets/dialogs/qfiledialog2/tst_qfiledialog2.cpp index 1ff7a0c97b..d48ee03a22 100644 --- a/tests/auto/widgets/dialogs/qfiledialog2/tst_qfiledialog2.cpp +++ b/tests/auto/widgets/dialogs/qfiledialog2/tst_qfiledialog2.cpp @@ -676,7 +676,7 @@ void tst_QFileDialog2::completionOnLevelAfterRoot() } if (!invalid) { foreach (const QString &check, entryList) { - if (check.startsWith(entry.left(5)) && check != entry) { + if (check.startsWith(entry.left(5), Qt::CaseInsensitive) && check != entry) { invalid = true; break; } diff --git a/tests/manual/widgets/widgets.pro b/tests/manual/widgets/widgets.pro index 3a128581cf..e3942a49e9 100644 --- a/tests/manual/widgets/widgets.pro +++ b/tests/manual/widgets/widgets.pro @@ -1,3 +1,3 @@ TEMPLATE = subdirs -SUBDIRS = itemviews qgraphicsview kernel +SUBDIRS = itemviews qgraphicsview kernel widgets greaterThan(QT_MAJOR_VERSION, 4): SUBDIRS += styles diff --git a/mkspecs/irix-g++-64/qplatformdefs.h b/tests/manual/widgets/widgets/multiscreen-menus/main.cpp index e5c3cda265..f63d644320 100644 --- a/mkspecs/irix-g++-64/qplatformdefs.h +++ b/tests/manual/widgets/widgets/multiscreen-menus/main.cpp @@ -1,11 +1,11 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the qmake spec of the Qt Toolkit. +** This file is part of the test suite of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:LGPL$ +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the @@ -14,27 +14,28 @@ ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT ** included in the packaging of this file. Please review the following ** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ -#include "../irix-g++/qplatformdefs.h" +#include "mainwindow.h" +#include <QApplication> + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + a.setAttribute(Qt::AA_DontUseNativeMenuBar); + + MainWindow w; + w.show(); + + return a.exec(); +} diff --git a/tests/manual/widgets/widgets/multiscreen-menus/mainwindow.cpp b/tests/manual/widgets/widgets/multiscreen-menus/mainwindow.cpp new file mode 100644 index 0000000000..a53eda37fa --- /dev/null +++ b/tests/manual/widgets/widgets/multiscreen-menus/mainwindow.cpp @@ -0,0 +1,64 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** 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 The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "mainwindow.h" +#include "ui_mainwindow.h" +#include <QtGui/QtEvents> + +MainWindow::MainWindow(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::MainWindow) +{ + ui->setupUi(this); + setStyleSheet("QMenu { menu-scrollable: 0 }"); + + auto *mb = new QMenuBar(this); + setMenuBar(mb); + + auto *m = new QMenu(mb); + m->setTitle("&Menu"); + m->setTearOffEnabled(true); + + for (int i = 0; i < 80; ++i) + m->addAction("Menu Item #" + QString::number(i)); + + mb->addMenu(m); + + ui->menuButton->setMenu(m); +} + +MainWindow::~MainWindow() +{ + delete ui; +} + +void MainWindow::contextMenuEvent(QContextMenuEvent *e) +{ + const auto *mb = menuBar(); + mb->actions().first()->menu()->popup(mb->mapToGlobal(e->pos())); +} diff --git a/tests/manual/widgets/widgets/multiscreen-menus/mainwindow.h b/tests/manual/widgets/widgets/multiscreen-menus/mainwindow.h new file mode 100644 index 0000000000..7689062221 --- /dev/null +++ b/tests/manual/widgets/widgets/multiscreen-menus/mainwindow.h @@ -0,0 +1,52 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** 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 The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include <QMainWindow> + +namespace Ui { +class MainWindow; +} + +class MainWindow : public QMainWindow +{ + Q_OBJECT + +public: + explicit MainWindow(QWidget *parent = 0); + ~MainWindow(); + + void contextMenuEvent(QContextMenuEvent *e) override; + +private: + Ui::MainWindow *ui; +}; + +#endif // MAINWINDOW_H diff --git a/tests/manual/widgets/widgets/multiscreen-menus/mainwindow.ui b/tests/manual/widgets/widgets/multiscreen-menus/mainwindow.ui new file mode 100644 index 0000000000..dbc5c437b4 --- /dev/null +++ b/tests/manual/widgets/widgets/multiscreen-menus/mainwindow.ui @@ -0,0 +1,86 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>MainWindow</class> + <widget class="QMainWindow" name="MainWindow"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>427</width> + <height>228</height> + </rect> + </property> + <property name="windowTitle"> + <string>MainWindow</string> + </property> + <widget class="QWidget" name="centralWidget"> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QLabel" name="label_2"> + <property name="text"> + <string>Move this window to a secondary screen, ideally with a larger size than the primary screen. + +Open menu bar, button and context menus. The menu contents should be consistent with the screen it's being displayed on. + +Tear-off the menu and move around across screens. The torn-off menu should adapt to the screen size.</string> + </property> + <property name="wordWrap"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QPushButton" name="menuButton"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Menu Button</string> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label"> + <property name="font"> + <font> + <pointsize>18</pointsize> + </font> + </property> + <property name="text"> + <string>Right-click for context menu</string> + </property> + <property name="scaledContents"> + <bool>false</bool> + </property> + <property name="alignment"> + <set>Qt::AlignHCenter|Qt::AlignTop</set> + </property> + <property name="wordWrap"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + <widget class="QMenuBar" name="menuBar"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>427</width> + <height>22</height> + </rect> + </property> + </widget> + </widget> + <layoutdefault spacing="6" margin="11"/> + <resources/> + <connections/> +</ui> diff --git a/tests/manual/widgets/widgets/multiscreen-menus/multiscreen-menus.pro b/tests/manual/widgets/widgets/multiscreen-menus/multiscreen-menus.pro new file mode 100644 index 0000000000..a723b3f762 --- /dev/null +++ b/tests/manual/widgets/widgets/multiscreen-menus/multiscreen-menus.pro @@ -0,0 +1,9 @@ +TEMPLATE = app +QT += core gui widgets + +SOURCES += main.cpp\ + mainwindow.cpp + +HEADERS += mainwindow.h + +FORMS += mainwindow.ui |