Hi Lucian,
Well, I like to think that Raize Components is one of the big component
players, and we do use this particular feature, and we do support
multiple versions with our product.
And yes, as you note for developers building for one version of Delphi
and upgrading to a newer version things are much easier. However,
even a component provider supporting multiple versions of Delphi
can take advantage of the LIBSUFFIX as well.
In particular, our RaizeComponentsVcl.dpk file looks like this:
{$I RzComps.inc}
package RaizeComponentsVcl;
{$R 'RaizeComponentsVcl.res'}
{$ALIGN 8}
//... other directives deleted
{$IMPLICITBUILD OFF}
{$I RaizeComponentsVcl_Description.inc}
{$IFDEF VCL60}
{$I RaizeComponents_LibSuffix60.inc}
{$ENDIF}
{$IFDEF VCL70}
{$I RaizeComponents_LibSuffix70.inc}
{$ENDIF}
{$IFDEF VCL90}
{$I RaizeComponents_LibSuffix90.inc}
{$ENDIF}
{$IFDEF VCL100}
{$I RaizeComponents_LibSuffix100.inc}
{$ENDIF}
requires
Vcl,
VclX;
{$I RaizeComponentsVcl_Contains.inc}
end.
The LibSuffix include files simply have the {$LIBSUFFIX 'nn'} directive
listed. The appropriate include file isused based on the defines
established
in the RzComps.inc file.
And yes, it is a bit cumbersome for us to setup, but once it's done, we
do not have to change it. What's more important, is that our customers
simply reference RaizeComponentsVcl.dcp in their packages, and they do
not have to do anything when they switch versions of Delphi.
Ray
> The suffix is included in the source of the DPK file. So, if you have
> to maintain a package for multiple versions of Delphi, you would have
> to take care of *that* every time you compile the package, to make sure
> the suffix is the one you need at the moment. Practically, the
> directive is cool if you just go up with your package and never need to
> compile it with a lesser version of Delphi. I think that's why this
> feature is practically unused by big component players, as far as I can
> see.