qmake: Allow extra compilers to have the makefile depend on its inputs
authorTor Arne Vestbø <tor.arne.vestbo@nokia.com>
Thu, 24 Nov 2011 15:03:19 +0000 (16:03 +0100)
committerQt by Nokia <qt-info@nokia.com>
Mon, 28 Nov 2011 12:35:42 +0000 (13:35 +0100)
commitca572a61446ba5cdae523614c874a09347b8e919
treee8631877b07f923487833f9778d06eae8d58b9e8
parentab79c7c092079ee7b3949a7b5ad7ea2faccb1659
qmake: Allow extra compilers to have the makefile depend on its inputs

And enable this configuration option for the resource compiler. This
results in a re-run of qmake whenever you touch a qrc file, which is
needed to keep the dependencies up to date. Otherwise you might end
up in the situation where you add a file to a qrc, edit the file some
time later, but a rebuild does not regenerate a cpp file and compile
that, so the final binary is stale.

Technically this dependency problem is present for all source files,
and qrc files are no different than any cpp file that you add a new
header #include to, or adding a Q_OBJECT macro to a header. To pick
up these changes we have to re-run qmake, so that qmake can run its
internal dependency checking, and any extra compiler dependency
commands.

The reason we're making this change for rcc files it that conceptually
people treat them as a "project" files, and expect them to behave similarly
to .pro or .pri files, in that editing the file will invalidate the
makefile. In practice this is often what happens when adding new
headers, as you touch the project file when changing the HEADERS
variable.

Task-number: QTBUG-13334
Change-Id: If69149678e7fba6d812d31dcc17877427f9a6122
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
mkspecs/features/resources.prf
qmake/generators/makefile.cpp
qmake/generators/makefile.h