Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I have a Delphi XE2 project without unit aliasses?

I'd like to compile my XE2 project without unit aliasses but can't get it to work.

I tried the following:

  1. <DCC_UnitAlias /> in the *.dproj
  2. <DCC_UnitAlias>$(DCC_UnitAlias)</DCC_UnitAlias>
  3. <DCC_UnitAlias>;$(DCC_UnitAlias)</DCC_UnitAlias>
  4. No DCC_UnitAlias entry in the *.dproj

These either result in a compiler error
[DCC Fataler Fehler] F1030 Ungültige Compileranweisung: '-A;Generics.Collections=System.Generics.Collections;...
(which translates to something like [DCC Fatal error] F1030 Invalid compiler directive: '-A;Generics.Collections=System.Generics.Collections;...)

or the inclusion of some default aliasses:
-AGenerics.Collections=System.Generics.Collections;Generics.Defaults=System.Generics.Defaults;WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE

I know this is not a big issue but it somehow annoys me. :-)

FWIW: <DCC_UnitAlias /> works in D2007.

like image 685
Uli Gerhardt Avatar asked Dec 05 '25 19:12

Uli Gerhardt


1 Answers

Under Delphi 10.1, it looks like the default unit aliases are added unconditionnally in the file $(BDS)\Bin\CodeGear.Common.Targets. I assume it is similar in XE2 but don't have it installed to check.

<UnitAliases>Generics.Collections=System.Generics.Collections;Generics.Defaults=System.Generics.Defaults;WinTypes=Winapi.Windows;WinProcs=Winapi.Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE</UnitAliases>
<UnitAliases Condition="'$(DCC_UnitAlias)'!=''">$(DCC_UnitAlias)$(UnitAliases)</UnitAliases>

Removing the first UnitAliases tag should let you specify your defaults more accurately, on a per project basis. Beware of the "DO NOT MODIFY" warning at the top of this file, though.

like image 98
Papaya Avatar answered Dec 11 '25 02:12

Papaya