Details
-
Bug
-
Resolution: Out of scope
-
P3: Somewhat important
-
None
-
None
Description
On Unix, `make -q' is supposed to indicate whether or not a rule needs rebuilding.
This generally works on qmake-generated makefiles.
However, if a .pro file uses requires() on a condition which evaluates to false, the stub makefile
generated always causes `make -q' to claim the makefile's target is out of date. This makes `make -q'
unusable on a large project containing some disabled subdirectories (e.g., Qt).
This problem makes Qtopia's qbuild repeatedly rebuild all of Qtopia,
as it uses `make -q' to determine if Qt has changed.
Testcase:
1. Create an empty directory
2. Create a .pro file in that directory with these contents: requires(false)
3. Run qmake
4. Run make; it should complete successfully with this output:
Some of the required modules (false) are not available.
Skipped.
5. Run make -q.
Expected results: exits with a 0 exit code (up-to-date).
Actual results: exits with an exit code of 1.