IndySockets / Indy

Indy - Internet Direct
https://www.indyproject.org
434 stars 147 forks source link

Rad Studio 12 - Settings compatible #527

Closed SiveaITA closed 4 months ago

SiveaITA commented 4 months ago

Now that the dpk are produced to recompile in Delphi 12, I suggest to change the $LIBSUFFIX in auto and change all the name of DPK without "290" suffix".

This is how Rad Studio refer to Indy component (and also the new package RDGoogleAI in getit).

In all original DPK from Embarcadero, the $LIBSUFFIX is set to AUTO, the name in the "requires" section is without del "290" suffix but the bpl crated are with 290 suffix.

To replace original Indy with github sources, i try 2 times:

1) Maintain the github Indy names, but I should changes all Embarcadero DPK, and with getit package I should build by hand, while getit gave an error about Indy... not found.

2) The second time I do the opposite: change the name and setting of Indy github dpk and those give the right way.

Internal libraries (without sources) of Embarcadero are always linked to Indy*290.bpl runtime.

Example of IndyProtocols.dpk:

package IndyProtocols;

{$R *.res}
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users}
{$ALIGN 8}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO OFF}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION OFF}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO ON}
{$SAFEDIVIDE OFF}
{$STACKFRAMES ON}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST OFF}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$DEFINE DEBUG}
{$DEFINE VER360}
{$ENDIF IMPLICITBUILDING}
{$DESCRIPTION 'Indy 10 Protocols'}
{$LIBSUFFIX AUTO}                                               <-------------------- Here there are AUTO suffix
{$RUNONLY}
{$IMPLICITBUILD ON}

// RLebeau: cannot use IdCompilerDefines.inc here!

{$DEFINE HAS_PKG_RTL}
{$IFDEF NEXTGEN}
  {$IFDEF IOS}
    // there is no RTL package available for iOS
    {$UNDEF HAS_PKG_RTL}
  {$ENDIF}
{$ENDIF}

requires
  {$IFDEF HAS_PKG_RTL}
  rtl,
  {$ENDIF}
  IndySystem,                                                    <--------------------- Here without 290 suffix
  IndyCore;                                                        <--------------------- Same

{$IFNDEF WINDOWS}
  {$IFDEF MSWINDOWS}
    {$DEFINE WINDOWS}
  {$ENDIF}
{$ENDIF}

contains
  IdASN1Util in 'IdASN1Util.pas',
rlebeau commented 4 months ago

Now that the dpk are produced to recompile in Delphi 12, I suggest to change the $LIBSUFFIX in auto and change all the name of DPK without "290" suffix".

That is planned for Indy 11, there is an existing ticket for that: #133

with getit package I should build by hand, while getit gave an error about Indy... not found.

Indy is not available in GetIt yet. There is an existing ticket for that: #134

rlebeau commented 4 months ago

Closing as duplicate

SiveaITA commented 4 months ago

I explained myself badly, I was talking about third-party projects distributed in GETIT that use Indy and that do not compile if Indy is not compiled according to what I indicated. But no problem, changing by hand as I indicated solves the problem....