From 17519feadd7309e125cc64bbac83f73b758c6a60 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 23 Jun 2016 11:50:39 +0200 Subject: [PATCH] don't override user-provided dependencies for our extra compilers 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 --- mkspecs/features/dbuscommon.pri | 8 ++++---- mkspecs/features/qgltf.prf | 2 +- mkspecs/features/qlalr.prf | 8 ++++---- mkspecs/features/resources.prf | 2 +- mkspecs/features/uic.prf | 2 +- mkspecs/features/wayland-scanner.prf | 8 ++++---- mkspecs/features/win32/dumpcpp.prf | 6 +++--- mkspecs/features/yacc.prf | 2 +- 8 files changed, 19 insertions(+), 19 deletions(-) diff --git a/mkspecs/features/dbuscommon.pri b/mkspecs/features/dbuscommon.pri index d836b253dc4..cadcd46d61b 100644 --- a/mkspecs/features/dbuscommon.pri +++ b/mkspecs/features/dbuscommon.pri @@ -57,22 +57,22 @@ for(group, groups) { } $${group}_header.commands = $$QMAKE_QDBUSXML2CPP $$hdr_flags $$qdbusxml2cpp_option ${QMAKE_FILE_OUT}: ${QMAKE_FILE_IN} - $${group}_header.depends = $$QMAKE_QDBUSXML2CPP_EXE + $${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.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}_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.depends += $$QMAKE_MOC_EXE $${group}_moc.output = $$moc_header.output $${group}_moc.input = $${GROUP}_HEADERS $${group}_moc.variable_out = GENERATED_SOURCES diff --git a/mkspecs/features/qgltf.prf b/mkspecs/features/qgltf.prf index 4a6d16f5201..e3a5c64e320 100644 --- a/mkspecs/features/qgltf.prf +++ b/mkspecs/features/qgltf.prf @@ -5,7 +5,7 @@ isEmpty(QGLTF_DIR): QGLTF_DIR = . qgltf.input = QT3D_MODELS qgltf.output = $$QGLTF_DIR/${QMAKE_FILE_BASE}.qrc qgltf.variable_out += RESOURCES -qgltf.depends = $$QMAKE_QGLTF_EXE +qgltf.depends += $$QMAKE_QGLTF_EXE qgltf.commands = $$QMAKE_QGLTF -d $$QGLTF_DIR $$QGLTF_PARAMS ${QMAKE_FILE_NAME} silent: qgltf.commands = @echo qgltf ${QMAKE_FILE_IN} && $$qgltf.commands -s qgltf.CONFIG += no_link diff --git a/mkspecs/features/qlalr.prf b/mkspecs/features/qlalr.prf index 5f0f3794cb9..941bfe0d9f6 100644 --- a/mkspecs/features/qlalr.prf +++ b/mkspecs/features/qlalr.prf @@ -23,7 +23,7 @@ for (s, QLALRSOURCES) { $${base}.input = $$invar $${base}.output = $$QLALR_DIR/$${parser}.cpp $${base}.variable_out = GENERATED_SOURCES - $${base}.depends = $$QMAKE_QLALR_EXE + $${base}.depends += $$QMAKE_QLALR_EXE $${base}.commands = $$QMAKE_QLALR $$QMAKE_QLALRFLAGS ${QMAKE_FILE_IN} silent: $${base}.commands = @echo qlalr ${QMAKE_FILE_IN} && $${base}.commands $${base}.name = QLALR ${QMAKE_FILE_IN} @@ -31,19 +31,19 @@ for (s, QLALRSOURCES) { $${base}_h.input = $$invar $${base}_h.output = $$QLALR_DIR/$${parser}_p.h $${base}_h.CONFIG = no_link - $${base}_h.depends = $$QLALR_DIR/$${parser}.cpp + $${base}_h.depends += $$QLALR_DIR/$${parser}.cpp $${base}_h.commands = $$escape_expand(\\n) # force creation of rule $${base}_decl.input = $$invar $${base}_decl.output = $$QLALR_DIR/$${decl} $${base}_decl.CONFIG = no_link - $${base}_decl.depends = $$QLALR_DIR/$${parser}.cpp + $${base}_decl.depends += $$QLALR_DIR/$${parser}.cpp $${base}_decl.commands = $$escape_expand(\\n) # force creation of rule $${base}_impl.input = $$invar $${base}_impl.output = $$QLALR_DIR/$${impl} $${base}_impl.variable_out = GENERATED_SOURCES - $${base}_impl.depends = $$QLALR_DIR/$${parser}.cpp + $${base}_impl.depends += $$QLALR_DIR/$${parser}.cpp $${base}_impl.commands = $$escape_expand(\\n) # force creation of rule QMAKE_EXTRA_COMPILERS += $$base $${base}_h $${base}_decl $${base}_impl diff --git a/mkspecs/features/resources.prf b/mkspecs/features/resources.prf index 6d0a3187d87..ec70f49ce13 100644 --- a/mkspecs/features/resources.prf +++ b/mkspecs/features/resources.prf @@ -103,7 +103,7 @@ rcc.clean += $$RCC_CPP $$RCC_TMP } -rcc.depends = $$QMAKE_RCC_EXE +rcc.depends += $$QMAKE_RCC_EXE silent:rcc.commands = @echo rcc ${QMAKE_FILE_IN} && $$rcc.commands else:rcc.commands ~= s/&&/$$escape_expand(\\n\\t)/g QMAKE_EXTRA_COMPILERS += rcc diff --git a/mkspecs/features/uic.prf b/mkspecs/features/uic.prf index e6d8b9cc837..ca8283920a6 100644 --- a/mkspecs/features/uic.prf +++ b/mkspecs/features/uic.prf @@ -3,7 +3,7 @@ qtPrepareTool(QMAKE_UIC, uic, _DEP) isEmpty(UI_DIR):UI_DIR = . isEmpty(QMAKE_MOD_UIC):QMAKE_MOD_UIC = ui_ -uic.depends = $$QMAKE_UIC_EXE +uic.depends += $$QMAKE_UIC_EXE uic.commands = $$QMAKE_UIC ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT} uic.depend_command = $$QMAKE_UIC_DEP -d ${QMAKE_FILE_IN} uic.output = $$UI_DIR/$${QMAKE_MOD_UIC}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_H)} diff --git a/mkspecs/features/wayland-scanner.prf b/mkspecs/features/wayland-scanner.prf index ce833f1c08f..7319392d859 100644 --- a/mkspecs/features/wayland-scanner.prf +++ b/mkspecs/features/wayland-scanner.prf @@ -78,7 +78,7 @@ qtPrepareTool(QMAKE_QTWAYLANDSCANNER, qtwaylandscanner) qtwayland_client_header.name = qtwayland ${QMAKE_FILE_BASE} qtwayland_client_header.input = WAYLANDCLIENTSOURCES qtwayland_client_header.variable_out = HEADERS -qtwayland_client_header.depends = $$QMAKE_QTWAYLANDSCANNER_EXE $${WAYLAND_CLIENT_HEADER_DEST}wayland-${QMAKE_FILE_BASE}-client-protocol$${first(QMAKE_EXT_H)} +qtwayland_client_header.depends += $$QMAKE_QTWAYLANDSCANNER_EXE $${WAYLAND_CLIENT_HEADER_DEST}wayland-${QMAKE_FILE_BASE}-client-protocol$${first(QMAKE_EXT_H)} qtwayland_client_header.output = $${WAYLAND_CLIENT_HEADER_DEST}qwayland-${QMAKE_FILE_BASE}$${first(QMAKE_EXT_H)} qtwayland_client_header.commands = $$QMAKE_QTWAYLANDSCANNER client-header ${QMAKE_FILE_IN} $$WAYLAND_CLIENT_INCLUDE_DIR > ${QMAKE_FILE_OUT} silent:qtwayland_client_header.commands = @echo QtWayland client header ${QMAKE_FILE_IN} && $$qtwayland_client_header.commands @@ -87,7 +87,7 @@ QMAKE_EXTRA_COMPILERS += qtwayland_client_header qtwayland_client_code.name = qtwayland ${QMAKE_FILE_BASE} qtwayland_client_code.input = WAYLANDCLIENTSOURCES qtwayland_client_code.variable_out = SOURCES -qtwayland_client_code.depends = $$QMAKE_QTWAYLANDSCANNER_EXE $${WAYLAND_CLIENT_HEADER_DEST}qwayland-${QMAKE_FILE_BASE}$${first(QMAKE_EXT_H)} +qtwayland_client_code.depends += $$QMAKE_QTWAYLANDSCANNER_EXE $${WAYLAND_CLIENT_HEADER_DEST}qwayland-${QMAKE_FILE_BASE}$${first(QMAKE_EXT_H)} qtwayland_client_code.output = qwayland-${QMAKE_FILE_BASE}.cpp qtwayland_client_code.commands = $$QMAKE_QTWAYLANDSCANNER client-code ${QMAKE_FILE_IN} $$WAYLAND_CLIENT_INCLUDE_DIR > ${QMAKE_FILE_OUT} silent:qtwayland_client_code.commands = @echo QtWayland client code ${QMAKE_FILE_IN} && $$qtwayland_client_code.commands @@ -96,7 +96,7 @@ QMAKE_EXTRA_COMPILERS += qtwayland_client_code qtwayland_server_header.name = qtwayland ${QMAKE_FILE_BASE} qtwayland_server_header.input = WAYLANDSERVERSOURCES qtwayland_server_header.variable_out = HEADERS -qtwayland_server_header.depends = $$QMAKE_QTWAYLANDSCANNER_EXE $${WAYLAND_SERVER_HEADER_DEST}wayland-${QMAKE_FILE_BASE}-server-protocol$${first(QMAKE_EXT_H)} +qtwayland_server_header.depends += $$QMAKE_QTWAYLANDSCANNER_EXE $${WAYLAND_SERVER_HEADER_DEST}wayland-${QMAKE_FILE_BASE}-server-protocol$${first(QMAKE_EXT_H)} qtwayland_server_header.output = $${WAYLAND_SERVER_HEADER_DEST}qwayland-server-${QMAKE_FILE_BASE}$${first(QMAKE_EXT_H)} qtwayland_server_header.commands = $$QMAKE_QTWAYLANDSCANNER server-header ${QMAKE_FILE_IN} $$WAYLAND_SERVER_INCLUDE_DIR > ${QMAKE_FILE_OUT} silent:qtwayland_server_header.commands = @echo QtWayland server header ${QMAKE_FILE_IN} && $$qtwayland_server_header.commands @@ -105,7 +105,7 @@ QMAKE_EXTRA_COMPILERS += qtwayland_server_header qtwayland_server_code.name = qtwayland ${QMAKE_FILE_BASE} qtwayland_server_code.input = WAYLANDSERVERSOURCES qtwayland_server_code.variable_out = SOURCES -qtwayland_server_code.depends = $$QMAKE_QTWAYLANDSCANNER_EXE $${WAYLAND_SERVER_HEADER_DEST}qwayland-server-${QMAKE_FILE_BASE}$${first(QMAKE_EXT_H)} +qtwayland_server_code.depends += $$QMAKE_QTWAYLANDSCANNER_EXE $${WAYLAND_SERVER_HEADER_DEST}qwayland-server-${QMAKE_FILE_BASE}$${first(QMAKE_EXT_H)} qtwayland_server_code.output = qwayland-server-${QMAKE_FILE_BASE}.cpp qtwayland_server_code.commands = $$QMAKE_QTWAYLANDSCANNER server-code ${QMAKE_FILE_IN} $$WAYLAND_SERVER_INCLUDE_DIR > ${QMAKE_FILE_OUT} silent:qtwayland_server_code.commands = @echo QtWayland server code ${QMAKE_FILE_IN} && $$qtwayland_server_code.commands diff --git a/mkspecs/features/win32/dumpcpp.prf b/mkspecs/features/win32/dumpcpp.prf index eb2e84d753e..c8cb0dd24b6 100644 --- a/mkspecs/features/win32/dumpcpp.prf +++ b/mkspecs/features/win32/dumpcpp.prf @@ -1,6 +1,6 @@ qtPrepareTool(QMAKE_DUMPCPP, dumpcpp) -dumpcpp_decl.depends = $$QMAKE_DUMPCPP_EXE +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 @@ -17,7 +17,7 @@ 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 +dumpcpp_impl.depends += ${QMAKE_FILE_BASE}.h QMAKE_EXTRA_COMPILERS += dumpcpp_impl @@ -31,6 +31,6 @@ if(isEmpty(BUILDS)|build_pass):have_target:!contains(TEMPLATE, vc.*) { } objtgt.target = $(OBJECTS) - objtgt.depends = $$TYPELIB_HEADERS + objtgt.depends += $$TYPELIB_HEADERS QMAKE_EXTRA_TARGETS += objtgt } diff --git a/mkspecs/features/yacc.prf b/mkspecs/features/yacc.prf index e78dd8cbb38..915fbf6850f 100644 --- a/mkspecs/features/yacc.prf +++ b/mkspecs/features/yacc.prf @@ -36,7 +36,7 @@ yacc_impl.input = YACCSOURCES yacc_impl.variable_out = GENERATED_SOURCES yacc_impl.commands = $$escape_expand(\\n) # We don't want any commands where, but if command is empty no rules are created - yacc_impl.depends = $${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}$${QMAKE_MOD_YACC}$${first(QMAKE_EXT_H)} # Make sure we depend on the step above + yacc_impl.depends += $${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}$${QMAKE_MOD_YACC}$${first(QMAKE_EXT_H)} # Make sure we depend on the step above yacc_impl.output = $${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}$${QMAKE_MOD_YACC}$${first(QMAKE_EXT_CPP)} # Faked output from this step, output really created in step above QMAKE_EXTRA_COMPILERS += yacc_impl }