I can ask Delphi to build all configurations at once - by clicking on "Build configurations" and invoking "Make" command:
(source: free.fr)
This will build all configurations, one after another.
The problem is that we have an IDE expert, which must react on compilation events. We register IOTAIDENotifier80 to hook events. There are BeforeBuild and AfterBuild events - we're interested in those. IOTAProject is passed to each event.
The problem is: the active configuration is never changed. I.e. if you have "Debug" configuration selected (maked in bold) - all calls to BeforeBuild/AfterBuild events will return debug configuration profile (even though IDE compiles different profiles one after another). I mean properties of IOTAProject here.
I also tried to use IOTAProjectOptionsConfigurations, but its ActiveConfiguration property always return the same "bolded" profile, regardless of current compiled one.
The question is: is there a way to get the "real" current profile?
This isn't exactly an answer to the problem. It is a workaround.
It's not a great option, but here is what I do. I've got a small command line utility to edit XML files where I pass an XPath and new value and a filename. I use this to modify the .dproj file. This lets me set the active configuration do debug, release, etc. Once the file has been modified I call bds.exe with the appropriate command line switched to compile the active configuration. While not as convenient as right clicking and picking 'Make', once it is setup it is as simple as running a batch.
I've not tested how this interacts with an IDE Expert, but you can easily test if this plan will work for you by modifying the .dproj file by hand. Once you know if it will work for you, you can create the batch and XML editor if needed.