summaryrefslogtreecommitdiffstats
path: root/mkspecs
diff options
context:
space:
mode:
Diffstat (limited to 'mkspecs')
-rw-r--r--mkspecs/features/android/android_deployment_settings.prf8
-rw-r--r--mkspecs/features/mac/default_post.prf2
-rw-r--r--mkspecs/features/mac/sdk.mk33
-rw-r--r--mkspecs/features/qmltestcase.prf3
-rw-r--r--mkspecs/features/qt.prf8
-rw-r--r--mkspecs/features/qt_configure.prf14
-rw-r--r--mkspecs/features/resources.prf2
-rw-r--r--mkspecs/features/testcase.prf10
-rw-r--r--mkspecs/wasm-emscripten/qmake.conf1
-rw-r--r--mkspecs/win32-clang-msvc/qmake.conf21
-rw-r--r--mkspecs/winrt-arm64-msvc2017/qmake.conf19
-rw-r--r--mkspecs/winrt-arm64-msvc2017/qplatformdefs.h40
12 files changed, 135 insertions, 26 deletions
diff --git a/mkspecs/features/android/android_deployment_settings.prf b/mkspecs/features/android/android_deployment_settings.prf
index 0db3230ce7..ad826bdad3 100644
--- a/mkspecs/features/android/android_deployment_settings.prf
+++ b/mkspecs/features/android/android_deployment_settings.prf
@@ -58,6 +58,14 @@ contains(TEMPLATE, ".*app"):!build_pass:!android-embedded {
!isEmpty(ANDROID_PACKAGE_SOURCE_DIR): \
FILE_CONTENT += " \"android-package-source-directory\": $$emitString($$ANDROID_PACKAGE_SOURCE_DIR),"
+ # Android-specific version string
+ !isEmpty(ANDROID_VERSION_NAME): \
+ FILE_CONTENT += " \"android-version-name\": $$emitString($$ANDROID_VERSION_NAME),"
+
+ # Android-specific version number
+ !isEmpty(ANDROID_VERSION_CODE): \
+ FILE_CONTENT += " \"android-version-code\": $$emitString($$ANDROID_VERSION_CODE),"
+
!isEmpty(ANDROID_EXTRA_LIBS): \
FILE_CONTENT += " \"android-extra-libs\": $$emitString($$join(ANDROID_EXTRA_LIBS, ",")),"
diff --git a/mkspecs/features/mac/default_post.prf b/mkspecs/features/mac/default_post.prf
index 8e2c5e603a..c46222debd 100644
--- a/mkspecs/features/mac/default_post.prf
+++ b/mkspecs/features/mac/default_post.prf
@@ -67,7 +67,7 @@ qt {
# Add the same default rpaths as Xcode does for new projects.
# This is especially important for iOS/tvOS/watchOS where no other option is possible.
!no_default_rpath {
- QMAKE_RPATHDIR += @executable_path/Frameworks
+ QMAKE_RPATHDIR += @executable_path/../Frameworks
equals(TEMPLATE, lib):!plugin:lib_bundle: QMAKE_RPATHDIR += @loader_path/Frameworks
}
diff --git a/mkspecs/features/mac/sdk.mk b/mkspecs/features/mac/sdk.mk
index c0266f2139..c40f58c987 100644
--- a/mkspecs/features/mac/sdk.mk
+++ b/mkspecs/features/mac/sdk.mk
@@ -1,12 +1,25 @@
-CURRENT_MAC_SDK_VERSION := $(shell DEVELOPER_DIR=$(EXPORT_QMAKE_XCODE_DEVELOPER_PATH) /usr/bin/xcrun --sdk $(EXPORT_QMAKE_MAC_SDK) -show-sdk-version)
-ifneq ($(CURRENT_MAC_SDK_VERSION),$(EXPORT_QMAKE_MAC_SDK_VERSION))
- $(info The platform SDK has been changed from version $(EXPORT_QMAKE_MAC_SDK_VERSION) to version $(CURRENT_MAC_SDK_VERSION).)
- $(info This requires a fresh build. Please wipe the build directory completely,)
- $(info including any .qmake.stash and .qmake.cache files generated by qmake.)
- # FIXME: Ideally this should be advertised as just running make distclean, or we
- # should even do it automatically by having proper makefile dependencies between
- # .qmake.stash and the SDK version, but as qmake doesn't seem to be consistent in
- # how it deals with .qmake.stash as a dependency we need to defer that until later.
- $(error ^)
+ifeq ($(QT_MAC_SDK_NO_VERSION_CHECK),)
+ CHECK_SDK_COMMAND = /usr/bin/xcrun --sdk $(EXPORT_QMAKE_MAC_SDK) -show-sdk-version 2>&1
+ CURRENT_MAC_SDK_VERSION := $(shell DEVELOPER_DIR=$(EXPORT_QMAKE_XCODE_DEVELOPER_PATH) $(CHECK_SDK_COMMAND))
+ ifneq ($(CURRENT_MAC_SDK_VERSION),$(EXPORT_QMAKE_MAC_SDK_VERSION))
+ # We don't want to complain about out of date SDK unless the target needs to be remade.
+ # This covers use-cases such as running 'make check' after moving the build to a
+ # computer without Xcode or with a different Xcode version.
+ TARGET_UP_TO_DATE := $(shell QT_MAC_SDK_NO_VERSION_CHECK=1 $(MAKE) --question $(QMAKE_TARGET) && echo 1 || echo 0)
+ ifeq ($(TARGET_UP_TO_DATE),0)
+ ifneq ($(findstring missing DEVELOPER_DIR path,$(CURRENT_MAC_SDK_VERSION)),)
+ $(info The developer dir $(EXPORT_QMAKE_XCODE_DEVELOPER_PATH) is no longer valid.)
+ else ifneq ($(findstring SDK "$(EXPORT_QMAKE_MAC_SDK)" cannot be located,$(CURRENT_MAC_SDK_VERSION)),)
+ $(info The developer dir $(EXPORT_QMAKE_XCODE_DEVELOPER_PATH) no longer contains the $(EXPORT_QMAKE_MAC_SDK_VERSION) platform SDK.)
+ else ifneq ($(CURRENT_MAC_SDK_VERSION),)
+ $(info The platform SDK has been changed from version $(EXPORT_QMAKE_MAC_SDK_VERSION) to version $(CURRENT_MAC_SDK_VERSION).)
+ else
+ $(info Unknown error resolving current platform SDK version.)
+ endif
+ $(info This requires a fresh build. Please wipe the build directory completely,)
+ $(info including any .qmake.stash and .qmake.cache files generated by qmake.)
+ $(error ^)
+ endif
+ endif
endif
diff --git a/mkspecs/features/qmltestcase.prf b/mkspecs/features/qmltestcase.prf
index 216f37d61a..b4b1224781 100644
--- a/mkspecs/features/qmltestcase.prf
+++ b/mkspecs/features/qmltestcase.prf
@@ -1,7 +1,8 @@
!isEmpty(SOURCES) {
QT += qml qmltest
load(testcase)
- DEFINES += QUICK_TEST_SOURCE_DIR=\"\\\"$$_PRO_FILE_PWD_\\\"\"
+ contains(TEMPLATE, vc.*): DEFINES += QUICK_TEST_SOURCE_DIR=\"$$_PRO_FILE_PWD_\"
+ else: DEFINES += QUICK_TEST_SOURCE_DIR=$$shell_quote(\"$$_PRO_FILE_PWD_\")
} else {
# Allow a project to run tests without a CPP stub
TEMPLATE = aux
diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf
index 5da82fdb5b..d8d5acaafd 100644
--- a/mkspecs/features/qt.prf
+++ b/mkspecs/features/qt.prf
@@ -209,14 +209,6 @@ for(ever) {
!isEmpty(MODULE_MODULE) {
contains(MODULE_CONFIG, lib_bundle) {
framework = $$MODULE_MODULE
- qtConfig(debug_and_release):qt_link_suffixed_framework:!macx-xcode {
- platform_target_suffix = $$qtPlatformTargetSuffix()
- !isEmpty(platform_target_suffix): \
- # The -framework linker argument supports a name[,suffix] version,
- # where if the suffix is specified the framework is first searched
- # for the library with the suffix and then without.
- framework = $$framework,$$platform_target_suffix
- }
LIBS$$var_sfx += -framework $$framework
} else {
!isEmpty(MODULE_LIBS_ADD): \
diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf
index c45439c3ef..7ca65c92b3 100644
--- a/mkspecs/features/qt_configure.prf
+++ b/mkspecs/features/qt_configure.prf
@@ -333,9 +333,21 @@ defineTest(qtConfParseCommandLine) {
type = boolean
}
+ isEmpty(type):contains(opt, "skip") {
+ isEmpty(skipOptionWarningAdded) {
+ qtConfAddWarning("Command line option -skip is only effective in top-level builds.")
+ skipOptionWarningAdded = 1
+ }
+ $$qtConfGetNextCommandlineArg()
+ next()
+ }
+
isEmpty(type) {
qtConfAddError("Unknown command line option '$$c'.")
- return()
+ equals(config.input.continue, yes): \
+ next()
+ else: \
+ return()
}
call = "qtConfCommandline_$${type}"
diff --git a/mkspecs/features/resources.prf b/mkspecs/features/resources.prf
index 48e9f83885..bb2a55b93d 100644
--- a/mkspecs/features/resources.prf
+++ b/mkspecs/features/resources.prf
@@ -108,7 +108,7 @@ rcc.name = RCC ${QMAKE_FILE_IN}
rcc.depend_command = $$QMAKE_RCC_DEP -list $$QMAKE_RESOURCE_FLAGS ${QMAKE_FILE_IN}
rcc.CONFIG += add_inputs_as_makefile_deps dep_lines
-!resources_big|ltcg|macx-xcode|contains(TEMPLATE, "vc.*") {
+!resources_big|ltcg|macx-xcode|wasm|contains(TEMPLATE, "vc.*") {
rcc.output = $$RCC_DIR/$${first(QMAKE_MOD_RCC)}_${QMAKE_FILE_BASE}$${first(QMAKE_EXT_CPP)}
rcc.commands = $$QMAKE_RCC $$QMAKE_RESOURCE_FLAGS ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
diff --git a/mkspecs/features/testcase.prf b/mkspecs/features/testcase.prf
index bfc28c6861..b8102c26b5 100644
--- a/mkspecs/features/testcase.prf
+++ b/mkspecs/features/testcase.prf
@@ -21,15 +21,19 @@ testcase_lowdpi {
}
}
-# Make sure we explicitly link to the debug version of the Qt libraries if needed
-macos: CONFIG += qt_link_suffixed_framework
-
benchmark: type = benchmark
else: type = check
$${type}.files =
$${type}.path = .
+# Make sure we explicitly load the debug version of the Qt libraries if needed
+macos {
+ dyld_image_suffix.name = DYLD_IMAGE_SUFFIX
+ dyld_image_suffix.value = $$qtPlatformTargetSuffix()
+ QT_TOOL_ENV += dyld_image_suffix
+}
+
# Add environment for non-installed builds. Do this first, so the
# 'make' variable expansions don't end up in a batch file/script.
QT_TOOL_NAME = target
diff --git a/mkspecs/wasm-emscripten/qmake.conf b/mkspecs/wasm-emscripten/qmake.conf
index 2539770b51..e7b45d312d 100644
--- a/mkspecs/wasm-emscripten/qmake.conf
+++ b/mkspecs/wasm-emscripten/qmake.conf
@@ -20,7 +20,6 @@ EMCC_COMMON_LFLAGS = \
-s NO_EXIT_RUNTIME=0 \
-s ERROR_ON_UNDEFINED_SYMBOLS=1 \
--bind \
- -s \"BINARYEN_METHOD=\'native-wasm\'\" \
-s \"BINARYEN_TRAP_MODE=\'clamp\'\"
# The -s arguments can also be used with release builds,
diff --git a/mkspecs/win32-clang-msvc/qmake.conf b/mkspecs/win32-clang-msvc/qmake.conf
index 027f93ca6e..c639ad6f3d 100644
--- a/mkspecs/win32-clang-msvc/qmake.conf
+++ b/mkspecs/win32-clang-msvc/qmake.conf
@@ -6,6 +6,27 @@
include(../common/msvc-desktop.conf)
+# clang-cl does not use anything above SSE2 without extra arguments
+QMAKE_CFLAGS_SSE3 = -msse3
+QMAKE_CFLAGS_SSSE3 = -mssse3
+QMAKE_CFLAGS_SSE4_1 = -msse4.1
+QMAKE_CFLAGS_SSE4_2 = -msse4.2
+QMAKE_CFLAGS_AVX = -mavx
+QMAKE_CFLAGS_AVX2 = -mavx2
+QMAKE_CFLAGS_F16C = -mf16c
+QMAKE_CFLAGS_RDRND = -mrdrnd
+QMAKE_CFLAGS_AVX512F = -mavx512f
+QMAKE_CFLAGS_AVX512ER = -mavx512er
+QMAKE_CFLAGS_AVX512CD = -mavx512cd
+QMAKE_CFLAGS_AVX512PF = -mavx512pf
+QMAKE_CFLAGS_AVX512DQ = -mavx512dq
+QMAKE_CFLAGS_AVX512BW = -mavx512bw
+QMAKE_CFLAGS_AVX512VL = -mavx512vl
+QMAKE_CFLAGS_AVX512IFMA = -mavx512ifma
+QMAKE_CFLAGS_AVX512VBMI = -mavx512vbmi
+QMAKE_CFLAGS_AESNI = -maes
+QMAKE_CFLAGS_SHANI = -msha
+
QMAKE_COMPILER += clang_cl llvm
QMAKE_CC = clang-cl
diff --git a/mkspecs/winrt-arm64-msvc2017/qmake.conf b/mkspecs/winrt-arm64-msvc2017/qmake.conf
new file mode 100644
index 0000000000..e53c9ba748
--- /dev/null
+++ b/mkspecs/winrt-arm64-msvc2017/qmake.conf
@@ -0,0 +1,19 @@
+#
+# qmake configuration for winrt-arm64-msvc2017
+#
+# Written for Microsoft Visual C++ 2017
+#
+
+include(../common/winrt_winphone/qmake.conf)
+DEFINES += WINAPI_FAMILY=WINAPI_FAMILY_PC_APP WINAPI_PARTITION_PHONE_APP=1 arm64 __arm64__ __arm64__
+
+QMAKE_CFLAGS += -FS
+QMAKE_CXXFLAGS += -FS
+QMAKE_LFLAGS += /MACHINE:arm64 /NODEFAULTLIB:kernel32.lib
+
+QMAKE_LIBS += windowscodecs.lib WindowsApp.lib runtimeobject.lib OneCore.lib
+
+VCPROJ_ARCH = arm64
+WINSDK_VER = 10.0
+WINRT_MANIFEST = $$PWD/../common/winrt_winphone/manifests/10.0/AppxManifest.xml.in
+WINRT_MANIFEST.architecture = arm64
diff --git a/mkspecs/winrt-arm64-msvc2017/qplatformdefs.h b/mkspecs/winrt-arm64-msvc2017/qplatformdefs.h
new file mode 100644
index 0000000000..4222bca8e1
--- /dev/null
+++ b/mkspecs/winrt-arm64-msvc2017/qplatformdefs.h
@@ -0,0 +1,40 @@
+/****************************************************************************
+**
+** Copyright (C) 2019 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$
+**
+****************************************************************************/
+
+#include "../common/winrt_winphone/qplatformdefs.h"