A single EurekaLog installer supports a wide range of IDEs - starting with Delphi 5 and all the way up to latest RAD Studio version. However, sometimes a single IDE may have different builds (patches). For example, Delphi 7 and Delphi 7.1, RAD Studio 10.3 and 10.3.1, 10.3.2, 10.3.3, RAD Studio 12 and 12.1, 12.2, and so on. All of these different builds is the "same IDE", so one can not have all these minor versions installed on the same machine at the same time. E.g. you can not have Delphi 7 and Delphi 7.1 installed simultaneously. In other words, you can install either RAD Studio 12.2 or RAD Studio 12.1, but not both. That is why each EurekaLog installer is built only against latest IDE patches (latest available at the release time).
Unfortunately, sometimes IDE patches introduce binary incompatibilities. If you attempt to install/use EurekaLog which was build for a different version of the IDE - you may get errors like "The procedure entry point could not be located", "Unit was compiled with different version", "Could not compile used unit", etc.
This article explains how to recompile EurekaLog for your IDE. This is a brief "how-to" manual, for a detailed explanation on building EurekaLog from sources - see this article.
Important Note: do not confuse minor RTL patches with major maintenance updates. EurekaLog installer always checks for major updates only. That is because all major updates have their mark in IDE's registry entries. On the other hand, minor RTL patches are just patches: they change IDE binaries/files, but have no mark to detect if those patches are installed. And since minor RTL patches fix a specific problem only - they never have issue of binary incompatibility. However, major maintenance updates contain not only patches, but some minor new features, so it is more susceptible to binary incompatibility bugs. For example:
How to recompile EurekaLog manually (Enterprise edition only)EurekaLog Enterprise comes with full source code, which you can use to recompile EurekaLog. EurekaLog Enterprise contains additional \Projects\ folder, which contains project files to compile EurekaLog. There are project files for run-time package, design-time packages (IDE expert, component registration) and command-line compiler (ecc32/emake). There are no special projects for EurekaLog itself, because EurekaLog is not application, but a library.
Start by closing all opened projects:
and closing all running IDE instances:
Step 0: [optional] allow modifications to EurekaLog First, you must allow changes to EurekaLog's files.
EurekaLog is installed to the Program Files folder by default. This folder allows read-only access for non-admin users. If you are going to recompile EurekaLog from normal user account - you would need to alter permission settings. You can skip this step if you will be running IDE under administrator account.
The easiest way would be:
This will make all necessary modifications.
Note: don't close the tool yet, you will need it soon: see step 2 below.
Alternatively, you may manually edit permissions for C:\Program Files (x86)\Neos Eureka S.r.l\EurekaLog 7\ folder in Explorer. Add write permissions for normal users.
Finally, you may simply run your IDE under administrative account - without any need to alter permissions.
Step 1: determine your IDE number Please, refer to this table to determine number for your IDE. For example, all versions of RAD Studio 10.3 Rio (that is: 10.3, 10.3.1, 10.3.2, 10.3.3) would be 26 (and would be located in Studio26 folders).
Step 2: unregister installed EurekaLog from IDE
This will:
This will not remove/uninstall any of EurekaLog files from C:\Program Files (x86)\Neos Eureka S.r.l\EurekaLog 7\ installation folder.
See also for more details: EurekaLog IDE setup.
Step 3: [optional] remove existing precompiled files While it is not strictly necessary, we recommend to remove existing precompiled files before compiling EurekaLog. This will make diagnostic easier if you made a mistake during compilation. (Mistakes like mixing old an new files).
Delete, move, or rename all files in the following folders:
Adjust paths as necessary. <IDE> is folder for your IDE, which you have found out on step 1 above. <PLATFORM> is platform name like Win32 / Win64 / Win64x. <CONFIG> is build configuration name like Debug / Release. Typically there would be at least 6 folders with all possible combinations for a single IDE.
Note: you may keep ecc32.exe and ecc32speed.exe untouched if you will not recompile it. ecc32 does not depend on IDE, so it is not necessary to recompile it.
See also for more details: EurekaLog files layout.
Step 4: actual recompilation Launch your IDE and open EurekaLogGroup.groupproj file from corresponding subfolder in C:\Program Files (x86)\Neos Eureka S.r.l\EurekaLog 7\Projects\ folder. The subfolder name was determined on step 1 above.
Build all projects:
Important Note: Be sure to build EurekaLogCore and IDE packages for the same build configuration in one go (e.g. do not compile EurekaLogCore as Release, and then compile IDE packages as Debug).
Note: EurekaLog contains only Delphi source code (.pas). C++ Builder support is implemented as compilation of Delphi files with C++ Builder. There are no .cpp/.hpp files. All shipped .obj/.o/.hpp/.lib/.a/.bpi files are auto-generated from .pas files. All EurekaLog projects have "Generate C++ files" option turned on. EMake is the same file as ecc32. In fact, ecc32 is the same file for all IDEs.
Step 5: [optional] check that files were created If you have removed old files on step 3 - now you can check that all of the mentioned folders has been populated with new compiled files.
Notes:
Important Note: some old IDEs have bugs related to output folders (especially for C++ Builder files). Check that files were created in the correct location. Compare to old layout. Move files if necessary:
Step 6: register recompiled EurekaLog in IDE
This will register new recompiled files in your IDE. Now you can use EurekaLog.
Important Note: the "Manage EurekaLog in IDEs" tool reports version of installed EurekaLog. This version number comes from the injected EurekaLog information. Precompiled executable files that are shipped with EurekaLog installer are compiled with EurekaLog. It means all installed executable files will have EurekaLog information injected. That is where the tool takes version info from. However, If you just recompile executable files following this guide - they will have no EurekaLog injected information, so the tool will think it is some sort of old EurekaLog version that did not have version information attached (such as EurekaLog 6). Therefore, the tool will report that you are installing EurekaLog 6. The tool will also report this mismatch as "Not all actions were completed successfully. Please, check log for more details". That is a completely normal and expected behavior. You can ignore it.
See also:
|