summaryrefslogtreecommitdiffstats
path: root/mkspecs/features/resources.prf
diff options
context:
space:
mode:
Diffstat (limited to 'mkspecs/features/resources.prf')
-rw-r--r--mkspecs/features/resources.prf109
1 files changed, 6 insertions, 103 deletions
diff --git a/mkspecs/features/resources.prf b/mkspecs/features/resources.prf
index fa8ff1fb58..ab9761a83c 100644
--- a/mkspecs/features/resources.prf
+++ b/mkspecs/features/resources.prf
@@ -1,116 +1,19 @@
-qtPrepareTool(QMAKE_RCC, rcc, _DEP)
+qtPrepareLibExecTool(QMAKE_RCC, rcc, _DEP)
-isEmpty(RCC_DIR):RCC_DIR = .
isEmpty(QMAKE_MOD_RCC):QMAKE_MOD_RCC = qrc
!contains(QMAKE_RESOURCE_FLAGS, -root):!isEmpty(QMAKE_RESOURCE_ROOT):QMAKE_RESOURCE_FLAGS += -root $$QMAKE_RESOURCE_ROOT
!contains(QMAKE_RESOURCE_FLAGS, -name): QMAKE_RESOURCE_FLAGS += -name ${QMAKE_FILE_BASE}
+!qtConfig(zstd): QMAKE_RESOURCE_FLAGS += --no-zstd
-# http://www.w3.org/TR/xml/#syntax
-defineReplace(xml_escape) {
- 1 ~= s,&,&,
- 1 ~= s,\',',
- 1 ~= s,\",",
- 1 ~= s,<,&lt;,
- 1 ~= s,>,&gt;,
- return($$1)
-}
-
-RESOURCES += qmake_immediate
-for(resource, RESOURCES) {
- # Regular case of user qrc file
- contains(resource, ".*\\.qrc$"): \
- next()
-
- # Fallback for stand-alone files/directories
- !defined($${resource}.files, var) {
- !equals(resource, qmake_immediate) {
- !exists($$absolute_path($$resource, $$_PRO_FILE_PWD_)): \
- warning("Failure to find: $$resource")
- qmake_immediate.files += $$resource
- OTHER_FILES *= $$resource
- }
- RESOURCES -= $$resource
- next()
- }
-
- resource_file = $$absolute_path($$RCC_DIR/qmake_$${resource}.qrc, $$OUT_PWD)
-
- isEmpty(BUILDS)|build_pass {
- # Collection of files, generate qrc file
- prefix = $$eval($${resource}.prefix)
- isEmpty(prefix): \
- prefix = "/"
-
- resource_file_content = \
- "<!DOCTYPE RCC><RCC version=\"1.0\">" \
- "<qresource prefix=\"$$xml_escape($$prefix)\">"
-
- abs_base = $$absolute_path($$eval($${resource}.base), $$_PRO_FILE_PWD_)
-
- for(file, $${resource}.files) {
- abs_path = $$absolute_path($$file, $$_PRO_FILE_PWD_)
- files = $$files($$abs_path/*, true)
- isEmpty(files): \
- files = $$abs_path
- for (file, files) {
- exists($$file/*): next() # exclude directories
- alias = $$relative_path($$file, $$abs_base)
- resource_file_content += \
- "<file alias=\"$$xml_escape($$alias)\">$$xml_escape($$file)</file>"
- OTHER_FILES *= $$file
- }
- }
-
- resource_file_content += \
- "</qresource>" \
- "</RCC>"
-
- !write_file($$resource_file, resource_file_content): \
- error()
- }
-
- RESOURCES -= $$resource
- RESOURCES += $$resource_file
-}
-
-!isEmpty(RESOURCES):contains(TEMPLATE, .*lib):plugin:static {
- pluginBaseName = $$basename(TARGET)
- pluginName = $$lower($$replace(pluginBaseName, [-], _))
- resource_init_function = $${pluginName}_plugin_resource_init
- DEFINES += "QT_PLUGIN_RESOURCE_INIT_FUNCTION=$$resource_init_function"
- RESOURCE_INIT_CPP = $$OUT_PWD/$${pluginName}_plugin_resources.cpp
-
- GENERATED_SOURCES += $$RESOURCE_INIT_CPP
- QMAKE_DISTCLEAN += $$RESOURCE_INIT_CPP
-
- isEmpty(BUILDS)|build_pass {
- RESOURCE_INIT_CONT = \
- "// This file is autogenerated by qmake. It contains a function that" \
- "// references all resources the plugin includes and the function is" \
- "// referenced by Qt_(MOC_)EXPORT_PLUGIN to ensure the inclusion in" \
- "// the statically linked plugin." \
- "$${LITERAL_HASH}include <QtCore/qglobal.h>" \
- "void $${resource_init_function}() " \
- "{" \
-
- for (resource, RESOURCES) {
- resource_name = $$section($$list($$basename(resource)), ., 0, 0)
- resource_name = $$replace(resource_name, [^a-zA-Z0-9_], _)
- RESOURCE_INIT_CONT += " Q_INIT_RESOURCE($$resource_name);"
- }
-
- RESOURCE_INIT_CONT += \
- "}"
-
- write_file($$RESOURCE_INIT_CPP, RESOURCE_INIT_CONT)|error()
- }
-}
+load(resources_functions)
+qtFlattenResources()
+qtEnsurePluginResourcesCpp()
rcc.input = RESOURCES
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
+rcc.CONFIG += add_inputs_as_makefile_deps dep_lines remove_no_exist
!resources_big|ltcg|macx-xcode|wasm|contains(TEMPLATE, "vc.*") {