summaryrefslogtreecommitdiffstats
path: root/mkspecs/features
diff options
context:
space:
mode:
Diffstat (limited to 'mkspecs/features')
-rw-r--r--mkspecs/features/qml_module.prf20
-rw-r--r--mkspecs/features/qml_plugin.prf44
-rw-r--r--mkspecs/features/qt_build_extra.prf2
-rw-r--r--mkspecs/features/qt_common.prf8
-rwxr-xr-xmkspecs/features/uikit/device_destinations.sh3
-rw-r--r--mkspecs/features/uikit/xcodebuild.mk5
-rw-r--r--mkspecs/features/winrt/package_manifest.prf7
7 files changed, 54 insertions, 35 deletions
diff --git a/mkspecs/features/qml_module.prf b/mkspecs/features/qml_module.prf
index 6b08ea3a1a..4db0040dc5 100644
--- a/mkspecs/features/qml_module.prf
+++ b/mkspecs/features/qml_module.prf
@@ -14,10 +14,13 @@ equals(TEMPLATE, app): TEMPLATE = aux
isEmpty(TARGETPATH): error("Must set TARGETPATH (QML import name)")
qmldir_file = $$_PRO_FILE_PWD_/qmldir
-fq_qml_files = $$qmldir_file
+fq_qml_files =
for(qmlf, QML_FILES): fq_qml_files += $$absolute_path($$qmlf, $$_PRO_FILE_PWD_)
+fq_aux_qml_files =
+for(qmlf, AUX_QML_FILES): fq_aux_qml_files += $$absolute_path($$qmlf, $$_PRO_FILE_PWD_)
+
load(qt_build_paths)
qml1_target {
@@ -32,8 +35,9 @@ qml1_target {
builtin_resources {
URITARGET = $$replace(URI, "\\.", "_")
- # Ensure the qml files are included in the resources
- $${URITARGET}.files = $$fq_qml_files
+ # Ensure the QML files are included in the resources. In static builds,
+ # the QML engine reads also the qmldir file from the resources.
+ $${URITARGET}.files = $$qmldir_file $$fq_qml_files
# qt-project.org/imports is the path used for locating imports inside the resources
$${URITARGET}.prefix = /qt-project.org/imports/$$TARGETPATH
RESOURCES += $${URITARGET}
@@ -41,8 +45,9 @@ builtin_resources {
# Install rules
qmldir.base = $$_PRO_FILE_PWD_
-!builtin_resources: qmldir.files = $$fq_qml_files
-else: qmldir.files = $$qmldir_file
+# Tools need qmldir and plugins.qmltypes always installed on the file system
+qmldir.files = $$qmldir_file $$fq_aux_qml_files
+!builtin_resources: qmldir.files += $$fq_qml_files
qmldir.path = $$instbase/$$TARGETPATH
INSTALLS += qmldir
@@ -50,8 +55,9 @@ INSTALLS += qmldir
!prefix_build {
COPIES += qmldir
} else {
- # For non-installed static builds, qmlimportscanner needs qmldir file in build dir
- qmldir2build.files = $$qmldir_file
+ # For non-installed static builds, tools need qmldir and plugins.qmltypes
+ # files in the build dir
+ qmldir2build.files = $$qmldir_file $$fq_aux_qml_files
qmldir2build.path = $$DESTDIR
COPIES += qmldir2build
}
diff --git a/mkspecs/features/qml_plugin.prf b/mkspecs/features/qml_plugin.prf
index a55ab1928e..149b3cff56 100644
--- a/mkspecs/features/qml_plugin.prf
+++ b/mkspecs/features/qml_plugin.prf
@@ -40,7 +40,7 @@ URI = $$replace(TARGETPATH, "/", ".")
QMAKE_MOC_OPTIONS += -Muri=$$URI
QMLTYPEFILE = $$_PRO_FILE_PWD_/plugins.qmltypes
-exists($$QMLTYPEFILE): QML_FILES += $$QMLTYPEFILE
+exists($$QMLTYPEFILE): AUX_QML_FILES += $$QMLTYPEFILE
# Install rules
@@ -73,6 +73,29 @@ load(qt_common)
# directory. Then review and commit the changes made to plugins.qmltypes.
#
!cross_compile {
+ qml1_target {
+ qmlplugindump = qml1plugindump
+ importpath.name = QML_IMPORT_PATH
+ } else {
+ qmlplugindump = qmlplugindump
+ importpath.name = QML2_IMPORT_PATH
+ }
+ importpath.value =
+ for(qmod, QTREPOS) {
+ qml1_target: \
+ qmod = $$qmod/imports
+ else: \
+ qmod = $$qmod/qml
+ exists($$qmod): importpath.value += $$shell_path($$qmod)
+ }
+ importpath.value = $$unique(importpath.value)
+ QT_TOOL_ENV = importpath
+ qtPrepareTool(QMLPLUGINDUMP, $$qmlplugindump)
+ QT_TOOL_ENV =
+
+ # qtPrepareTool() must be called outside a build pass, as it protects
+ # against concurrent wrapper creation by omitting it during build passes.
+ # However, creating the actual targets is reserved to the build passes.
build_pass|!debug_and_release {
isEmpty(IMPORT_VERSION) {
no_cxx_module {
@@ -84,25 +107,6 @@ load(qt_common)
}
load(resolve_target)
- qml1_target {
- qmlplugindump = qml1plugindump
- importpath.name = QML_IMPORT_PATH
- } else {
- qmlplugindump = qmlplugindump
- importpath.name = QML2_IMPORT_PATH
- }
- importpath.value =
- for(qmod, QTREPOS) {
- qml1_target: \
- qmod = $$qmod/imports
- else: \
- qmod = $$qmod/qml
- exists($$qmod): importpath.value += $$shell_path($$qmod)
- }
- importpath.value = $$unique(importpath.value)
- QT_TOOL_ENV = importpath
- qtPrepareTool(QMLPLUGINDUMP, $$qmlplugindump)
- QT_TOOL_ENV =
TARGETPATHBASE = $$replace(TARGETPATH, \\.\\d+\$, )
qmltypes.target = qmltypes
qmltypes.commands = $$QMLPLUGINDUMP -nonrelocatable $$replace(TARGETPATHBASE, /, .) $$IMPORT_VERSION > $$QMLTYPEFILE
diff --git a/mkspecs/features/qt_build_extra.prf b/mkspecs/features/qt_build_extra.prf
index 448da9b797..a1512c3a19 100644
--- a/mkspecs/features/qt_build_extra.prf
+++ b/mkspecs/features/qt_build_extra.prf
@@ -13,7 +13,7 @@ equals(TEMPLATE, subdirs): return()
# It's likely that these extra flags will be wrong for host builds,
# and the bootstrapped tools usually don't need them anyway.
-host_build:force_bootstrap: return()
+host_build:cross_compile: return()
# The headersclean check needs defines and includes even for
# header-only modules.
diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf
index 57f1034d28..e754a17790 100644
--- a/mkspecs/features/qt_common.prf
+++ b/mkspecs/features/qt_common.prf
@@ -43,9 +43,9 @@ contains(TEMPLATE, .*lib) {
QMAKE_PRL_INSTALL_REPLACE += lib_replace
}
-# The remainder of this file must not apply to bootstrapped tools,
+# The remainder of this file must not apply to host tools/libraries,
# as the host compiler's version and capabilities are not checked.
-host_build:force_bootstrap: return()
+host_build:cross_compile: return()
# Extra warnings for Qt non-example code, to ensure cleanliness of the sources.
# The block below may turn these warnings into errors for some Qt targets.
@@ -70,10 +70,10 @@ warnings_are_errors:warning_clean {
# compiler.
clang:!uikit {
# Apple clang 4.0-4.2,5.0-5.1,6.0-6.4
- # Regular clang 3.3-3.8
+ # Regular clang 3.3-3.9
apple_ver = $${QT_APPLE_CLANG_MAJOR_VERSION}.$${QT_APPLE_CLANG_MINOR_VERSION}
reg_ver = $${QT_CLANG_MAJOR_VERSION}.$${QT_CLANG_MINOR_VERSION}
- contains(apple_ver, "4\\.[012]|5\\.[01]|6\\.[01234]")|contains(reg_ver, "3\\.[3-8]") {
+ contains(apple_ver, "4\\.[012]|5\\.[01]|6\\.[01234]")|contains(reg_ver, "3\\.[3-9]") {
QMAKE_CXXFLAGS_WARN_ON += -Werror -Wno-error=\\$${LITERAL_HASH}warnings -Wno-error=deprecated-declarations $$WERROR
}
} else:intel_icc:linux {
diff --git a/mkspecs/features/uikit/device_destinations.sh b/mkspecs/features/uikit/device_destinations.sh
index 2c117d0ad4..e87508bed9 100755
--- a/mkspecs/features/uikit/device_destinations.sh
+++ b/mkspecs/features/uikit/device_destinations.sh
@@ -39,7 +39,8 @@
##
#############################################################################
-booted_simulator=$(xcrun simctl list devices | grep -E '$1' | grep -v unavailable | grep Booted | perl -lne 'print $2 if /\((.*?)\)/')
+DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+booted_simulator=$($DIR/ios_devices.pl '$1' "Booted" "NOT unavailable" | tail -n 1)
echo "SIMULATOR_DEVICES = $booted_simulator"
xcodebuild test -scheme $2 -destination 'id=0' -destination-timeout 1 2>&1| sed -n 's/{ \(platform:.*\) }/\1/p' | while read destination; do
diff --git a/mkspecs/features/uikit/xcodebuild.mk b/mkspecs/features/uikit/xcodebuild.mk
index b8674947fe..057f4f75ac 100644
--- a/mkspecs/features/uikit/xcodebuild.mk
+++ b/mkspecs/features/uikit/xcodebuild.mk
@@ -56,11 +56,12 @@ simulator-install: ACTION = build
release-%: CONFIGURATION = Release
debug-%: CONFIGURATION = Debug
+SPECDIR := $(dir $(lastword $(MAKEFILE_LIST)))
+
# Test and build (device) destinations
ifneq ($(filter check%,$(MAKECMDGOALS)),)
ifeq ($(DEVICES),)
$(info Enumerating test destinations (you may override this by setting DEVICES explicitly), please wait...)
- SPECDIR := $(dir $(lastword $(MAKEFILE_LIST)))
DESTINATIONS_INCLUDE = /tmp/device_destinations.mk
$(shell $(SPECDIR)/../features/uikit/device_destinations.sh '$(EXPORT_DEVICE_FILTER)' $(TARGET) > $(DESTINATIONS_INCLUDE))
include $(DESTINATIONS_INCLUDE)
@@ -71,7 +72,7 @@ endif
%-device: DEVICES = $(HARDWARE_DEVICES)
GENERIC_DEVICE_DESTINATION := $(EXPORT_GENERIC_DEVICE_DESTINATION)
-GENERIC_SIMULATOR_DESTINATION := "id=$(shell xcrun simctl list devices | grep -E '$(EXPORT_DEVICE_FILTER)' | grep -v unavailable | perl -lne 'print $$1 if /\((.*?)\)/' | tail -n 1)"
+GENERIC_SIMULATOR_DESTINATION := "id=$(shell $(SPECDIR)/ios_devices.pl '$(EXPORT_DEVICE_FILTER)' "NOT unavailable" | tail -n 1)"
%-simulator: DESTINATION = $(if $(DESTINATION_ID),"id=$(DESTINATION_ID)",$(GENERIC_SIMULATOR_DESTINATION))
%-device: DESTINATION = $(if $(DESTINATION_ID),"id=$(DESTINATION_ID)",$(GENERIC_DEVICE_DESTINATION))
diff --git a/mkspecs/features/winrt/package_manifest.prf b/mkspecs/features/winrt/package_manifest.prf
index 291ebec6e9..e17bda3c8e 100644
--- a/mkspecs/features/winrt/package_manifest.prf
+++ b/mkspecs/features/winrt/package_manifest.prf
@@ -31,6 +31,8 @@
# WINRT_MANIFEST.capabilities: Specifies capabilities to add to the capability list.
# WINRT_MANIFEST.capabilities_device: Specifies device capabilities to add to the capability list. (location, webcam...)
# WINRT_MANIFEST.dependencies: Specifies dependencies required by the package.
+# WINRT_MANIFEST.minVersion: Specifies the minimum required Windows version to run the package. Defaults to %UCRTVersion%
+# WINRT_MANIFEST.maxVersionTested: Specifies the maximum Windows version the package has been tested against. Defaults to WINRT_MANIFEST.minVersion
# The manifest is generated for each build pass for normal apps, and only once for vcapps.
# - Normal apps have their package root directory in the same place as the target (one for each build pass).
@@ -91,6 +93,11 @@
isEmpty(WINRT_MANIFEST.background): WINRT_MANIFEST.background = green
isEmpty(WINRT_MANIFEST.foreground): WINRT_MANIFEST.foreground = light
isEmpty(WINRT_MANIFEST.default_language): WINRT_MANIFEST.default_language = en
+ *-msvc2015 {
+ isEmpty(WINRT_MANIFEST.minVersion): WINRT_MANIFEST.minVersion = $$(UCRTVersion)
+ isEmpty(WINRT_MANIFEST.minVersion): error("No UCRTVersion found in environment."))
+ isEmpty(WINRT_MANIFEST.maxVersionTested): WINRT_MANIFEST.maxVersionTested = $$WINRT_MANIFEST.minVersion
+ }
INDENT = "$$escape_expand(\\r\\n) "