Here's my problem. I have several dozen projects, each of which contain the same VIs (more or less) but are for different hardware configurations. In particular, they all contain 1) a PXI target that contains a unique EtherCAT configuration, 2) a unique startup VI that should run on the PXI, and 3) other peripherals that may have build specifications as well (e.g. FPGAs). Occasionally I need to make a change to the way our code builds, and that means I need to open every single project to make the change. Since the projects are very large, this takes a long time.
My solution is to create a separate program whose job will be to open the selected project, create build specifications with the settings that are common across all the projects, allow the user to select unique aspects such as the startup VI for the PXI, and build any/all other build specifications necessary for the selected project.
I found here a topic disucssing modifying build specifications programmatically, but since I want to create a build specification, I would need to know what every single tag is, how it is used, what its allowed values are, etc. Is there some documentation I can refer to for this? Or better yet an example VI that someone has already put together?
You could try using the Application Builder API that ships with LabVIEW like dems mentioned. That's probably going to be your best bet, although it will not help with FPGA build specs. Unless something has changed recently, FPGA uses an entirely different method for building specs that are not included in the App Builder API. However, there are a couple forum threads out there, which may provided some information on how the FPGA builds work.
You'll probably mainly just find VIs that do building and not creating of build specs, but those answers may point you to some VIs that will allow you to create the specs. Please note that neither the App Builder API nor any other build VIs you find in vi.lib that are not on the LabVIEW palettes are not officially supported by NI, so you'll likely be on your own.
The application builder API was so close to what I needed, but unfortunately it can't be used to build real-time applications in LabView 2013. It looks like my best bet is going to be to edit the XML for the build specs in the project file directly. Oh well.