qskinny/features/qskqvg.prf

84 lines
2.7 KiB
Plaintext
Raw Normal View History

2020-05-23 19:29:20 +02:00
##############################################################################
# rules to create qvg from svg files
##############################################################################
SVG2QVG=$$shell_path($${QSK_OUT_ROOT}/tools/bin/svg2qvg)
QVG_DIR=qvg
svg2qvg.name = SVG compiler
svg2qvg.input = SVGSOURCES
svg2qvg.output = $${QVG_DIR}/${QMAKE_FILE_BASE}.qvg
svg2qvg.variable_out =
svg2qvg.commands += ($$sprintf($${QMAKE_MKDIR_CMD}, $${QVG_DIR})) && $${SVG2QVG} ${QMAKE_FILE_IN} $${svg2qvg.output}
QMAKE_EXTRA_COMPILERS += svg2qvg
##############################################################################
# When using qvg files, that have to be generated from svg files, as resource,
##############################################################################
qvgrcc.name = RCC compiler
qvgrcc.input = QVGRESOURCES
qvgrcc.output = $${RCC_DIR}/qrc_${QMAKE_FILE_BASE}.cpp
qvgrcc.variable_out = SOURCES
qvgrcc.CONFIG += add_inputs_as_makefile_deps
# Paths inside a qrc file are always relative to the path of the
# qrc file itself. So in case of shadow builds we need to copy the
# qrc file into the shadow directory as the included qvg files
# are generated there.
QRC_SHADOW_CLONE = $$shell_path( $${OUT_PWD}/${QMAKE_FILE_BASE}_shadow.qrc )
qtPrepareTool(QMAKE_RCC, rcc, _DEP)
lessThan(QT_MAJOR_VERSION, 6): lessThan(QT_MINOR_VERSION, 12) {
# Since Qt 5.12 "rcc --list" works for qvg files, that do not yet exist
# To get these rules working for earlier versions we derive the qvg
# files from the SVGSOURCES
defineReplace(qvgfiles) {
svgfiles = $$1
files =
for( svgfile, svgfiles) {
filename = $$basename( svgfile )
files += $$shell_path( $${QVG_DIR}/$$replace( filename, svg, qvg ) )
}
return( $$files )
}
qvgrcc.depends += $$qvgfiles( $${SVGSOURCES} )
} else {
equals( OUT_PWD, $${_PRO_FILE_PWD_} ) {
qvgrcc.depend_command = $$QMAKE_RCC_DEP -list $$QMAKE_RESOURCE_FLAGS ${QMAKE_FILE_IN}
} else {
qvgrcc.depend_command = \
$${QMAKE_COPY} ${QMAKE_FILE_IN} $${QRC_SHADOW_CLONE} && \
$$QMAKE_RCC_DEP -list $$QMAKE_RESOURCE_FLAGS $${QRC_SHADOW_CLONE} && \
$${QMAKE_DEL_FILE} $${QRC_SHADOW_CLONE}
}
}
equals( OUT_PWD, $${_PRO_FILE_PWD_} ) {
qvgrcc.commands = $$QMAKE_RCC $$QMAKE_RESOURCE_FLAGS ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
} else {
qvgrcc.commands = \
$${QMAKE_COPY} ${QMAKE_FILE_IN} $${QRC_SHADOW_CLONE} && \
$$QMAKE_RCC $$QMAKE_RESOURCE_FLAGS $${QRC_SHADOW_CLONE} -o ${QMAKE_FILE_OUT} && \
$${QMAKE_DEL_FILE} $${QRC_SHADOW_CLONE}
}
QMAKE_EXTRA_COMPILERS += qvgrcc