17519feadd
while the names of the compilers are actually an undocumented internal, we don't provide an actually working proper way to sequence extra compiler execution with build-time generated inputs when they are indirectly listed (as via .qrc files). Task-number: QTBUG-54299 Change-Id: I269c26512897b72706dc8b769aa47e8157c2a5c5 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
83 lines
2.8 KiB
Plaintext
83 lines
2.8 KiB
Plaintext
#
|
|
# W A R N I N G
|
|
# -------------
|
|
#
|
|
# This file is not part of the Qt API. It exists purely as an
|
|
# implementation detail. It may change from version to version
|
|
# without notice, or even be removed.
|
|
#
|
|
# We mean it.
|
|
#
|
|
|
|
load(moc)
|
|
qtPrepareTool(QMAKE_QDBUSXML2CPP, qdbusxml2cpp)
|
|
|
|
defineReplace(qdbusOutputBasename) {
|
|
return($$lower($$section($$list($$basename(1)),.,-2,-2)))
|
|
}
|
|
|
|
dbus_TYPE = $$upper($$dbus_type)
|
|
|
|
groups =
|
|
for(entry, DBUS_$${dbus_TYPE}S) {
|
|
|
|
files = $$eval($${entry}.files)
|
|
isEmpty(files) {
|
|
files = $$entry
|
|
group = dbus_$${dbus_type}
|
|
} else {
|
|
group = $${entry}_dbus_$${dbus_type}
|
|
}
|
|
groups *= $$group
|
|
|
|
input_list = $$upper($$group)_LIST
|
|
for(subent, $$list($$unique(files))) {
|
|
|
|
!contains(subent, .*\\w\\.xml$) {
|
|
warning("Invalid D-BUS $${dbus_type}: '$$subent', please use 'com.mydomain.myinterface.xml' instead.")
|
|
next()
|
|
}
|
|
|
|
$$input_list += $$subent
|
|
}
|
|
}
|
|
|
|
for(group, groups) {
|
|
GROUP = $$upper($$group)
|
|
input_list = $${GROUP}_LIST
|
|
|
|
# qmake does not keep empty elements in lists, so we reverse-engineer the short name
|
|
grp = $$replace(group, _?dbus_$${dbus_type}\$, )
|
|
isEmpty(grp) {
|
|
hdr_flags = $$eval(QDBUSXML2CPP_$${dbus_TYPE}_HEADER_FLAGS)
|
|
src_flags = $$eval(QDBUSXML2CPP_$${dbus_TYPE}_SOURCE_FLAGS)
|
|
} else {
|
|
hdr_flags = $$eval($${grp}.header_flags)
|
|
src_flags = $$eval($${grp}.source_flags)
|
|
}
|
|
|
|
$${group}_header.commands = $$QMAKE_QDBUSXML2CPP $$hdr_flags $$qdbusxml2cpp_option ${QMAKE_FILE_OUT}: ${QMAKE_FILE_IN}
|
|
$${group}_header.depends += $$QMAKE_QDBUSXML2CPP_EXE
|
|
$${group}_header.output = ${QMAKE_FUNC_FILE_IN_qdbusOutputBasename}_$${dbus_type}.h
|
|
$${group}_header.name = DBUSXML2CPP $${dbus_TYPE} HEADER ${QMAKE_FILE_IN}
|
|
$${group}_header.variable_out = $${GROUP}_HEADERS
|
|
$${group}_header.input = $$input_list
|
|
|
|
$${group}_source.commands = $$QMAKE_QDBUSXML2CPP -i ${QMAKE_FILE_OUT_BASE}.h $$src_flags $$qdbusxml2cpp_option :${QMAKE_FILE_OUT} ${QMAKE_FILE_IN}
|
|
$${group}_source.depends += $$QMAKE_QDBUSXML2CPP_EXE
|
|
$${group}_source.output = ${QMAKE_FUNC_FILE_IN_qdbusOutputBasename}_$${dbus_type}.cpp
|
|
$${group}_source.name = DBUSXML2CPP $${dbus_TYPE} SOURCE ${QMAKE_FILE_IN}
|
|
$${group}_source.variable_out = SOURCES
|
|
$${group}_source.input = $$input_list
|
|
$${group}_source.depends += $$eval($${group}_header.output) # this actually belongs to the object file
|
|
|
|
$${group}_moc.commands = $$moc_header.commands
|
|
$${group}_moc.depends += $$QMAKE_MOC_EXE
|
|
$${group}_moc.output = $$moc_header.output
|
|
$${group}_moc.input = $${GROUP}_HEADERS
|
|
$${group}_moc.variable_out = GENERATED_SOURCES
|
|
$${group}_moc.name = $${GROUP}_$$moc_header.name
|
|
|
|
QMAKE_EXTRA_COMPILERS += $${group}_header $${group}_source $${group}_moc
|
|
}
|