Property Sets is a huge new feature in FinalBuilder 4. It's a real time saver and greatly improves the readability and maintainability of your build process! The rationale behind property sets was that probably our most frequently asked question was along the lines of:
“How do I set the version information of all the modules in my product to be the same, including sycronisation and incrementing of version numbers”
Our answer for this has been to use script in the BeforeAction events of the compiler actions, and we even have an article explaining how to do it. But that is so old-skool in FinalBuilder 4, as we've introduced PropertySets which do all the hard work for you! :)
Here are the available PropertySet actions:
Here's how they work - you use a PropertySet define action, which allows you to give a property set a name and you get to choose the type. A property set is basically a whole bunch of values which are held together by this PropertySet, an example is the Win32 Version Numbers type which contains: MajorVersion, MinorVersion, ReleaseVersion, BuildVersion integer values. Then you can load that property set from somewhere, for example an INI file, the registry, the FinalBuilder project version number file (FBD) or you can assign the values using other FinalBuilder variables. After you load the property set you may also want to increment a value in it using the PropertySet increment value action.
Then you can use this property set in other actions, for example the Build VC6 action:
Notice all the greyed out fields - these will be automatically set using the Property Set “MyVersionInfo“. And you can use this property set in all your other compiler actions, and elsewhere too. For example you might want to generate a filename based on version numbers - easy, use the PropertySet to Variable action which allows you to combine property set values in any order with other text to create the filename.
When you're done with the property set you'll probably want to persist it somehow - save to INI, FBD, registry or directly access the items of the property sets like variables and save them using some other means.
So, there you have it - a very brief overview of PropertySets. PropertySets really do save a lot of time and it gets rid of heaps of script code all throughout your project, at the same time making it easy to load and persist version information and applying a common set of version information to all the various modules during the build process.