In QBS build system, what's the difference between and use cases for qbs.buildVariant and qbs.configurationName?
I'm confused by the fact that while both of them can be used to select release or debug configurations, only configurationName is mapped to command-line parameter config:, and yet the value of buildVariant implicitly depends on configurationName. The two seem to have overlapping functionality.
My gut feeling is that one of them (more likely the buildVariant) might have been considered deprecated without reflecting that in docs, but I may/must be wrong.
So, to sum up, what's the difference and when should we prefer one to another, especially in the context of creating custom Modules?
You don't have to care about qbs.configurationName in your project files, ever. It's only exposed as a property so that the default value of qbs.buildVariant can be derived from it. The config property on the command line mainly determines the name of your top-level build directory, and you can choose it freely. It's just that if it's called "debug" or "release", qbs will assume you want the respective build variant, to save you some typing. That's all.