In my CC configuration, I have two main types of projects: libraries and applications. DLLs and EXEs essentially. I would like a CC setup where:
1- All libraries belong to the same queue, so only one library can build at a time. 2- When something in the library queue is building, all application projects should be locked. EXEs should not build until the DLL queue is empty 3- The EXEs are independent of each other, so they can build in parallel. I can get this behavior in CC 1.4 by creating one queue for the libraries, and telling it to lock all of the EXE projects by name. But it is cumbersome to maintain as the number of EXEs projects grow. <queue name="DLL" lockqueues="Foo,Bar,Baz"/> # keep appending to this list for every new EXE <project name="library1" queue="DLL" /> <project name="library2" queue="DLL" /> <project name="Foo" /> # builds Foo.exe <project name="Bar" /> # builds Bar.exe <project name="Baz" /> # builds Baz.exe I can create a less cumbersome setup by putting all the EXEs into the same queue. The DLL queue would lock the EXE queue. This is easier to maintain, but now the EXEs don't build in parallel. What I would like to see is a new type of collection; a parallel bag really. Other queues could lock out the entire bag, but projects within the bag would build in parallel. The xml might look like this: <queue name="DLL" locks="EXE"/> <bag name="EXE" /> <project name="library1" queue="DLL" /> <project name="library2" queue="DLL" /> <project name="Foo" bag="EXE"/> <project name="Bar" bag="EXE"/> <project name="Baz" bag="EXE"/> Xml purists would maybe want to clean this up a bit. H^2
