Nicht das ich wüsste.
Aber warum machst du nicht folgendes:
Du setzt 2 Projekte auf.
Anstelle des fehlerträchtigen Auskommentierens, erzeugst du den jeweils
richtigen #define mit den Compiler Settings (oder einem
projektspezifischen Header File, welches nur diesen #define enthält +
möglicherweise andere Dinge, die Variantenabhängig sind)
Beide Projekte teilen sich den Code insofern, als die Source-Files in
einem gemeinsamen Verzeichnis stehen, von wo sich jedes Projekt bedient.
Viola. Benötigst du eine frische Version einer Variante, machst du
einfach das zugehörige Projekt auf und compilierst. Du brauchst nicht
fehlerträchtig irgendein #define auskommentieren und auch nicht darauf
achten, dass immer alle Einzelteile für die jeweilige Version richtig
umkompiliert wurden.
Und natürlich steht dir dann das Hex-File im jeweiligen Projekt bis zum
nächsten Build zur Verfügung.