Inconsistent builds with Subdirs Project and switching devices
I have a project that is to be compiled as a Desktop or a Ios application. My subdirs project contains this:
TEMPLATE = subdirs
CONFIG += ordered
SUBDIRS = ../Underworld ../EngineOGL ../Ankh@
When I switch between devices and hit "rebuild", I am seeing the build files "get stuck" on the previous device. For example, if I compile as Ios for a while, everything seems to be fine. But when I switch to Desktop, I sometimes catch the compiler not building the desktop libraries, but continuing to build the Ios version. After several rebuilds, cleans and waving a dead chicken over my computer, my application will eventually build the right version.
Does anyone have any idea why simply rebuilding isn't working consistently?
That should work reliably. The problem (most probably) is in outdated Makefiles, and to update them you need to run qmake.
Just a wild guess, does it also happen if you remove the cache() line ?
There's also something a bit surprising in your setup, subdirs project generally have their subdirs in the same folder as the pro file which defines the subdirs template.
It appears your solution works so far. Makes sense what was going on now.
Thanks for your help!
Another way might be to use shadow building option from Qt Creator (that may save a lot of time during project building), but I'm not sure as I don't use it.
The general idea behind shadow builds is that all Kit setups get a separate build directory, and so when switching between Kits you do not need to recompile everything.
sierdzio has a good point about shadow building, especially when you're cross-compiling (or using several different versions of Qt)