2735c5bf06
With the qrcFiles entry in the deployment JSON for Android, it can now pass this on to qmlimportscanner for scanning the qrc files for the available imports. This enables qmake to populate the qrc files it has referenced in the project, be it generated by qmake or added by the user. Task-number: QTBUG-55259 Change-Id: Ic512ce6f24508b3ea09ebdd07ac4446debfd9155 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
90 lines
4.0 KiB
Plaintext
90 lines
4.0 KiB
Plaintext
contains(TEMPLATE, ".*app"):!build_pass:!android-embedded {
|
|
|
|
defineReplace(emitString) {
|
|
return("\"$$replace(1, \\\\, \\\\)\"")
|
|
}
|
|
|
|
FILE_CONTENT = "{"
|
|
FILE_CONTENT += " \"description\": \"This file is generated by qmake to be read by androiddeployqt and should not be modified by hand.\","
|
|
|
|
FILE_CONTENT += " \"qt\": $$emitString($$[QT_INSTALL_PREFIX]),"
|
|
|
|
# Settings from mkspecs/environment
|
|
FILE_CONTENT += " \"sdk\": $$emitString($$ANDROID_SDK_ROOT),"
|
|
FILE_CONTENT += " \"sdkBuildToolsRevision\": $$emitString($$ANDROID_SDK_BUILD_TOOLS_REVISION),"
|
|
|
|
isEmpty(NDK_ROOT): NDK_ROOT = $$(ANDROID_NDK_ROOT)
|
|
isEmpty(NDK_ROOT): NDK_ROOT = $$DEFAULT_ANDROID_NDK_ROOT
|
|
FILE_CONTENT += " \"ndk\": $$emitString($$NDK_ROOT),"
|
|
|
|
FILE_CONTENT += " \"toolchain-prefix\": \"llvm\","
|
|
FILE_CONTENT += " \"tool-prefix\": \"llvm\","
|
|
|
|
NDK_HOST = $$(ANDROID_NDK_HOST)
|
|
isEmpty(NDK_HOST): NDK_HOST = $$DEFAULT_ANDROID_NDK_HOST
|
|
FILE_CONTENT += " \"ndk-host\": $$emitString($$NDK_HOST),"
|
|
|
|
for (arch, ANDROID_ABIS) {
|
|
equals(arch, x86): libs_arch = i686-linux-android
|
|
else: equals(arch, x86_64): libs_arch = x86_64-linux-android
|
|
else: equals(arch, arm64-v8a): libs_arch = aarch64-linux-android
|
|
else: libs_arch = arm-linux-androideabi
|
|
ARCHS += "$$emitString($$arch):$$emitString($$libs_arch)"
|
|
}
|
|
FILE_CONTENT += " \"architectures\": {$$join(ARCHS,", ")},"
|
|
|
|
# Explicitly set qt dependencies of application for deployment
|
|
!isEmpty(ANDROID_DEPLOYMENT_DEPENDENCIES): \
|
|
FILE_CONTENT += " \"deployment-dependencies\": $$emitString($$join(ANDROID_DEPLOYMENT_DEPENDENCIES, ",")),"
|
|
|
|
# Explicitly set external dependencies of application for deployment
|
|
!isEmpty(ANDROID_EXTRA_PLUGINS): \
|
|
FILE_CONTENT += " \"android-extra-plugins\": $$emitString($$join(ANDROID_EXTRA_PLUGINS, ",")),"
|
|
|
|
# Android-specific settings of Project
|
|
!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, ",")),"
|
|
|
|
!isEmpty(QML_IMPORT_PATH): \
|
|
FILE_CONTENT += " \"qml-import-paths\": $$emitString($$join(QML_IMPORT_PATH, ",")),"
|
|
|
|
isEmpty(QML_ROOT_PATH): \
|
|
QML_ROOT_PATH = $$_PRO_FILE_PWD_
|
|
FILE_CONTENT += " \"qml-root-path\": $$emitString($$QML_ROOT_PATH),"
|
|
FILE_CONTENT += " \"stdcpp-path\": $$emitString($$ANDROID_STDCPP_PATH),"
|
|
!isEmpty(RESOURCES) {
|
|
# Make sure that qmake generated qrc files are accounted for
|
|
load(resources_functions)
|
|
qtFlattenResources()
|
|
for(resource, RESOURCES) {
|
|
contains(resource, ".*\\qmake_qmake_immediate.qrc$") {
|
|
# They will be created for each architecture, since they could be different
|
|
# we need to account for all of them
|
|
for (arch, ANDROID_ABIS): \
|
|
rescopy += $$absolute_path("qmake_qmake_immediate.qrc", $$OUT_PWD/$$arch)
|
|
} else {
|
|
contains(resource, ".*\\.qrc$"): rescopy += $$absolute_path($$resource, $$_PRO_FILE_PWD_)
|
|
}
|
|
}
|
|
FILE_CONTENT += " \"qrcFiles\": $$emitString($$join(rescopy, ",")),"
|
|
}
|
|
FILE_CONTENT += ""
|
|
FILE_CONTENT += " \"application-binary\": $$emitString($$TARGET)"
|
|
FILE_CONTENT += "}"
|
|
|
|
isEmpty(ANDROID_DEPLOYMENT_SETTINGS_FILE): ANDROID_DEPLOYMENT_SETTINGS_FILE = $$OUT_PWD/android-$$TARGET-deployment-settings.json
|
|
|
|
write_file($$ANDROID_DEPLOYMENT_SETTINGS_FILE, FILE_CONTENT)|error()
|
|
}
|