summaryrefslogtreecommitdiffstats
path: root/mkspecs
diff options
context:
space:
mode:
Diffstat (limited to 'mkspecs')
-rw-r--r--mkspecs/common/winrt_winphone/qmake.conf5
-rw-r--r--mkspecs/devices/linux-rpi3-g++/qmake.conf41
-rw-r--r--mkspecs/devices/linux-rpi3-g++/qplatformdefs.h34
-rw-r--r--mkspecs/features/egl.prf2
-rw-r--r--mkspecs/features/qml_plugin.prf2
-rw-r--r--mkspecs/features/qt.prf9
-rw-r--r--mkspecs/features/qt_module_pris.prf4
-rw-r--r--mkspecs/features/resolve_target.prf23
-rw-r--r--mkspecs/features/unix/dylib.prf1
-rw-r--r--mkspecs/features/winrt/package_manifest.prf11
10 files changed, 125 insertions, 7 deletions
diff --git a/mkspecs/common/winrt_winphone/qmake.conf b/mkspecs/common/winrt_winphone/qmake.conf
index a9450b0c32..b5e0c7cc71 100644
--- a/mkspecs/common/winrt_winphone/qmake.conf
+++ b/mkspecs/common/winrt_winphone/qmake.conf
@@ -9,7 +9,7 @@ include(../angle.conf)
MAKEFILE_GENERATOR = MSBUILD
QMAKE_COMPILER = msvc
QMAKE_PLATFORM = winrt win32
-CONFIG += incremental flat precompile_header autogen_precompile_source debug_and_release debug_and_release_target package_manifest rtti
+CONFIG = package_manifest $$CONFIG incremental flat precompile_header autogen_precompile_source debug_and_release debug_and_release_target rtti
DEFINES += UNICODE WIN32 QT_LARGEFILE_SUPPORT Q_BYTE_ORDER=Q_LITTLE_ENDIAN \
QT_NO_PRINTER QT_NO_PRINTDIALOG # TODO: Remove when printing is re-enabled
@@ -95,6 +95,9 @@ VCSOLUTION_EXTENSION = .sln
VCPROJ_KEYWORD = Qt4VSv1.0
WINRT_ASSETS_PATH = $$PWD/assets
+WINRT_MANIFEST.capabilities = defaults
+WINRT_MANIFEST.capabilities_device = defaults
+
include(../msvc-base.conf)
unset(MSC_VER)
diff --git a/mkspecs/devices/linux-rpi3-g++/qmake.conf b/mkspecs/devices/linux-rpi3-g++/qmake.conf
new file mode 100644
index 0000000000..600d3e7dc1
--- /dev/null
+++ b/mkspecs/devices/linux-rpi3-g++/qmake.conf
@@ -0,0 +1,41 @@
+# qmake configuration for the Raspberry Pi 3
+
+include(../common/linux_device_pre.conf)
+
+# I consider it a bug that this is required, but our EGL config.test _requires_ it
+QMAKE_LFLAGS += -Wl,-rpath-link,$$[QT_SYSROOT]/opt/vc/lib
+
+VC_LIBRARY_PATH = /opt/vc/lib
+VC_INCLUDE_PATH = =/opt/vc/include
+
+# terrible, they do not appear to resolve "=" in rpath!
+VC_LINK_LINE = -L=$${VC_LIBRARY_PATH} -Wl,-rpath-link,$$[QT_SYSROOT]$${VC_LIBRARY_PATH}
+
+QMAKE_LIBDIR_OPENGL_ES2 = =$${VC_LIBRARY_PATH}
+QMAKE_LIBDIR_EGL = $$QMAKE_LIBDIR_OPENGL_ES2
+QMAKE_LIBDIR_OPENVG = $$QMAKE_LIBDIR_OPENGL_ES2
+
+QMAKE_INCDIR_EGL = \
+ $${VC_INCLUDE_PATH} \
+ $${VC_INCLUDE_PATH}/interface/vcos/pthreads \
+ $${VC_INCLUDE_PATH}/interface/vmcs_host/linux
+
+QMAKE_INCDIR_OPENGL_ES2 = $${QMAKE_INCDIR_EGL}
+
+QMAKE_LIBS_OPENGL_ES2 = $${VC_LINK_LINE} -lGLESv2
+
+# The official opt vc EGL references GLESv2 symbols: need to link it
+QMAKE_LIBS_EGL = $${VC_LINK_LINE} -lEGL -lGLESv2
+
+# We deliberately override the existing Qt CFLAGS as they might be problematic
+QMAKE_CFLAGS = -march=armv8-a+crc -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 -pipe -Os -mthumb
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -std=c++1z
+
+DISTRO_OPTS += hard-float
+DISTRO_OPTS += deb-multi-arch
+
+EGLFS_DEVICE_INTEGRATION= eglfs_brcm
+
+include(../common/linux_arm_device_post.conf)
+
+load(qt_config)
diff --git a/mkspecs/devices/linux-rpi3-g++/qplatformdefs.h b/mkspecs/devices/linux-rpi3-g++/qplatformdefs.h
new file mode 100644
index 0000000000..5ae49b35dd
--- /dev/null
+++ b/mkspecs/devices/linux-rpi3-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/egl.prf b/mkspecs/features/egl.prf
index c3bdd9fdf4..9fa0c9e219 100644
--- a/mkspecs/features/egl.prf
+++ b/mkspecs/features/egl.prf
@@ -4,5 +4,5 @@ QMAKE_CFLAGS += $$QMAKE_CFLAGS_EGL
QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_EGL
LIBS += $$QMAKE_LFLAGS_EGL
for(p, QMAKE_LIBDIR_EGL) {
- exists($$p): LIBS_PRIVATE += -L$$p
+ LIBS_PRIVATE += -L$$p
}
diff --git a/mkspecs/features/qml_plugin.prf b/mkspecs/features/qml_plugin.prf
index daedeca3a0..20b8eb4d53 100644
--- a/mkspecs/features/qml_plugin.prf
+++ b/mkspecs/features/qml_plugin.prf
@@ -27,7 +27,7 @@ CONFIG += relative_qt_rpath # Qt's QML plugins should be relocatable
}
isEmpty(TARGETPATH): TARGETPATH = $$eval(QT.$${CXX_MODULE}.name)
-!no_cxx_module:win32:CONFIG(shared, static|shared) {
+win32:CONFIG(shared, static|shared) {
# Embed a VERSIONINFO resource into the plugin's DLL.
isEmpty(VERSION): VERSION = $$MODULE_VERSION
CONFIG += skip_target_version_ext
diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf
index e54841a678..03ec36ae3f 100644
--- a/mkspecs/features/qt.prf
+++ b/mkspecs/features/qt.prf
@@ -141,6 +141,15 @@ for(ever) {
}
}
}
+ # Add capabilities as defined by modules used in the project
+ winrt {
+ MODULE_WINRT_CAPABILITIES = $$eval(QT.$${QTLIB}.winrt_capabilities)
+ !isEmpty(MODULE_WINRT_CAPABILITIES): \
+ WINRT_MANIFEST.capabilities_default += $$MODULE_WINRT_CAPABILITIES
+ MODULE_WINRT_CAPABILITIES_DEVICE = $$eval(QT.$${QTLIB}.winrt_capabilities_device)
+ !isEmpty(MODULE_WINRT_CAPABILITIES_DEVICE): \
+ WINRT_MANIFEST.capabilities_device_default += $$MODULE_WINRT_CAPABILITIES_DEVICE
+ }
}
!isEmpty(BAD_QT):error("Unknown module(s) in QT$$var_sfx: $$replace(BAD_QT, _private$, -private)")
diff --git a/mkspecs/features/qt_module_pris.prf b/mkspecs/features/qt_module_pris.prf
index 9c45350543..4dd9e25f9f 100644
--- a/mkspecs/features/qt_module_pris.prf
+++ b/mkspecs/features/qt_module_pris.prf
@@ -104,6 +104,9 @@ MODULE_FWD_PRI = $$mod_work_pfx/qt_lib_$${MODULE_ID}.pri
"QT.$${MODULE_ID}.DEFINES = $$val_escape(MODULE_DEFINES)" \
"" \
"QT_MODULES += $$MODULE"
+ winrt: MODULE_PRI_CONT += \
+ "QT.$${MODULE_ID}.winrt_capabilities =$$join(MODULE_WINRT_CAPABILITIES, " ", " ")" \
+ "QT.$${MODULE_ID}.winrt_capabilities_device =$$join(MODULE_WINRT_CAPABILITIES_DEVICE, " ", " ")"
write_file($$MODULE_PRI, MODULE_PRI_CONT)|error("Aborting.")
!internal_module:!no_private_module {
module_build_type += internal_module
@@ -186,6 +189,7 @@ MODULE_FWD_PRI = $$mod_work_pfx/qt_lib_$${MODULE_ID}.pri
for(var, $$list(VERSION MAJOR_VERSION MINOR_VERSION PATCH_VERSION \
name module depends run_depends plugin_types module_config CONFIG DEFINES \
priority includes bins libs frameworks libexecs plugins imports qml \
+ winrt_capabilities winrt_capabilities_device \
)):defined(QT.$${mod}.$$var, var):cache(QT.$${mod}.$$var, transient)
}
cache(QT_MODULES, transient)
diff --git a/mkspecs/features/resolve_target.prf b/mkspecs/features/resolve_target.prf
index d6460c1d9d..5c3a46e117 100644
--- a/mkspecs/features/resolve_target.prf
+++ b/mkspecs/features/resolve_target.prf
@@ -33,7 +33,18 @@ win32 {
mac {
equals(TEMPLATE, lib) {
lib_bundle {
- QMAKE_RESOLVED_TARGET = $${QMAKE_RESOLVED_TARGET}$${TARGET}.framework/$${TARGET}
+ !isEmpty(QMAKE_FRAMEWORK_BUNDLE_NAME): \
+ framework_target = $$QMAKE_FRAMEWORK_BUNDLE_NAME
+ else: \
+ framework_target = $$TARGET
+ QMAKE_RESOLVED_BUNDLE = $${QMAKE_RESOLVED_TARGET}$${framework_target}.framework
+ !shallow_bundle {
+ TEMP_VERSION = $$section(VERSION, ., 0, 0)
+ isEmpty(TEMP_VERSION):TEMP_VERSION = A
+ QMAKE_RESOLVED_TARGET = $${QMAKE_RESOLVED_BUNDLE}/Versions/$${TEMP_VERSION}/$${TARGET}
+ } else {
+ QMAKE_RESOLVED_TARGET = $${QMAKE_RESOLVED_BUNDLE}/$${TARGET}
+ }
} else {
QMAKE_RESOLVED_TARGET = $${QMAKE_RESOLVED_TARGET}$${LIBPREFIX}$${TARGET}
!plugin {
@@ -46,7 +57,15 @@ win32 {
}
} else {
app_bundle {
- QMAKE_RESOLVED_TARGET = $${QMAKE_RESOLVED_TARGET}$${TARGET}.app/Contents/MacOS/$${TARGET}
+ !isEmpty(QMAKE_APPLICATION_BUNDLE_NAME): \
+ app_target = $$QMAKE_APPLICATION_BUNDLE_NAME
+ else: \
+ app_target = $$TARGET
+ QMAKE_RESOLVED_BUNDLE = $${QMAKE_RESOLVED_TARGET}$${app_target}.app
+ !shallow_bundle: \
+ QMAKE_RESOLVED_TARGET = $${QMAKE_RESOLVED_BUNDLE}/Contents/MacOS/$${TARGET}
+ else: \
+ QMAKE_RESOLVED_TARGET = $${QMAKE_RESOLVED_BUNDLE}/$${TARGET}
} else {
QMAKE_RESOLVED_TARGET = $${QMAKE_RESOLVED_TARGET}$${TARGET}
}
diff --git a/mkspecs/features/unix/dylib.prf b/mkspecs/features/unix/dylib.prf
deleted file mode 100644
index 8b13789179..0000000000
--- a/mkspecs/features/unix/dylib.prf
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/mkspecs/features/winrt/package_manifest.prf b/mkspecs/features/winrt/package_manifest.prf
index 3520fcdf93..291ebec6e9 100644
--- a/mkspecs/features/winrt/package_manifest.prf
+++ b/mkspecs/features/winrt/package_manifest.prf
@@ -112,10 +112,19 @@
# capability anymore and is assumed to be standard.
*-msvc2015: WINRT_MANIFEST.capabilities += internetClient
+ contains(WINRT_MANIFEST.capabilities, defaults) {
+ WINRT_MANIFEST.capabilities -= defaults
+ WINRT_MANIFEST.capabilities += $$WINRT_MANIFEST.capabilities_default
+ }
+
+ contains(WINRT_MANIFEST.capabilities_device, defaults) {
+ WINRT_MANIFEST.capabilities_device -= defaults
+ WINRT_MANIFEST.capabilities_device += $$WINRT_MANIFEST.capabilities_device_default
+ }
+
# Capabilities are given as a string list and may change with the configuration (network, sensors, etc.)
WINRT_MANIFEST.capabilities = $$unique(WINRT_MANIFEST.capabilities)
WINRT_MANIFEST.capabilities_device = $$unique(WINRT_MANIFEST.capabilities_device)
-
!isEmpty(WINRT_MANIFEST.capabilities)|!isEmpty(WINRT_MANIFEST.capabilities_device) {
MANIFEST_CAPABILITIES += "<Capabilities>"
for(CAPABILITY, WINRT_MANIFEST.capabilities): \