Durch das IFDEF wird ja schon quasi ausgeschlossen, dass die jeweiligen Units direkt in das Projekt aufgenommen werden, sondern lediglich über diese uses-Anweisung eingebunden werden.
In dem Fall lässt sich das auch ohne IFDEF realisieren, in dem man in den Build-Konfigurationen unterschiedliche Suchpfade einträgt und dort jeweils passende Units ablegt, die aber gleich heißen (hier z.B.
codes.pas).
Natürlich sollte auch sichergestellt werden, dass der
DCU-Ausgabepfad für Release und Debug unterschiedlich ist, was aber per Default mit
.\$(Platform)\$(Config) ja schon gewährleistet wäre.
Das hätte den Vorteil, dass die verwendenden Units beim Wechsel zwischen Debug und Release nicht jedes mal neu übersetzt werden müssen.