summaryrefslogtreecommitdiffstats
path: root/mkspecs
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2015-03-09 10:22:45 +0100
committerFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2015-03-09 10:23:15 +0100
commit6cef72d0b4f6cd676203688a2562f0a9a620c7fb (patch)
treed45d59493e942e4489c6428e40ea979eb373eec5 /mkspecs
parentf7118e7f1b495fc0a0b8d83dff1a207dfddb09aa (diff)
parent1cd8d67d5f9bb0cd17147481544db8fb9342354d (diff)
Merge remote-tracking branch 'origin/5.5' into dev
Diffstat (limited to 'mkspecs')
-rw-r--r--mkspecs/android-g++/qmake.conf24
-rw-r--r--mkspecs/common/clang.conf2
-rw-r--r--mkspecs/common/gcc-base-mac.conf2
-rw-r--r--mkspecs/common/gcc-base.conf2
-rw-r--r--mkspecs/common/linux.conf2
-rw-r--r--mkspecs/common/shell-unix.conf15
-rw-r--r--mkspecs/common/shell-win32.conf18
-rw-r--r--mkspecs/common/unix.conf2
-rw-r--r--mkspecs/common/wince/qmake.conf2
-rw-r--r--mkspecs/common/winrt_winphone/qmake.conf2
-rw-r--r--mkspecs/cygwin-g++/qmake.conf1
-rw-r--r--mkspecs/devices/linux-arm-hisilicon-hix5hd2-g++/qeglfshooks_hix5hd2.cpp110
-rw-r--r--mkspecs/devices/linux-arm-hisilicon-hix5hd2-g++/qmake.conf4
-rw-r--r--mkspecs/devices/linux-imx6-g++/qeglfshooks_imx6.cpp101
-rw-r--r--mkspecs/devices/linux-imx6-g++/qmake.conf5
-rw-r--r--mkspecs/devices/linux-rasp-pi-g++/qeglfshooks_pi.cpp154
-rw-r--r--mkspecs/devices/linux-rasp-pi-g++/qmake.conf4
-rw-r--r--mkspecs/devices/linux-rasp-pi2-g++/qmake.conf26
-rw-r--r--mkspecs/devices/linux-rasp-pi2-g++/qplatformdefs.h34
-rw-r--r--mkspecs/features/mac/sdk.prf8
-rw-r--r--mkspecs/features/simd.prf1
-rw-r--r--mkspecs/features/spec_post.prf62
-rw-r--r--mkspecs/features/testcase.prf6
-rw-r--r--mkspecs/hurd-g++/qmake.conf2
-rw-r--r--mkspecs/macx-ios-clang/features/default_post.prf27
-rw-r--r--mkspecs/macx-ios-clang/features/qt.prf3
-rw-r--r--mkspecs/macx-ios-clang/features/sdk.prf29
-rw-r--r--mkspecs/macx-xcode/WorkspaceSettings.xcsettings8
-rw-r--r--mkspecs/macx-xcode/default.xcscheme96
-rw-r--r--mkspecs/macx-xcode/qmake.conf2
-rw-r--r--mkspecs/unsupported/linux-host-g++/qmake.conf2
-rw-r--r--mkspecs/unsupported/vxworks-ppc-dcc/qmake.conf2
-rw-r--r--mkspecs/unsupported/vxworks-simpentium-dcc/qmake.conf2
-rw-r--r--mkspecs/win32-g++/qmake.conf13
-rw-r--r--mkspecs/win32-icc/qmake.conf2
-rw-r--r--mkspecs/win32-msvc2005/qmake.conf1
-rw-r--r--mkspecs/win32-msvc2008/qmake.conf1
-rw-r--r--mkspecs/win32-msvc2010/qmake.conf1
-rw-r--r--mkspecs/win32-msvc2012/qmake.conf1
-rw-r--r--mkspecs/win32-msvc2013/qmake.conf1
-rw-r--r--mkspecs/win32-msvc2015/qmake.conf1
41 files changed, 297 insertions, 484 deletions
diff --git a/mkspecs/android-g++/qmake.conf b/mkspecs/android-g++/qmake.conf
index e334686b49..2fb2f4cc20 100644
--- a/mkspecs/android-g++/qmake.conf
+++ b/mkspecs/android-g++/qmake.conf
@@ -10,30 +10,6 @@ include(../common/gcc-base-unix.conf)
load(device_config)
-# Passing in -win32 to qmake (from NQTC) causes this condition to pass, however
-# qmake complains that -win32 is deprecated; should find another way, Q_OS_WIN
-# should really be all QMAKE_HOST.os needs to depend on?
-contains(QMAKE_HOST.os,Windows) {
- # Not having sh.exe in your path causes this condition to pass
- # To build Android Qt on Windows, this block must not be evaluated.
- isEmpty(QMAKE_SH) {
- # Override values from previously loaded shell-unix.conf
- # (via unix.conf, via linux.conf).
- include(../common/shell-win32.conf)
- QMAKE_DEL_TREE = rmdir /s /q
- QMAKE_INSTALL_FILE = copy /y
- QMAKE_INSTALL_PROGRAM = copy /y
- } else {
- MINGW_IN_SHELL = 1
- QMAKE_DIR_SEP = /
- QMAKE_DIRLIST_SEP = :
- # Because install's ability to set permissions is not relevant on Windows,
- # and git's msys does not provide it to start with.
- QMAKE_INSTALL_FILE = cp -f
- QMAKE_INSTALL_PROGRAM = cp -f
- }
-}
-
NDK_ROOT = $$(ANDROID_NDK_ROOT)
!exists($$NDK_ROOT) {
NDK_ROOT = $$DEFAULT_ANDROID_NDK_ROOT
diff --git a/mkspecs/common/clang.conf b/mkspecs/common/clang.conf
index e188f10200..a0a2b3f3d1 100644
--- a/mkspecs/common/clang.conf
+++ b/mkspecs/common/clang.conf
@@ -20,10 +20,12 @@ QMAKE_CFLAGS_ISYSTEM = -isystem
QMAKE_CFLAGS_PRECOMPILE = -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
QMAKE_CFLAGS_USE_PRECOMPILE = -Xclang -include-pch -Xclang ${QMAKE_PCH_OUTPUT}
QMAKE_CFLAGS_LTCG = -flto
+QMAKE_CFLAGS_DISABLE_LTCG = -fno-lto
QMAKE_CXXFLAGS_PRECOMPILE = -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
+QMAKE_CXXFLAGS_DISABLE_LTCG = $$QMAKE_CFLAGS_DISABLE_LTCG
QMAKE_CXXFLAGS_CXX11 = -std=c++11
QMAKE_LFLAGS_CXX11 =
diff --git a/mkspecs/common/gcc-base-mac.conf b/mkspecs/common/gcc-base-mac.conf
index 43fa49c209..747f09ae81 100644
--- a/mkspecs/common/gcc-base-mac.conf
+++ b/mkspecs/common/gcc-base-mac.conf
@@ -10,7 +10,7 @@
include(gcc-base.conf)
-QMAKE_COMPILER_DEFINES += __APPLE__ __GNUC__=4
+QMAKE_COMPILER_DEFINES += __APPLE__ __GNUC__=4 __APPLE_CC__
QMAKE_OBJECTIVE_CFLAGS = $$QMAKE_CFLAGS
QMAKE_OBJECTIVE_CFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
diff --git a/mkspecs/common/gcc-base.conf b/mkspecs/common/gcc-base.conf
index d21ee38fb7..ff89accace 100644
--- a/mkspecs/common/gcc-base.conf
+++ b/mkspecs/common/gcc-base.conf
@@ -50,6 +50,7 @@ QMAKE_CFLAGS_EXCEPTIONS_OFF += -fno-exceptions
QMAKE_CFLAGS_SPLIT_SECTIONS += -ffunction-sections
QMAKE_CFLAGS_LTCG = -flto -fno-fat-lto-objects
QMAKE_CFLAGS_LTCG_FATOBJECTS = -ffat-lto-objects
+QMAKE_CFLAGS_DISABLE_LTCG = -fno-lto
QMAKE_CXXFLAGS += $$QMAKE_CFLAGS
QMAKE_CXXFLAGS_DEPS += $$QMAKE_CFLAGS_DEPS
@@ -66,6 +67,7 @@ QMAKE_CXXFLAGS_EXCEPTIONS_OFF += $$QMAKE_CFLAGS_EXCEPTIONS_OFF
QMAKE_CXXFLAGS_SPLIT_SECTIONS += $$QMAKE_CFLAGS_SPLIT_SECTIONS
QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
QMAKE_CXXFLAGS_LTCG_FATOBJECTS = $$QMAKE_CFLAGS_LTCG_FATOBJECTS
+QMAKE_CXXFLAGS_DISABLE_LTCG = $$QMAKE_CFLAGS_DISABLE_LTCG
QMAKE_LFLAGS +=
QMAKE_LFLAGS_DEBUG +=
diff --git a/mkspecs/common/linux.conf b/mkspecs/common/linux.conf
index e10ab71cd6..8d6fb6fe17 100644
--- a/mkspecs/common/linux.conf
+++ b/mkspecs/common/linux.conf
@@ -51,7 +51,5 @@ QMAKE_RANLIB =
QMAKE_STRIP = strip
QMAKE_STRIPFLAGS_LIB += --strip-unneeded
-QMAKE_INSTALL_FILE = install -m 644 -p
-QMAKE_INSTALL_PROGRAM = install -m 755 -p
include(unix.conf)
diff --git a/mkspecs/common/shell-unix.conf b/mkspecs/common/shell-unix.conf
index a533e77cb5..2ab932f7b8 100644
--- a/mkspecs/common/shell-unix.conf
+++ b/mkspecs/common/shell-unix.conf
@@ -1,14 +1 @@
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_COPY_FILE = $$QMAKE_COPY
-QMAKE_COPY_DIR = $$QMAKE_COPY -R
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_EXISTS = test -e %1 ||
-QMAKE_CHK_DIR_EXISTS = test -d # legacy
-QMAKE_MKDIR = mkdir -p # legacy
-QMAKE_MKDIR_CMD = test -d %1 || mkdir -p %1
-QMAKE_STREAM_EDITOR = sed
+warning("shell-unix.conf is deprecated and has no effect.")
diff --git a/mkspecs/common/shell-win32.conf b/mkspecs/common/shell-win32.conf
index 1da8057c43..c6f3514697 100644
--- a/mkspecs/common/shell-win32.conf
+++ b/mkspecs/common/shell-win32.conf
@@ -1,17 +1 @@
-QMAKE_ZIP = zip -r -9
-
-QMAKE_COPY = copy /y
-QMAKE_COPY_DIR = xcopy /s /q /y /i
-QMAKE_MOVE = move
-QMAKE_DEL_FILE = del
-QMAKE_DEL_DIR = rmdir
-QMAKE_CHK_EXISTS = if not exist %1
-QMAKE_CHK_DIR_EXISTS = if not exist # legacy
-QMAKE_MKDIR = mkdir # legacy
-QMAKE_MKDIR_CMD = if not exist %1 mkdir %1 & if not exist %1 exit 1
-# Ugly hack to support cross-building for unix (android).
-QMAKE_SYMBOLIC_LINK = $$QMAKE_COPY
-QMAKE_LN_SHLIB = $$QMAKE_SYMBOLIC_LINK
-# xcopy copies the contained files if source is a directory. Deal with it.
-CONFIG += copy_dir_files
-QMAKE_STREAM_EDITOR = $(QMAKE) -install sed
+warning("shell-win32.conf is deprecated and has no effect.")
diff --git a/mkspecs/common/unix.conf b/mkspecs/common/unix.conf
index c0deafd141..2146b62f17 100644
--- a/mkspecs/common/unix.conf
+++ b/mkspecs/common/unix.conf
@@ -14,5 +14,3 @@ QMAKE_YACC_SOURCE = $base.tab.c
QMAKE_PREFIX_SHLIB = lib
QMAKE_PREFIX_STATICLIB = lib
QMAKE_EXTENSION_STATICLIB = a
-
-include(shell-unix.conf)
diff --git a/mkspecs/common/wince/qmake.conf b/mkspecs/common/wince/qmake.conf
index 6e2e24dbd0..434e063de8 100644
--- a/mkspecs/common/wince/qmake.conf
+++ b/mkspecs/common/wince/qmake.conf
@@ -73,8 +73,6 @@ QMAKE_IDL = midl
QMAKE_LIB = lib
QMAKE_RC = rc
-include(../shell-win32.conf)
-
VCPROJ_EXTENSION = .vcproj
VCSOLUTION_EXTENSION = .sln
VCPROJ_KEYWORD = Qt4VSv1.0
diff --git a/mkspecs/common/winrt_winphone/qmake.conf b/mkspecs/common/winrt_winphone/qmake.conf
index 70bd0a3945..d71915408d 100644
--- a/mkspecs/common/winrt_winphone/qmake.conf
+++ b/mkspecs/common/winrt_winphone/qmake.conf
@@ -85,8 +85,6 @@ QMAKE_IDL = midl
QMAKE_LIB = lib /NOLOGO
QMAKE_RC = rc
-include(../shell-win32.conf)
-
VCPROJ_EXTENSION = .vcxproj
VCSOLUTION_EXTENSION = .sln
VCPROJ_KEYWORD = Qt4VSv1.0
diff --git a/mkspecs/cygwin-g++/qmake.conf b/mkspecs/cygwin-g++/qmake.conf
index 06135beb30..caed4133b1 100644
--- a/mkspecs/cygwin-g++/qmake.conf
+++ b/mkspecs/cygwin-g++/qmake.conf
@@ -73,5 +73,4 @@ QMAKE_OBJCOPY = objcopy
QMAKE_NM = nm -P
QMAKE_RANLIB =
-include(../common/shell-unix.conf)
load(qt_config)
diff --git a/mkspecs/devices/linux-arm-hisilicon-hix5hd2-g++/qeglfshooks_hix5hd2.cpp b/mkspecs/devices/linux-arm-hisilicon-hix5hd2-g++/qeglfshooks_hix5hd2.cpp
deleted file mode 100644
index 9100a97646..0000000000
--- a/mkspecs/devices/linux-arm-hisilicon-hix5hd2-g++/qeglfshooks_hix5hd2.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2015 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL21$
-** 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 http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://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 2.1 or version 3 as published by the Free
-** Software Foundation and appearing in the file LICENSE.LGPLv21 and
-** LICENSE.LGPLv3 included in the packaging of this file. Please review the
-** following information to ensure the GNU Lesser General Public License
-** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** As a special exception, The Qt Company gives you certain additional
-** rights. These rights are described in The Qt Company LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qeglfshooks.h"
-#include <EGL/fbdev_window.h>
-
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/ioctl.h>
-#include <linux/fb.h>
-
-#include <private/qcore_unix_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QEglFSHiX5Hd2Hooks : public QEglFSHooks
-{
-private:
- void fbInit();
-public:
- void platformInit() Q_DECL_OVERRIDE;
- EGLNativeWindowType createNativeWindow(QPlatformWindow *window, const QSize &size, const QSurfaceFormat &format) Q_DECL_OVERRIDE;
- void destroyNativeWindow(EGLNativeWindowType window) Q_DECL_OVERRIDE;
-};
-
-void QEglFSHiX5Hd2Hooks::fbInit()
-{
- int fd = qt_safe_open("/dev/fb0", O_RDWR, 0);
- if (fd == -1)
- qWarning("Failed to open fb to detect screen resolution!");
-
- struct fb_var_screeninfo vinfo;
- memset(&vinfo, 0, sizeof(vinfo));
- if (ioctl(fd, FBIOGET_VSCREENINFO, &vinfo) == -1)
- qWarning("Could not get variable screen info");
-
- vinfo.bits_per_pixel = 32;
- vinfo.red.length = 8;
- vinfo.green.length = 8;
- vinfo.blue.length = 8;
- vinfo.transp.length = 8;
- vinfo.blue.offset = 0;
- vinfo.green.offset = 8;
- vinfo.red.offset = 16;
- vinfo.transp.offset = 24;
- vinfo.yres_virtual = 2 * vinfo.yres;
-
- if (ioctl(fd, FBIOPUT_VSCREENINFO, &vinfo) == -1)
- qErrnoWarning(errno, "Unable to set double buffer mode!");
-
- qt_safe_close(fd);
- return;
-}
-
-void QEglFSHiX5Hd2Hooks::platformInit()
-{
- QEglFSHooks::platformInit();
- fbInit();
-}
-
-EGLNativeWindowType QEglFSHiX5Hd2Hooks::createNativeWindow(QPlatformWindow *window, const QSize &size, const QSurfaceFormat &format)
-{
- fbdev_window *fbwin = reinterpret_cast<fbdev_window *>(malloc(sizeof(fbdev_window)));
- if (NULL == fbwin)
- return 0;
-
- fbwin->width = size.width();
- fbwin->height = size.height();
- return (EGLNativeWindowType)fbwin;
-}
-
-void QEglFSHiX5Hd2Hooks::destroyNativeWindow(EGLNativeWindowType window)
-{
- free(window);
-}
-
-QEglFSHiX5Hd2Hooks eglFSHiX5Hd2Hooks;
-QEglFSHooks *platformHooks = &eglFSHiX5Hd2Hooks;
-
-QT_END_NAMESPACE
diff --git a/mkspecs/devices/linux-arm-hisilicon-hix5hd2-g++/qmake.conf b/mkspecs/devices/linux-arm-hisilicon-hix5hd2-g++/qmake.conf
index 851d08600f..71ff90c9f8 100644
--- a/mkspecs/devices/linux-arm-hisilicon-hix5hd2-g++/qmake.conf
+++ b/mkspecs/devices/linux-arm-hisilicon-hix5hd2-g++/qmake.conf
@@ -18,7 +18,6 @@
# -prefix /home/abc/project/sysbase/qt_install
include(../common/linux_device_pre.conf)
-EGLFS_PLATFORM_HOOKS_SOURCES = $$PWD/qeglfshooks_hix5hd2.cpp
QMAKE_INCDIR += /usr/arm-linux-gnueabihf/include
QMAKE_LIBDIR += /usr/arm-linux-gnueabihf/lib
@@ -39,6 +38,9 @@ DISTRO_OPTS += hard-float
QMAKE_CFLAGS +=-march=armv7-a -mcpu=cortex-a9 -mfpu=vfpv3-d16
QMAKE_CXXFLAGS += $$QMAKE_CFLAGS
+# Preferred eglfs backend
+EGLFS_DEVICE_INTEGRATION = eglfs_mali
+
include(../common/linux_arm_device_post.conf)
load(qt_config)
diff --git a/mkspecs/devices/linux-imx6-g++/qeglfshooks_imx6.cpp b/mkspecs/devices/linux-imx6-g++/qeglfshooks_imx6.cpp
deleted file mode 100644
index b5ddafefdc..0000000000
--- a/mkspecs/devices/linux-imx6-g++/qeglfshooks_imx6.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2015 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL21$
-** 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 http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://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 2.1 or version 3 as published by the Free
-** Software Foundation and appearing in the file LICENSE.LGPLv21 and
-** LICENSE.LGPLv3 included in the packaging of this file. Please review the
-** following information to ensure the GNU Lesser General Public License
-** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** As a special exception, The Qt Company gives you certain additional
-** rights. These rights are described in The Qt Company LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qeglfshooks.h"
-#include <EGL/eglvivante.h>
-#include <QDebug>
-
-QT_BEGIN_NAMESPACE
-
-class QEglFSImx6Hooks : public QEglFSHooks
-{
-public:
- QEglFSImx6Hooks();
- virtual QSize screenSize() const;
- virtual EGLNativeWindowType createNativeWindow(QPlatformWindow *window, const QSize &size, const QSurfaceFormat &format);
- virtual void destroyNativeWindow(EGLNativeWindowType window);
- virtual EGLNativeDisplayType platformDisplay() const;
-
-private:
- QSize mScreenSize;
- EGLNativeDisplayType mNativeDisplay;
-};
-
-
-QEglFSImx6Hooks::QEglFSImx6Hooks()
-{
- int width, height;
-
- bool multiBufferNotEnabledYet = qEnvironmentVariableIsEmpty("FB_MULTI_BUFFER");
- bool multiBuffer = qEnvironmentVariableIsEmpty("QT_EGLFS_IMX6_NO_FB_MULTI_BUFFER");
- if (multiBufferNotEnabledYet && multiBuffer) {
- qWarning() << "QEglFSImx6Hooks will set environment variable FB_MULTI_BUFFER=2 to enable double buffering and vsync.\n"
- << "If this is not desired, you can override this via: export QT_EGLFS_IMX6_NO_FB_MULTI_BUFFER=1";
- qputenv("FB_MULTI_BUFFER", "2");
- }
-
- mNativeDisplay = fbGetDisplayByIndex(framebufferIndex());
- fbGetDisplayGeometry(mNativeDisplay, &width, &height);
- mScreenSize.setHeight(height);
- mScreenSize.setWidth(width);
-}
-
-QSize QEglFSImx6Hooks::screenSize() const
-{
- return mScreenSize;
-}
-
-EGLNativeDisplayType QEglFSImx6Hooks::platformDisplay() const
-{
- return mNativeDisplay;
-}
-
-EGLNativeWindowType QEglFSImx6Hooks::createNativeWindow(QPlatformWindow *window, const QSize &size, const QSurfaceFormat &format)
-{
- Q_UNUSED(window)
- Q_UNUSED(format)
-
- EGLNativeWindowType eglWindow = fbCreateWindow(mNativeDisplay, 0, 0, size.width(), size.height());
- return eglWindow;
-}
-
-
-void QEglFSImx6Hooks::destroyNativeWindow(EGLNativeWindowType window)
-{
- fbDestroyWindow(window);
-}
-
-QEglFSImx6Hooks eglFSImx6Hooks;
-QEglFSHooks *platformHooks = &eglFSImx6Hooks;
-
-QT_END_NAMESPACE
diff --git a/mkspecs/devices/linux-imx6-g++/qmake.conf b/mkspecs/devices/linux-imx6-g++/qmake.conf
index c8b6741e9a..1646c5fe77 100644
--- a/mkspecs/devices/linux-imx6-g++/qmake.conf
+++ b/mkspecs/devices/linux-imx6-g++/qmake.conf
@@ -4,8 +4,6 @@
include(../common/linux_device_pre.conf)
-EGLFS_PLATFORM_HOOKS_SOURCES = $$PWD/qeglfshooks_imx6.cpp
-
QMAKE_INCDIR += $$[QT_SYSROOT]/usr/include
QMAKE_LIBDIR += $$[QT_SYSROOT]/usr/lib
@@ -21,6 +19,9 @@ QMAKE_CXXFLAGS += $$IMX6_CFLAGS
DISTRO_OPTS += hard-float
+# Preferred eglfs backend
+EGLFS_DEVICE_INTEGRATION = eglfs_viv
+
include(../common/linux_arm_device_post.conf)
load(qt_config)
diff --git a/mkspecs/devices/linux-rasp-pi-g++/qeglfshooks_pi.cpp b/mkspecs/devices/linux-rasp-pi-g++/qeglfshooks_pi.cpp
deleted file mode 100644
index 64a9617c48..0000000000
--- a/mkspecs/devices/linux-rasp-pi-g++/qeglfshooks_pi.cpp
+++ /dev/null
@@ -1,154 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2015 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL21$
-** 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 http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://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 2.1 or version 3 as published by the Free
-** Software Foundation and appearing in the file LICENSE.LGPLv21 and
-** LICENSE.LGPLv3 included in the packaging of this file. Please review the
-** following information to ensure the GNU Lesser General Public License
-** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** As a special exception, The Qt Company gives you certain additional
-** rights. These rights are described in The Qt Company LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qeglfshooks.h"
-
-#include <QtDebug>
-
-#include <QtPlatformSupport/private/qeglconvenience_p.h>
-#include <QtPlatformSupport/private/qeglplatformcontext_p.h>
-
-#include <bcm_host.h>
-
-QT_BEGIN_NAMESPACE
-
-static DISPMANX_DISPLAY_HANDLE_T dispman_display = 0;
-
-static EGLNativeWindowType createDispmanxLayer(const QPoint &pos, const QSize &size, int z, DISPMANX_FLAGS_ALPHA_T flags)
-{
- VC_RECT_T dst_rect;
- dst_rect.x = pos.x();
- dst_rect.y = pos.y();
- dst_rect.width = size.width();
- dst_rect.height = size.height();
-
- VC_RECT_T src_rect;
- src_rect.x = 0;
- src_rect.y = 0;
- src_rect.width = size.width() << 16;
- src_rect.height = size.height() << 16;
-
- DISPMANX_UPDATE_HANDLE_T dispman_update = vc_dispmanx_update_start(0);
-
- VC_DISPMANX_ALPHA_T alpha;
- alpha.flags = flags;
- alpha.opacity = 0xFF;
- alpha.mask = 0;
-
- DISPMANX_ELEMENT_HANDLE_T dispman_element = vc_dispmanx_element_add(
- dispman_update, dispman_display, z, &dst_rect, 0, &src_rect,
- DISPMANX_PROTECTION_NONE, &alpha, (DISPMANX_CLAMP_T *)NULL, (DISPMANX_TRANSFORM_T)0);
-
- vc_dispmanx_update_submit_sync(dispman_update);
-
- EGL_DISPMANX_WINDOW_T *eglWindow = new EGL_DISPMANX_WINDOW_T;
- eglWindow->element = dispman_element;
- eglWindow->width = size.width();
- eglWindow->height = size.height();
-
- return eglWindow;
-}
-
-static void destroyDispmanxLayer(EGLNativeWindowType window)
-{
- EGL_DISPMANX_WINDOW_T *eglWindow = static_cast<EGL_DISPMANX_WINDOW_T *>(window);
- DISPMANX_UPDATE_HANDLE_T dispman_update = vc_dispmanx_update_start(0);
- vc_dispmanx_element_remove(dispman_update, eglWindow->element);
- vc_dispmanx_update_submit_sync(dispman_update);
- delete eglWindow;
-}
-
-class QEglFSPiHooks : public QEglFSHooks
-{
-public:
- virtual void platformInit();
- virtual void platformDestroy();
- virtual EGLNativeDisplayType platformDisplay() const;
- virtual QSize screenSize() const;
- virtual EGLNativeWindowType createNativeWindow(QPlatformWindow *window, const QSize &size, const QSurfaceFormat &format);
- virtual void destroyNativeWindow(EGLNativeWindowType window);
- virtual bool hasCapability(QPlatformIntegration::Capability cap) const;
-
-};
-
-void QEglFSPiHooks::platformInit()
-{
- bcm_host_init();
-}
-
-EGLNativeDisplayType QEglFSPiHooks::platformDisplay() const
-{
- dispman_display = vc_dispmanx_display_open(0/* LCD */);
- return EGL_DEFAULT_DISPLAY;
-}
-
-void QEglFSPiHooks::platformDestroy()
-{
- vc_dispmanx_display_close(dispman_display);
-}
-
-QSize QEglFSPiHooks::screenSize() const
-{
- uint32_t width, height;
- graphics_get_display_size(0 /* LCD */, &width, &height);
- return QSize(width, height);
-}
-
-EGLNativeWindowType QEglFSPiHooks::createNativeWindow(QPlatformWindow *window, const QSize &size, const QSurfaceFormat &format)
-{
- Q_UNUSED(window)
- return createDispmanxLayer(QPoint(0, 0), size, 1, format.hasAlpha() ? DISPMANX_FLAGS_ALPHA_FROM_SOURCE : DISPMANX_FLAGS_ALPHA_FIXED_ALL_PIXELS);
-}
-
-void QEglFSPiHooks::destroyNativeWindow(EGLNativeWindowType window)
-{
- destroyDispmanxLayer(window);
-}
-
-bool QEglFSPiHooks::hasCapability(QPlatformIntegration::Capability cap) const
-{
- switch (cap) {
- case QPlatformIntegration::ThreadedPixmaps:
- case QPlatformIntegration::OpenGL:
- case QPlatformIntegration::ThreadedOpenGL:
- case QPlatformIntegration::BufferQueueingOpenGL:
- return true;
- default:
- return false;
- }
-}
-
-QEglFSPiHooks eglFSPiHooks;
-QEglFSHooks *platformHooks = &eglFSPiHooks;
-
-QT_END_NAMESPACE
diff --git a/mkspecs/devices/linux-rasp-pi-g++/qmake.conf b/mkspecs/devices/linux-rasp-pi-g++/qmake.conf
index 38e4b36cdd..20f8212f8f 100644
--- a/mkspecs/devices/linux-rasp-pi-g++/qmake.conf
+++ b/mkspecs/devices/linux-rasp-pi-g++/qmake.conf
@@ -36,8 +36,8 @@ QMAKE_CFLAGS += \
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
-EGLFS_PLATFORM_HOOKS_SOURCES = $$PWD/qeglfshooks_pi.cpp
-EGLFS_PLATFORM_HOOKS_LIBS = -lbcm_host
+# Preferred eglfs backend
+EGLFS_DEVICE_INTEGRATION = eglfs_brcm
include(../common/linux_arm_device_post.conf)
diff --git a/mkspecs/devices/linux-rasp-pi2-g++/qmake.conf b/mkspecs/devices/linux-rasp-pi2-g++/qmake.conf
new file mode 100644
index 0000000000..9be3f401ce
--- /dev/null
+++ b/mkspecs/devices/linux-rasp-pi2-g++/qmake.conf
@@ -0,0 +1,26 @@
+# qmake configuration for the Raspberry Pi 2
+
+include(../common/linux_device_pre.conf)
+
+QMAKE_LFLAGS += -Wl,-rpath-link,$$[QT_SYSROOT]/opt/vc/lib
+
+QMAKE_LIBDIR_OPENGL_ES2 = $$[QT_SYSROOT]/opt/vc/lib
+QMAKE_LIBDIR_EGL = $$QMAKE_LIBDIR_OPENGL_ES2
+
+QMAKE_INCDIR_EGL = $$[QT_SYSROOT]/opt/vc/include \
+ $$[QT_SYSROOT]/opt/vc/include/interface/vcos/pthreads \
+ $$[QT_SYSROOT]/opt/vc/include/interface/vmcs_host/linux
+QMAKE_INCDIR_OPENGL_ES2 = $${QMAKE_INCDIR_EGL}
+
+QMAKE_LIBS_EGL = -lEGL -lGLESv2
+QMAKE_CFLAGS += -march=armv7-a -marm -mthumb-interwork -mfpu=neon-vfpv4 -mtune=cortex-a7 -mabi=aapcs-linux
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+
+DISTRO_OPTS += hard-float
+
+# Preferred eglfs backend
+EGLFS_DEVICE_INTEGRATION = eglfs_brcm
+
+include(../common/linux_arm_device_post.conf)
+
+load(qt_config)
diff --git a/mkspecs/devices/linux-rasp-pi2-g++/qplatformdefs.h b/mkspecs/devices/linux-rasp-pi2-g++/qplatformdefs.h
new file mode 100644
index 0000000000..5ae49b35dd
--- /dev/null
+++ b/mkspecs/devices/linux-rasp-pi2-g++/qplatformdefs.h
@@ -0,0 +1,34 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the qmake spec of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** 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 http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://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 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** As a special exception, The Qt Company gives you certain additional
+** rights. These rights are described in The Qt Company LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "../../linux-g++/qplatformdefs.h"
diff --git a/mkspecs/features/mac/sdk.prf b/mkspecs/features/mac/sdk.prf
index d2e698894f..e238f8e005 100644
--- a/mkspecs/features/mac/sdk.prf
+++ b/mkspecs/features/mac/sdk.prf
@@ -13,6 +13,14 @@ isEmpty(QMAKE_MAC_SDK.$${QMAKE_MAC_SDK}.path) {
QMAKE_MAC_SDK_PATH = $$eval(QMAKE_MAC_SDK.$${QMAKE_MAC_SDK}.path)
}
+isEmpty(QMAKE_MAC_SDK.$${QMAKE_MAC_SDK}.platform_path) {
+ QMAKE_MAC_SDK_PLATFORM_PATH = $$system("/usr/bin/xcodebuild -sdk $$QMAKE_MAC_SDK -version PlatformPath 2>/dev/null")
+ isEmpty(QMAKE_MAC_SDK_PLATFORM_PATH): error("Could not resolve SDK platform path for \'$$QMAKE_MAC_SDK\'")
+ cache(QMAKE_MAC_SDK.$${QMAKE_MAC_SDK}.platform_path, set stash, QMAKE_MAC_SDK_PLATFORM_PATH)
+} else {
+ QMAKE_MAC_SDK_PLATFORM_PATH = $$eval(QMAKE_MAC_SDK.$${QMAKE_MAC_SDK}.platform_path)
+}
+
isEmpty(QMAKE_MAC_SDK.$${QMAKE_MAC_SDK}.version) {
QMAKE_MAC_SDK_VERSION = $$system("/usr/bin/xcodebuild -sdk $$QMAKE_MAC_SDK -version SDKVersion 2>/dev/null")
isEmpty(QMAKE_MAC_SDK_VERSION): error("Could not resolve SDK version for \'$$QMAKE_MAC_SDK\'")
diff --git a/mkspecs/features/simd.prf b/mkspecs/features/simd.prf
index 7d9eaffafa..700d79a1b5 100644
--- a/mkspecs/features/simd.prf
+++ b/mkspecs/features/simd.prf
@@ -27,6 +27,7 @@ defineTest(addSimdCompiler) {
CONFIG($$1) {
cflags = $$eval(QMAKE_CFLAGS_$${upname})
+ ltcg: cflags += $$QMAKE_CFLAGS_DISABLE_LTCG
contains(QT_CPU_FEATURES, $$name) {
# Default compiler settings include this feature, so just add to SOURCES
SOURCES += $$eval($$sources_var)
diff --git a/mkspecs/features/spec_post.prf b/mkspecs/features/spec_post.prf
index b4f9ca47ae..c9578773fe 100644
--- a/mkspecs/features/spec_post.prf
+++ b/mkspecs/features/spec_post.prf
@@ -54,3 +54,65 @@ isEmpty(QMAKE_COMPILER) {
warning("qmake spec does not announce the compiler family. Guessed $${QMAKE_COMPILER}.")
}
CONFIG += $$QMAKE_COMPILER
+
+equals(MAKEFILE_GENERATOR, MSBUILD) \
+|equals(MAKEFILE_GENERATOR, MSVC.NET) \
+|isEmpty(QMAKE_SH) {
+ QMAKE_ZIP = zip -r -9
+
+ QMAKE_COPY = copy /y
+ QMAKE_COPY_FILE = $$QMAKE_COPY
+ QMAKE_COPY_DIR = xcopy /s /q /y /i
+ # xcopy copies the contained files if source is a directory. Deal with it.
+ CONFIG += copy_dir_files
+ QMAKE_MOVE = move
+ QMAKE_DEL_FILE = del
+ QMAKE_DEL_DIR = rmdir
+ QMAKE_DEL_TREE = rmdir /s /q
+ QMAKE_CHK_EXISTS = if not exist %1
+ QMAKE_CHK_DIR_EXISTS = if not exist # legacy
+ QMAKE_MKDIR = mkdir # legacy
+ QMAKE_MKDIR_CMD = if not exist %1 mkdir %1 & if not exist %1 exit 1
+ QMAKE_STREAM_EDITOR = $(QMAKE) -install sed
+ QMAKE_INSTALL_FILE = copy /y
+ QMAKE_INSTALL_PROGRAM = copy /y
+} else {
+ QMAKE_TAR = tar -cf
+ QMAKE_GZIP = gzip -9f
+
+ QMAKE_COPY = cp -f
+ QMAKE_COPY_FILE = $$QMAKE_COPY
+ QMAKE_COPY_DIR = $$QMAKE_COPY -R
+ QMAKE_MOVE = mv -f
+ QMAKE_DEL_FILE = rm -f
+ QMAKE_DEL_DIR = rmdir
+ QMAKE_DEL_TREE = rm -rf
+ QMAKE_CHK_EXISTS = test -e %1 ||
+ QMAKE_CHK_DIR_EXISTS = test -d # legacy
+ QMAKE_MKDIR = mkdir -p # legacy
+ QMAKE_MKDIR_CMD = test -d %1 || mkdir -p %1
+ QMAKE_STREAM_EDITOR = sed
+
+ equals(QMAKE_HOST.os, Windows) {
+ MINGW_IN_SHELL = 1 # legacy
+ # Override built-ins.
+ QMAKE_DIR_SEP = /
+ QMAKE_DIRLIST_SEP = :
+ # Because install's ability to set permissions is not relevant on Windows,
+ # and git's msys does not provide it to start with.
+ QMAKE_INSTALL_FILE = cp -f
+ QMAKE_INSTALL_PROGRAM = cp -f
+ } else {
+ QMAKE_INSTALL_FILE = install -m 644 -p
+ QMAKE_INSTALL_PROGRAM = install -m 755 -p
+ }
+}
+QMAKE_INSTALL_DIR = $$QMAKE_COPY_DIR
+equals(QMAKE_HOST.os, Windows) {
+ # Ugly (and broken for relative paths) hack to support cross-building for Unix.
+ QMAKE_SYMBOLIC_LINK = $$QMAKE_COPY
+ QMAKE_LN_SHLIB = $$QMAKE_SYMBOLIC_LINK
+} else {
+ QMAKE_SYMBOLIC_LINK = ln -f -s
+ QMAKE_LN_SHLIB = ln -s
+}
diff --git a/mkspecs/features/testcase.prf b/mkspecs/features/testcase.prf
index 770afa3386..c77f3b70ab 100644
--- a/mkspecs/features/testcase.prf
+++ b/mkspecs/features/testcase.prf
@@ -187,5 +187,11 @@ contains(INSTALLS, target) {
}
}
+macx-xcode:bundle:isEmpty(QMAKE_BUNDLE_EXTENSION) {
+ QMAKE_PBX_PRODUCT_TYPE = com.apple.product-type.bundle.unit-test
+ QMAKE_PBX_BUNDLE_TYPE = wrapper.cfbundle
+ QMAKE_BUNDLE_EXTENSION = .xctest
+}
+
} # have_target
diff --git a/mkspecs/hurd-g++/qmake.conf b/mkspecs/hurd-g++/qmake.conf
index d53b49ced2..e7e4e3a82d 100644
--- a/mkspecs/hurd-g++/qmake.conf
+++ b/mkspecs/hurd-g++/qmake.conf
@@ -45,8 +45,6 @@ QMAKE_RANLIB =
QMAKE_STRIP = strip
QMAKE_STRIPFLAGS_LIB += --strip-unneeded
-QMAKE_INSTALL_FILE = install -m 644 -p
-QMAKE_INSTALL_PROGRAM = install -m 755 -p
include(../common/unix.conf)
include(../common/gcc-base-unix.conf)
diff --git a/mkspecs/macx-ios-clang/features/default_post.prf b/mkspecs/macx-ios-clang/features/default_post.prf
index f1f23dd716..f9a8921a09 100644
--- a/mkspecs/macx-ios-clang/features/default_post.prf
+++ b/mkspecs/macx-ios-clang/features/default_post.prf
@@ -1,14 +1,5 @@
-# In case the user sets the SDK manually
-contains(QMAKE_MAC_SDK, ^iphonesimulator.*) {
- iphonesimulator_and_iphoneos: \
- error("iOS simulator is handled automatically for iphonesimulator_and_iphoneos")
-
- CONFIG += iphonesimulator
-}
-
-iphonesimulator_and_iphoneos:iphonesimulator: \
- QMAKE_MAC_SDK ~= s,^iphoneos,iphonesimulator,
+load(sdk)
# Resolve config so we don't need to use CONFIG() later on
CONFIG(iphonesimulator, iphonesimulator|iphoneos) {
@@ -76,8 +67,8 @@ equals(TEMPLATE, app) {
args += $$system_quote($$arg)
system("cd $$system_quote($$OUT_PWD) && $$QMAKE_QMAKE $$args $$system_quote($$_PRO_FILE_) -spec macx-xcode")
- check.commands = "$(MAKE) -f $(MAKEFILE).ReleaseSimulator xcode_build_check"
- QMAKE_EXTRA_TARGETS += check
+ # We have a target, even though our template is aux
+ CONFIG += have_target
} else {
load(resolve_config)
@@ -92,10 +83,13 @@ equals(TEMPLATE, app) {
else: \
cfg = release
- for(action, $$list(build install clean)) {
+ for(action, $$list(build install clean test)) {
equals(action, build) {
action_target_suffix =
action_target = all
+ } else: equals(action, test) {
+ action_target_suffix = -check
+ action_target = check
} else {
action_target_suffix = -$$action
action_target = $$action
@@ -103,7 +97,7 @@ equals(TEMPLATE, app) {
target = $${sdk}-$${cfg}$${action_target_suffix}
- $${target}.commands = "@bash -o pipefail -c 'xcodebuild $$action -sdk $$sdk -configuration $$title($$cfg) | grep -v setenv'"
+ $${target}.commands = "@bash -o pipefail -c 'xcodebuild $$action -scheme $(TARGET) -sdk $$sdk -configuration $$title($$cfg) | grep -v setenv'"
QMAKE_EXTRA_TARGETS += $$target
$${action_target}.depends += $$target
@@ -115,12 +109,7 @@ equals(TEMPLATE, app) {
QMAKE_EXTRA_TARGETS += xcode_build_dir_distclean
distclean.depends = xcode_build_dir_distclean
QMAKE_EXTRA_TARGETS += distclean
-
- xcode_build_check.commands = "$(TESTRUNNER) $$title($$cfg)-$${sdk}/$(TARGET).app $(TESTARGS)"
- QMAKE_EXTRA_TARGETS += xcode_build_check
}
-
- CONFIG =
}
}
} else: equals(TEMPLATE, lib) {
diff --git a/mkspecs/macx-ios-clang/features/qt.prf b/mkspecs/macx-ios-clang/features/qt.prf
index 7ca3198dbe..697eb0ed60 100644
--- a/mkspecs/macx-ios-clang/features/qt.prf
+++ b/mkspecs/macx-ios-clang/features/qt.prf
@@ -1,5 +1,6 @@
-equals(TEMPLATE, app):contains(QT, gui(-private)?) {
+qt_depends = $$resolve_depends(QT, "QT.")
+equals(TEMPLATE, app):contains(qt_depends, gui(-private)?) {
LIBS *= -L$$[QT_INSTALL_PLUGINS/get]/platforms
lib_name = qios
diff --git a/mkspecs/macx-ios-clang/features/sdk.prf b/mkspecs/macx-ios-clang/features/sdk.prf
index 607a71bb26..32fcbb7289 100644
--- a/mkspecs/macx-ios-clang/features/sdk.prf
+++ b/mkspecs/macx-ios-clang/features/sdk.prf
@@ -1,4 +1,33 @@
+# In case the user sets the SDK manually
+contains(QMAKE_MAC_SDK, ^iphonesimulator.*) {
+ iphonesimulator_and_iphoneos: \
+ error("iOS simulator is handled automatically for iphonesimulator_and_iphoneos")
+
+ CONFIG += iphonesimulator
+}
+
+iphonesimulator_and_iphoneos:iphonesimulator: \
+ QMAKE_MAC_SDK ~= s,^iphoneos,iphonesimulator,
+
load(sdk)
lessThan(QMAKE_MAC_SDK_VERSION, "8.0"): \
error("Current $$QMAKE_MAC_SDK SDK version ($$QMAKE_MAC_SDK_VERSION) is too old. Please upgrade Xcode.")
+
+macx-xcode {
+ sdk_path_iphoneos.name = "QMAKE_MAC_SDK_PATH[sdk=iphoneos*]"
+ sdk_path_iphoneos.value = $$QMAKE_MAC_SDK_PATH
+ QMAKE_MAC_SDK_PATH ~= s,iPhoneOS,iPhoneSimulator,
+ sdk_path_iphonesimulator.name = "QMAKE_MAC_SDK_PATH[sdk=iphonesimulator*]"
+ sdk_path_iphonesimulator.value = $$QMAKE_MAC_SDK_PATH
+ QMAKE_MAC_XCODE_SETTINGS += sdk_path_iphoneos sdk_path_iphonesimulator
+ QMAKE_MAC_SDK_PATH = "$(QMAKE_MAC_SDK_PATH)"
+
+ sdk_platform_path_iphoneos.name = "QMAKE_MAC_SDK_PLATFORM_PATH[sdk=iphoneos*]"
+ sdk_platform_path_iphoneos.value = $$QMAKE_MAC_SDK_PLATFORM_PATH
+ QMAKE_MAC_SDK_PLATFORM_PATH ~= s,iPhoneOS,iPhoneSimulator,
+ sdk_platform_path_iphonesimulator.name = "QMAKE_MAC_SDK_PLATFORM_PATH[sdk=iphonesimulator*]"
+ sdk_platform_path_iphonesimulator.value = $$QMAKE_MAC_SDK_PLATFORM_PATH
+ QMAKE_MAC_XCODE_SETTINGS += sdk_platform_path_iphoneos sdk_platform_path_iphonesimulator
+ QMAKE_MAC_SDK_PLATFORM_PATH = "$(QMAKE_MAC_SDK_PLATFORM_PATH)"
+}
diff --git a/mkspecs/macx-xcode/WorkspaceSettings.xcsettings b/mkspecs/macx-xcode/WorkspaceSettings.xcsettings
new file mode 100644
index 0000000000..08de0be8d3
--- /dev/null
+++ b/mkspecs/macx-xcode/WorkspaceSettings.xcsettings
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded</key>
+ <false/>
+</dict>
+</plist>
diff --git a/mkspecs/macx-xcode/default.xcscheme b/mkspecs/macx-xcode/default.xcscheme
new file mode 100644
index 0000000000..53c736cc15
--- /dev/null
+++ b/mkspecs/macx-xcode/default.xcscheme
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+ LastUpgradeVersion = "0610"
+ version = "1.3">
+ <BuildAction
+ parallelizeBuildables = "YES"
+ buildImplicitDependencies = "YES">
+ <BuildActionEntries>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "YES"
+ buildForProfiling = "YES"
+ buildForArchiving = "YES"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "@TARGET_PBX_KEY@"
+ BuildableName = "@QMAKE_ORIG_TARGET@"
+ BlueprintName = "@QMAKE_ORIG_TARGET@"
+ ReferencedContainer = "container:@QMAKE_ORIG_TARGET@.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ </BuildActionEntries>
+ </BuildAction>
+ <TestAction
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ buildConfiguration = "Debug">
+ <Testables>
+ <TestableReference
+ skipped = "NO">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "@TARGET_PBX_KEY@"
+ BuildableName = "@QMAKE_ORIG_TARGET@"
+ BlueprintName = "@QMAKE_ORIG_TARGET@"
+ ReferencedContainer = "container:@QMAKE_ORIG_TARGET@.xcodeproj">
+ </BuildableReference>
+ </TestableReference>
+ </Testables>
+ <MacroExpansion>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "@TARGET_PBX_KEY@"
+ BuildableName = "@QMAKE_ORIG_TARGET@"
+ BlueprintName = "@QMAKE_ORIG_TARGET@"
+ ReferencedContainer = "container:@QMAKE_ORIG_TARGET@.xcodeproj">
+ </BuildableReference>
+ </MacroExpansion>
+ </TestAction>
+ <LaunchAction
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ launchStyle = "0"
+ useCustomWorkingDirectory = "NO"
+ buildConfiguration = "Debug"
+ ignoresPersistentStateOnLaunch = "NO"
+ debugDocumentVersioning = "YES"
+ allowLocationSimulation = "YES">
+ <BuildableProductRunnable>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "@TARGET_PBX_KEY@"
+ BuildableName = "@QMAKE_ORIG_TARGET@"
+ BlueprintName = "@QMAKE_ORIG_TARGET@"
+ ReferencedContainer = "container:@QMAKE_ORIG_TARGET@.xcodeproj">
+ </BuildableReference>
+ </BuildableProductRunnable>
+ <AdditionalOptions>
+ </AdditionalOptions>
+ </LaunchAction>
+ <ProfileAction
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ savedToolIdentifier = ""
+ useCustomWorkingDirectory = "NO"
+ buildConfiguration = "Release"
+ debugDocumentVersioning = "YES">
+ <BuildableProductRunnable>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "@TARGET_PBX_KEY@"
+ BuildableName = "@QMAKE_ORIG_TARGET@"
+ BlueprintName = "@QMAKE_ORIG_TARGET@"
+ ReferencedContainer = "container:@QMAKE_ORIG_TARGET@.xcodeproj">
+ </BuildableReference>
+ </BuildableProductRunnable>
+ </ProfileAction>
+ <AnalyzeAction
+ buildConfiguration = "Debug">
+ </AnalyzeAction>
+ <ArchiveAction
+ buildConfiguration = "Release"
+ revealArchiveInOrganizer = "YES">
+ </ArchiveAction>
+</Scheme>
diff --git a/mkspecs/macx-xcode/qmake.conf b/mkspecs/macx-xcode/qmake.conf
index fde682b64b..6fc6160ec7 100644
--- a/mkspecs/macx-xcode/qmake.conf
+++ b/mkspecs/macx-xcode/qmake.conf
@@ -6,6 +6,8 @@
QMAKESPEC = $$dirname(PWD)/$$[QMAKE_XSPEC]
+QMAKE_XCODE_SPECDIR = $$PWD
+
include($$QMAKESPEC/qmake.conf)
MAKEFILE_GENERATOR = XCODE
diff --git a/mkspecs/unsupported/linux-host-g++/qmake.conf b/mkspecs/unsupported/linux-host-g++/qmake.conf
index 3dc490d6dd..1523126eaa 100644
--- a/mkspecs/unsupported/linux-host-g++/qmake.conf
+++ b/mkspecs/unsupported/linux-host-g++/qmake.conf
@@ -109,8 +109,6 @@ QMAKE_RANLIB =
QMAKE_STRIP = host-strip
QMAKE_STRIPFLAGS_LIB += --strip-unneeded
-QMAKE_INSTALL_FILE = install -m 644 -p
-QMAKE_INSTALL_PROGRAM = install -m 755 -p
include(../../common/unix.conf)
load(qt_config)
diff --git a/mkspecs/unsupported/vxworks-ppc-dcc/qmake.conf b/mkspecs/unsupported/vxworks-ppc-dcc/qmake.conf
index 814b844131..a4cf23df9c 100644
--- a/mkspecs/unsupported/vxworks-ppc-dcc/qmake.conf
+++ b/mkspecs/unsupported/vxworks-ppc-dcc/qmake.conf
@@ -87,8 +87,6 @@ QMAKE_RANLIB =
QMAKE_STRIP = strip
QMAKE_STRIPFLAGS_LIB += --strip-unneeded
-QMAKE_INSTALL_FILE = install -m 644 -p
-QMAKE_INSTALL_PROGRAM = install -m 755 -p
include(../../common/unix.conf)
load(qt_config)
diff --git a/mkspecs/unsupported/vxworks-simpentium-dcc/qmake.conf b/mkspecs/unsupported/vxworks-simpentium-dcc/qmake.conf
index c362d098db..49f0c21d4a 100644
--- a/mkspecs/unsupported/vxworks-simpentium-dcc/qmake.conf
+++ b/mkspecs/unsupported/vxworks-simpentium-dcc/qmake.conf
@@ -86,8 +86,6 @@ QMAKE_RANLIB =
QMAKE_STRIP = strip
QMAKE_STRIPFLAGS_LIB += --strip-unneeded
-QMAKE_INSTALL_FILE = install -m 644 -p
-QMAKE_INSTALL_PROGRAM = install -m 755 -p
include(../../common/unix.conf)
load(qt_config)
diff --git a/mkspecs/win32-g++/qmake.conf b/mkspecs/win32-g++/qmake.conf
index 9f0188be80..c6ff808a99 100644
--- a/mkspecs/win32-g++/qmake.conf
+++ b/mkspecs/win32-g++/qmake.conf
@@ -93,19 +93,6 @@ QMAKE_LIBS_OPENGL_ES2_DEBUG = -llibEGLd -llibGLESv2d -lgdi32 -luser32
QMAKE_LIBS_COMPAT = -ladvapi32 -lshell32 -lcomdlg32 -luser32 -lgdi32 -lws2_32
QMAKE_LIBS_QT_ENTRY = -lmingw32 -lqtmain
-!isEmpty(QMAKE_SH) {
- MINGW_IN_SHELL = 1
- QMAKE_DIR_SEP = /
- QMAKE_DIRLIST_SEP = :
- include(../common/shell-unix.conf)
- # Because install's ability to set permissions is not relevant on Windows,
- # and git's msys does not provide it to start with.
- QMAKE_INSTALL_FILE = cp -f
- QMAKE_INSTALL_PROGRAM = cp -f
-} else {
- include(../common/shell-win32.conf)
-}
-
QMAKE_IDL = midl
QMAKE_LIB = $${CROSS_COMPILE}ar -ru
QMAKE_RC = $${CROSS_COMPILE}windres
diff --git a/mkspecs/win32-icc/qmake.conf b/mkspecs/win32-icc/qmake.conf
index d326cdeee3..2ec0d84918 100644
--- a/mkspecs/win32-icc/qmake.conf
+++ b/mkspecs/win32-icc/qmake.conf
@@ -79,7 +79,5 @@ QMAKE_IDL = midl
QMAKE_LIB = xilib /NOLOGO
QMAKE_RC = rc
-include(../common/shell-win32.conf)
-
DSP_EXTENSION = .dsp
load(qt_config)
diff --git a/mkspecs/win32-msvc2005/qmake.conf b/mkspecs/win32-msvc2005/qmake.conf
index ca901effd3..458f37cc04 100644
--- a/mkspecs/win32-msvc2005/qmake.conf
+++ b/mkspecs/win32-msvc2005/qmake.conf
@@ -7,5 +7,4 @@
MSC_VER = 1400
MSVC_VER = 8.0
include(../common/msvc-desktop.conf)
-include(../common/shell-win32.conf)
load(qt_config)
diff --git a/mkspecs/win32-msvc2008/qmake.conf b/mkspecs/win32-msvc2008/qmake.conf
index 1a04c9952b..d1382ff2d4 100644
--- a/mkspecs/win32-msvc2008/qmake.conf
+++ b/mkspecs/win32-msvc2008/qmake.conf
@@ -7,5 +7,4 @@
MSC_VER = 1500
MSVC_VER = 9.0
include(../common/msvc-desktop.conf)
-include(../common/shell-win32.conf)
load(qt_config)
diff --git a/mkspecs/win32-msvc2010/qmake.conf b/mkspecs/win32-msvc2010/qmake.conf
index 8160001a4b..3ad9d478ee 100644
--- a/mkspecs/win32-msvc2010/qmake.conf
+++ b/mkspecs/win32-msvc2010/qmake.conf
@@ -7,5 +7,4 @@
MSC_VER = 1600
MSVC_VER = 10.0
include(../common/msvc-desktop.conf)
-include(../common/shell-win32.conf)
load(qt_config)
diff --git a/mkspecs/win32-msvc2012/qmake.conf b/mkspecs/win32-msvc2012/qmake.conf
index 57161071c8..3d9c5864af 100644
--- a/mkspecs/win32-msvc2012/qmake.conf
+++ b/mkspecs/win32-msvc2012/qmake.conf
@@ -7,5 +7,4 @@
MSC_VER = 1700
MSVC_VER = 11.0
include(../common/msvc-desktop.conf)
-include(../common/shell-win32.conf)
load(qt_config)
diff --git a/mkspecs/win32-msvc2013/qmake.conf b/mkspecs/win32-msvc2013/qmake.conf
index ece04203ea..34108b2c32 100644
--- a/mkspecs/win32-msvc2013/qmake.conf
+++ b/mkspecs/win32-msvc2013/qmake.conf
@@ -7,5 +7,4 @@
MSC_VER = 1800
MSVC_VER = 12.0
include(../common/msvc-desktop.conf)
-include(../common/shell-win32.conf)
load(qt_config)
diff --git a/mkspecs/win32-msvc2015/qmake.conf b/mkspecs/win32-msvc2015/qmake.conf
index 617adb681c..ea654d4296 100644
--- a/mkspecs/win32-msvc2015/qmake.conf
+++ b/mkspecs/win32-msvc2015/qmake.conf
@@ -7,5 +7,4 @@
MSC_VER = 1900
MSVC_VER = 14.0
include(../common/msvc-desktop.conf)
-include(../common/shell-win32.conf)
load(qt_config)