this can work too, but a command line option is always nice, so no copying of config files is needed to wherever you need within to over systems.
Let me explain : why I expected it to be default behavior. If I decide in my cbp project to call, the target "Debug", then that was my choice. Then I would prefer that no-one is changing it to lowercase, even when it creates new stuff derived from my cbp file.
Say my output directory is Debug, then that one is case preserving, but the name is not when it is translated into a makefile target. Seems a bit inconsistent.
But as said, I can live with your other solutions.