Eclipse based IDE’s have a powerful feature to make ‘variants’ of the same projects: Build Configurations. Build configurations are a powerful thing in Eclipse: they allow me to make ‘variants’ of a project. The project will share the common things, and I can simply tweak things one way or the other for example to produce a ‘release’ or a ‘debug’ binary of my application without duplicate the project.
Build configurations are manged through either the context menu on the project or with the top menu:
I’m showing in this post screenshots from NXP Kinetis Design Studio V3.2.0, but things are applicable to pretty much any Eclipse based IDE.
💡 Build configurations only apply to the build settings, and not to the debug settings.
With the ‘Manage’ option I can manage my configurations:
For example I can add a ‘Release’ configuration with the ‘New’ button:
💡 See “Debug vs. Release?” for more thoughts on that topic.
I give a name and an optional description. I usually ‘clone’ from an existing configuration. That way I get a new configuration with a good starting point.
One configuration is always active, and the ‘manage’ dialog can be used to change the active configuration:
The active build configuration shows up in the list of configuration e.g. under the build ‘hammer’:
So how can I specify settings for a configuration? For this there configuration area in the project settings:
There is a button to manage the configurations, and a drop down to select the configuration which I want to affect. There is as well one item in the list as [All Configurations]: when using that item, changes are ‘pushed’ to all configurations.
For example I can set a different compiler optimization for the Release configuration:
💡 When using multiple configurations, always check to which configuration you are making the changes.
The configuration name is used as the name for the output folder name:
That way for each configuration separate binaries are built.
Eclipse configurations are a great way to make different variants of projects. A new configuration can be cloned from an existing one, and then tweaked for example to build a release binary or to use custom build settings.
Happy Building 🙂