These settings should only stored out off the stuff which I will check in into a repository.
Well - they are vital for successful compilation, aren't they? So if someone would checkout the project and try to compile it most likely would not work. I don't believe that makes sense.
However - are you aware that a project can have several targets and a target can be limited to specific platforms (meaning OS'es) in C::B? This way you can have the *right* target for your platform compiled depending on the platform where the build is triggered.
It's very easy:
- setup target "A" for platform "Unix"
- setup target "B" for platform "Windows"
- setup the required compiler for each target and all the options
- setup a virtual Target "All" that includes both targets
If you compile "All" on Unix only the Unix target will be compiled.
If you compile "All" on Windows only the Windows target will be compiled.
You just have one project and can even share same settings (e.g. equal defines for the platforms) by setting them up at project level.
IMHO that's all the flexibility you'll need and in fact it only works with saving all info in the project.