summaryrefslogtreecommitdiffstats
path: root/mkspecs
diff options
context:
space:
mode:
Diffstat (limited to 'mkspecs')
-rw-r--r--mkspecs/features/resources.prf22
1 files changed, 17 insertions, 5 deletions
diff --git a/mkspecs/features/resources.prf b/mkspecs/features/resources.prf
index d8fae77c4b..cd00aba90f 100644
--- a/mkspecs/features/resources.prf
+++ b/mkspecs/features/resources.prf
@@ -3,15 +3,27 @@ qtPrepareTool(QMAKE_RCC, rcc, _DEP)
isEmpty(RCC_DIR):RCC_DIR = .
isEmpty(QMAKE_MOD_RCC):QMAKE_MOD_RCC = qrc
-rcc.output = $$RCC_DIR/$${first(QMAKE_MOD_RCC)}_${QMAKE_FILE_BASE}$${first(QMAKE_EXT_CPP)}
!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}
-rcc.commands = $$QMAKE_RCC $$QMAKE_RESOURCE_FLAGS ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
-rcc.depend_command = $$QMAKE_RCC_DEP -list $$QMAKE_RESOURCE_FLAGS ${QMAKE_FILE_IN}
-rcc.CONFIG += add_inputs_as_makefile_deps
+isEmpty(RCC_CXX):RCC_CXX = $$QMAKE_CXX $(CXXFLAGS)
+RCC_OUT_BASE = $$RCC_DIR/$${first(QMAKE_MOD_RCC)}_${QMAKE_FILE_BASE}
+RCC_CPP = $$RCC_OUT_BASE$${first(QMAKE_EXT_CPP)}
+RCC_TMP = $${RCC_OUT_BASE}.tmp$${first(QMAKE_EXT_OBJ)}
+RCC_OBJ = $$RCC_OUT_BASE$${first(QMAKE_EXT_OBJ)}
+
+msvc: RCC_CXX_O_FLAG = "-Fo"
+else: RCC_CXX_O_FLAG = "-o "
+
rcc.input = RESOURCES
-rcc.variable_out = SOURCES
+rcc.CONFIG += add_inputs_as_makefile_deps
rcc.name = RCC ${QMAKE_FILE_IN}
+rcc.output = $$RCC_OBJ
+rcc.depend_command = $$QMAKE_RCC_DEP -list $$QMAKE_RESOURCE_FLAGS ${QMAKE_FILE_IN}
+rcc.commands = \
+ $$QMAKE_RCC $$QMAKE_RESOURCE_FLAGS ${QMAKE_FILE_IN} -pass 1 -o $$RCC_CPP && \
+ $$RCC_CXX -c $$RCC_CPP $$RCC_CXX_O_FLAG$$RCC_TMP && \
+ $$QMAKE_RCC $$QMAKE_RESOURCE_FLAGS ${QMAKE_FILE_IN} -pass 2 -temp $$RCC_TMP -o ${QMAKE_FILE_OUT}
+rcc.clean += $$RCC_CPP $$RCC_TMP
silent:rcc.commands = @echo rcc ${QMAKE_FILE_IN} && $$rcc.commands
QMAKE_EXTRA_COMPILERS += rcc