Introduction
Sometimes development projects grow huge. You might have multiple workspaces with project dependencies and pragma-linking requiring a specific build order.
This little AddIn lets you define an arbitrary build order for your projects.
Background
The code is based on the sample AddIn called AutoBld that comes with VC6. The main enhancement is that you now can change the build order for each project whereas the AutoBld AddIn only allows to set up a build order for Workspaces.
Installation
Simply put the binary into your %MSDevDir%\AddIns folder and enable it in the Tools | Customize | AddIns & Macros dialog.
Usage
The AddIn installs a toolbar with two icons.
The first button "Configure" opens the configuration dialog:
The configuration dialog lets you specify mail settings to execute when a project or configuration has finished building. You can also chose to close DevStudio, Log off or shut the computer down after all comfigurations have finished building.
Through the "Projects To Build" you can specify the projects that will be built for each configuration. That is also where you can set up the order in which the projects will be built.
The second button "Run" lets you choose the build settings:
Chose the build type and enable the configurations you wish to build, then hit OK to start the build process.
Implementation
There is one subtlety to the implementation: After the Build command is issued to DevStudio via its IApplication interface you can watch the output window and see that the project has long finished building. Nevertheless, DevStudio won't send the BuildFinished event - no matter how long you wait. The current implementation tries to force the dispatching of the BuildFinish event by re-issuing the Build command for the "hung" project. If anyone could point me to a better strategy I would surely appreciate it.