diff options
Diffstat (limited to 'mkspecs/features/uic.prf')
-rw-r--r-- | mkspecs/features/uic.prf | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/mkspecs/features/uic.prf b/mkspecs/features/uic.prf new file mode 100644 index 0000000..885fad7 --- /dev/null +++ b/mkspecs/features/uic.prf @@ -0,0 +1,111 @@ + +isEmpty(QMAKE_UIC3) { + win32:QMAKE_UIC3 = $$[QT_INSTALL_BINS]\uic3.exe + else:QMAKE_UIC3 = $$[QT_INSTALL_BINS]/uic3 +} + +isEmpty(QMAKE_UIC) { + win32:QMAKE_UIC = $$[QT_INSTALL_BINS]\uic.exe + else:QMAKE_UIC = $$[QT_INSTALL_BINS]/uic +} + +isEmpty(UI_DIR):UI_DIR = . +isEmpty(UI_SOURCES_DIR):UI_SOURCES_DIR = $$UI_DIR +isEmpty(UI_HEADERS_DIR):UI_HEADERS_DIR = $$UI_DIR +isEmpty(QMAKE_MOD_UIC):QMAKE_MOD_UIC = ui_ + +# Allow FORMS3 to contain old UIC3 forms, while FORMS contains new +# UIC files in the same project. However, if CONFIG+=uic3 and no +# FORMS3 is defined, FORMS may only contain old UIC3 files. + +!uic3|!isEmpty(FORMS3) { + # If we have CONFIG+=uic3 and no FORMS3, then don't do this step, + # as UIC3 files don't need a ui_<formname>.h file + + uic.commands = $$QMAKE_UIC ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT} + uic.depend_command = "$$QMAKE_UIC" -d "${QMAKE_FILE_IN}" + uic.output = $$UI_HEADERS_DIR/$${QMAKE_MOD_UIC}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_H)} + uic.input = FORMS + uic.variable_out = GENERATED_FILES + uic.CONFIG += no_link target_predeps + uic.name = UIC ${QMAKE_FILE_IN} + silent:uic.commands = @echo uic ${QMAKE_FILE_IN} && $$uic.commands + QMAKE_EXTRA_COMPILERS += uic + INCREDIBUILD_XGE += uic +} + +INCLUDEPATH += $$UI_HEADERS_DIR + +uic3 { + isEmpty(FORMS3) { + UIC3_FORMS = FORMS + !build_pass:message("Project contains CONFIG+=uic3, but no files in FORMS3; .ui files in FORMS treated as UIC3 form files.") + } else { + UIC3_FORMS = FORMS3 + } + + uic3_decl.commands = $$QMAKE_UIC3 ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT} + uic3_decl.dependency_type = TYPE_UI + uic3_decl.output = $$UI_HEADERS_DIR/${QMAKE_FILE_BASE}$${first(QMAKE_EXT_H)} + uic3_decl.input = $$UIC3_FORMS + uic3_decl.CONFIG += no_link + uic3_decl.variable_out = GENERATED_FILES UIC3_HEADERS + uic3_decl.name = UIC3 Decl ${QMAKE_FILE_IN} + silent:uic3_decl.commands = @echo uic3 ${QMAKE_FILE_IN} && $$uic3_decl.commands + QMAKE_EXTRA_COMPILERS += uic3_decl + + uic3_impl.commands = $$QMAKE_UIC3 -impl ${QMAKE_FILE_BASE}$${first(QMAKE_EXT_H)} ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT} + uic3_impl.dependency_type = TYPE_UI + uic3_impl.output = $$UI_SOURCES_DIR/${QMAKE_FILE_BASE}$${first(QMAKE_EXT_CPP)} + uic3_impl.depends = $$UI_HEADERS_DIR/${QMAKE_FILE_BASE}$${first(QMAKE_EXT_H)} + uic3_impl.input = $$UIC3_FORMS + uic3_impl.variable_out = GENERATED_SOURCES + uic3_impl.name = UIC3 Impl ${QMAKE_FILE_IN} + silent:uic3_impl.commands = @echo uic3 -impl ${QMAKE_FILE_IN} && $$uic3_impl.commands + QMAKE_EXTRA_COMPILERS += uic3_impl + + ### add a moc step + load(moc) + uic3_moc.commands = $$moc_header.commands + uic3_moc.output = $$moc_header.output + uic3_moc.depends = $$UI_HEADERS_DIR/${QMAKE_FILE_BASE}$${first(QMAKE_EXT_H)} + uic3_moc.input = UIC3_HEADERS + uic3_moc.variable_out = GENERATED_SOURCES + uic3_moc.name = $$moc_header.name + QMAKE_EXTRA_COMPILERS += uic3_moc +} + +defineReplace(imageCollectionCmd) { + unset(EMBEDDED_IMAGES) + RET = + for(image, $$list($$split(1))) { + EMBEDDED_IMAGES += $$image + count(EMBEDDED_IMAGES, 5) { + isEmpty(RET): RET += echo $$EMBEDDED_IMAGES > images.tmp $$escape_expand(\n\t) + else: RET += echo $$EMBEDDED_IMAGES >> images.tmp $$escape_expand(\n\t) + unset(EMBEDDED_IMAGES) + } + } + !isEmpty(EMBEDDED_IMAGES):RET += echo $$EMBEDDED_IMAGES >> images.tmp $$escape_expand(\n\t) + !isEmpty(RET) { + RET += $$QMAKE_UIC3 -embed $$TARGET -f images.tmp -o $$2 $$escape_expand(\n\t) + return($$RET) + } + return($$QMAKE_UIC3 -embed $$TARGET $$1 -o $$2) +} + +image_collection.output = qmake_image_collection$${first(QMAKE_EXT_CPP)} +image_collection.variable_out = SOURCES +image_collection.input = IMAGES +image_collection.CONFIG += combine +image_collection.name = UIC3 Image collection in ${QMAKE_FILE_OUT} +!win32 { + image_collection.commands = $$QMAKE_UIC3 -embed $$TARGET ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT} + silent:image_collection.commands = @echo uic3 -embed ${QMAKE_FILE_IN} && $$image_collection.commands +} else { + image_collection.commands = ${QMAKE_FUNC_imageCollectionCmd} + silent:image_collection.commands = @echo uic3 -embed $$TARGET -f images.tmp && $image_collection.commands +} +QMAKE_EXTRA_COMPILERS += image_collection + + |