1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
# Detect repc when QtRO is installed into non-Qt prefix
cmd = $${QT.remoteobjects.bins}/repc
contains(QMAKE_HOST.os, Windows) {
cmd = $$system_path($${cmd}.exe)
}
exists($$cmd): QT_TOOL.repc.binary = $$cmd
# qtPrepareLibExecTool honors QT_TOOL.repc.binary if set
qtPrepareLibExecTool(QMAKE_REPC, repc)
REPC_INCLUDEPATHES = $$QT.remoteobjects.includes
for (path, REPC_INCLUDEPATHES) {
REPC_INCLUDEPATH += -I $$path
}
isEmpty(QMAKE_MOD_REPC):QMAKE_MOD_REPC = rep_
repc_TYPE = $$upper($$repc_type)
load(moc)
groups =
for(entry, REPC_$$repc_TYPE) {
files = $$eval($${entry}.files)
isEmpty(files) {
files = $$entry
group = repc_$${repc_type}
} else {
group = $${entry}_repc_$${repc_type}
}
groups *= $$group
input_list = $$upper($$group)_LIST
json_list = $$upper($$group)_JSONLIST
for(subent, $$list($$unique(files))) {
if (contains(subent, .*\\.h$)|contains(subent, .*\\.hpp$)) {
$$json_list += $$subent
} else {
$$input_list += $$subent
}
# Add directory of *.rep file to include path
file_path = $$_PRO_FILE_PWD_/$$subent
INCLUDEPATH *= $$dirname(file_path)
}
}
for(group, groups) {
GROUP = $$upper($$group)
input_list = $${GROUP}_LIST
json_list = $${GROUP}_JSONLIST
qtPrepareLibExecTool(MOC_CREATE_JSON, moc)
$${group}_moc_json.output = ${QMAKE_FILE_BASE}.json
$${group}_moc_json.CONFIG = no_link moc_verify
$${group}_moc_json.commands = $$MOC_CREATE_JSON -o ${QMAKE_FILE_BASE} ${QMAKE_FILE_NAME} --output-json
$${group}_moc_json.depends = ${QMAKE_FILE_NAME}
$${group}_moc_json.input = $$json_list
$${group}_moc_json.variable_out = MOC_JSON
$${group}_header.output = $$QMAKE_MOD_REPC${QMAKE_FILE_BASE}_$${repc_type}.h
$${group}_header.commands = $$QMAKE_REPC $$repc_option $$REPC_INCLUDEPATH ${QMAKE_FILE_NAME} ${QMAKE_FILE_OUT}
$${group}_header.depends = ${QMAKE_FILE_NAME} $$QT_TOOL.repc.binary
$${group}_header.variable_out = $${GROUP}_HEADERS
$${group}_header.input = $$input_list MOC_JSON
$${group}_moc.commands = $$moc_header.commands $$REPC_INCLUDEPATH
$${group}_moc.output = $$moc_header.output
$${group}_moc.input = $${GROUP}_HEADERS
$${group}_moc.variable_out = GENERATED_SOURCES
!contains(TEMPLATE, vc.*): \
$${group}_moc.name = $$moc_header.name
QMAKE_EXTRA_COMPILERS += $${group}_moc_json $${group}_header $${group}_moc
}
|