qtPrepareTool(QMAKE_DUMPCPP, dumpcpp) dumpcpp_decl.depends += $$QMAKE_DUMPCPP_EXE dumpcpp_decl.commands = $$QMAKE_DUMPCPP ${QMAKE_FILE_IN} -o ${QMAKE_FILE_BASE} qaxcontainer_compat: dumpcpp_decl.commands += -compat dumpcpp_decl.output = ${QMAKE_FILE_BASE}.h dumpcpp_decl.input = TYPELIBS dumpcpp_decl.variable_out = HEADERS dumpcpp_decl.name = DUMP dumpcpp_decl.CONFIG += no_link QMAKE_EXTRA_COMPILERS += dumpcpp_decl dumpcpp_impl.commands = $$escape_expand(\\n) # dummy command dumpcpp_impl.output = ${QMAKE_FILE_BASE}.cpp dumpcpp_impl.input = TYPELIBS dumpcpp_impl.variable_out = SOURCES dumpcpp_impl.name = CPP dumpcpp_impl.depends += ${QMAKE_FILE_BASE}.h QMAKE_EXTRA_COMPILERS += dumpcpp_impl # Call dumpcpp the first time if the files do not exist to help find dependencies !build_pass:have_target:!contains(TEMPLATE, vc.*) { for(tlb, TYPELIBS) { tlbCopy = $$replace(tlb, \", ) hdr = $$basename(tlbCopy) hdr = $$section(hdr, ., 0, -2) tmp_command = $$QMAKE_DUMPCPP $$system_quote($$absolute_path($$tlbCopy, $$_PRO_FILE_PWD_)) \ -o $$system_quote($$OUT_PWD/$$hdr) qaxcontainer_compat: tmp_command += -compat !exists($$OUT_PWD/$${hdr}.h): system($$tmp_command) } }