hcOPF supports Delphi 10.4 Sydney

Things have been a little crazy in case you hadn’t noticed.  Between COVID-19, the economic fallout and all the turmoil in our nearest neighbour, I plum forgot to blog about updating hcOPF to support Delphi Sydney 10.4.

It might also be because adding support for a newer compiler version doesn’t take a great deal of effort. I normally just copy the ones from the previous version, and modify them as needed for the new one.  It would of course be a whole lot easier if {$LIBSUFFIX AUTO} was implemented and I could use that as well (or something like it) to set the output folder. Then I wouldn’t even need to make a copy and update the projects!

2 Responses to “hcOPF supports Delphi 10.4 Sydney”

  1. Dean Says:

    This is the method I use to have just one package for different Delphi versions:

    1) set DVERDIR environment variable in Delphi IDE (Tools->Options->Environment Variables->User System Overrides) to unique Delphi version (I use d26 for compiler version 260)
    This can also be done in a script by setting a value in registry HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\XX\Environment Variables
    (where XX is the BDS version - 20.0 for compiler version 260)

    2) set all output paths in each package to use the environment variable (eg: Package Output Directory: C:\Dev\comp\bin\$(DVERDIR)\$(Platform))
    This can be done using text search and replace program (I like TextCrawler) or writing a one-off program to update the dproj files.

    3) use the same package name for all package versions and change the PATH variable for each Delphi version to point to correct package output directory

    If there is more than one version of Delphi installed I have found that it is best to start each version with a batch file that configures the PATH and DEVERDIR variables at startup and I have start/taskbar/desktop shortcuts that use this batch file with a parameter.

    This way it takes very little time to configure new Delphi version for all packages.

    I don’t use runtime packages so I don’t have to worry about distribution side but even if each package had unique name for each Delphi version I have found that it is possible to have packages with same name distributed by different products which are not binary compatible so naming alone is not enough to fix distribution problem.

  2. Larry Hengen Says:


    Thanks for sharing your solution. A related approach for handling LIBSUFFIX can be found here.

Leave a Reply