addf1f45f3
This strips leading whitespace from asset catalog filenames, which was causing installation to fail due to incorrectly calculated paths. Task-number: QTBUG-57090 Change-Id: I80db627262f9d58f4403e2d8ab205bef2113992b Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
110 lines
4.7 KiB
Plaintext
110 lines
4.7 KiB
Plaintext
# QMAKE_ASSET_CATALOGS
|
|
# Paths to xcassets directories to be compiled
|
|
#
|
|
# QMAKE_ASSET_CATALOGS_BUILD_PATH
|
|
# Location which asset catalogs will be compiled to.
|
|
# If the current target is an app bundle, defaults to its Resources directory.
|
|
# Otherwise, this value must be set manually.
|
|
#
|
|
# QMAKE_ASSET_CATALOGS_APP_ICON
|
|
# Name of the icon resource in the asset catalogs that will be used as the app icon.
|
|
# Defaults to AppIcon.
|
|
#
|
|
# QMAKE_ASSET_CATALOGS_INSTALL_PATH
|
|
# Base path to install files to. Falls back to a path relative to the target install path,
|
|
# based on QMAKE_ASSET_CATALOGS_BUILD_PATH.
|
|
|
|
!have_target|if(!build_pass:!isEmpty(BUILDS)): \
|
|
return()
|
|
|
|
!isEmpty(QMAKE_ASSET_CATALOGS) {
|
|
load(resolve_target)
|
|
|
|
isEmpty(QMAKE_ASSET_CATALOGS_BUILD_PATH) {
|
|
!isEmpty(QMAKE_RESOLVED_BUNDLE):equals(TEMPLATE, app):app_bundle {
|
|
macos: \
|
|
QMAKE_ASSET_CATALOGS_BUILD_PATH = $$QMAKE_RESOLVED_BUNDLE/Contents/Resources
|
|
else: \
|
|
QMAKE_ASSET_CATALOGS_BUILD_PATH = $$QMAKE_RESOLVED_BUNDLE
|
|
} else {
|
|
error("QMAKE_ASSET_CATALOGS_BUILD_PATH must be set when using QMAKE_ASSET_CATALOGS.")
|
|
}
|
|
}
|
|
|
|
QMAKE_ASSET_CATALOGS_BUILD_PATH = $$clean_path($$QMAKE_ASSET_CATALOGS_BUILD_PATH)
|
|
|
|
macx-xcode {
|
|
!isEmpty(QMAKE_ASSET_CATALOGS_APP_ICON) {
|
|
asset_catalog_appicon.name = "ASSETCATALOG_COMPILER_APPICON_NAME"
|
|
asset_catalog_appicon.value = $$QMAKE_ASSET_CATALOGS_APP_ICON
|
|
QMAKE_MAC_XCODE_SETTINGS += asset_catalog_appicon
|
|
}
|
|
|
|
asset_catalog_compiler.files = $$QMAKE_ASSET_CATALOGS
|
|
macos: asset_catalog_compiler.path = Contents/Resources
|
|
QMAKE_BUNDLE_DATA += asset_catalog_compiler
|
|
} else {
|
|
!isEmpty(QMAKE_ASSET_CATALOGS_APP_ICON) {
|
|
asset_catalog_app_icon_arg = \
|
|
--app-icon $$shell_quote($$QMAKE_ASSET_CATALOGS_APP_ICON)
|
|
}
|
|
|
|
asset_catalog_compiler.target = $$OUT_PWD/asset_catalog_compiler.Info.plist
|
|
asset_catalog_compiler.commands = $$shell_quote($$QMAKE_ACTOOL) \
|
|
$$asset_catalog_app_icon_arg \
|
|
--output-partial-info-plist $$shell_quote($$asset_catalog_compiler.target) \
|
|
--platform $${version_identifier} \
|
|
--minimum-deployment-target $${deployment_target} \
|
|
--compile $$shell_quote($$QMAKE_ASSET_CATALOGS_BUILD_PATH)
|
|
|
|
for (catalog, QMAKE_ASSET_CATALOGS) {
|
|
asset_catalog_compiler.commands += $${catalog}
|
|
asset_catalog_compiler.depends += $$files($$catalog/*, true)
|
|
}
|
|
|
|
actool_output_files = $$system(\
|
|
mkdir -p $$system_quote($$QMAKE_ASSET_CATALOGS_BUILD_PATH) && \
|
|
/usr/libexec/PlistBuddy -c \'Print :com.apple.actool.compilation-results:output-files\' \
|
|
/dev/stdin <<< $($${asset_catalog_compiler.commands} 2>/dev/null) | sed -Ene \'s/^ +//p\', lines)
|
|
|
|
for (output_file, actool_output_files) {
|
|
!equals(output_file, $$asset_catalog_compiler.target): \
|
|
actool_output_files_rel += $$relative_path($$output_file, $$QMAKE_ASSET_CATALOGS_BUILD_PATH)
|
|
}
|
|
|
|
QMAKE_EXTRA_TARGETS += asset_catalog_compiler
|
|
PRE_TARGETDEPS += $$asset_catalog_compiler.target
|
|
|
|
isEmpty(QMAKE_ASSET_CATALOGS_INSTALL_PATH) {
|
|
!isEmpty(target.path): \
|
|
QMAKE_ASSET_CATALOGS_INSTALL_PATH = $${target.path}/
|
|
QMAKE_ASSET_CATALOGS_INSTALL_PATH = $${QMAKE_ASSET_CATALOGS_INSTALL_PATH}$$relative_path(\
|
|
$$QMAKE_ASSET_CATALOGS_BUILD_PATH, $$absolute_path($$DESTDIR, $$OUT_PWD))
|
|
}
|
|
|
|
for (ac_install_file, actool_output_files_rel) {
|
|
asset_catalogs_files.files += \
|
|
$$QMAKE_ASSET_CATALOGS_BUILD_PATH/$$ac_install_file
|
|
}
|
|
contains(INSTALLS, target): asset_catalogs_files.depends += install_target
|
|
asset_catalogs_files.path = $$QMAKE_ASSET_CATALOGS_INSTALL_PATH
|
|
asset_catalogs_files.CONFIG += no_check_exist
|
|
INSTALLS += asset_catalogs_files
|
|
}
|
|
} else: macx-xcode {
|
|
# Backwards compatibility
|
|
for (bundle_data, QMAKE_BUNDLE_DATA) {
|
|
for (bundle_file, $${bundle_data}.files) {
|
|
!contains(bundle_file, .*\.xcassets$): next()
|
|
warning("*.xcassets in QMAKE_BUNDLE_DATA is deprecated. Use QMAKE_ASSET_CATALOGS instead.")
|
|
!exists($$absolute_path($$bundle_file/AppIcon.appiconset, $$_PRO_FILE_PWD_)): next()
|
|
|
|
asset_catalog_appicon.name = "ASSETCATALOG_COMPILER_APPICON_NAME"
|
|
asset_catalog_appicon.value = "AppIcon"
|
|
QMAKE_MAC_XCODE_SETTINGS += asset_catalog_appicon
|
|
break()
|
|
}
|
|
!isEmpty(asset_catalog_appicon.name): break()
|
|
}
|
|
}
|