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



Reply via email to