Root > Recompilation (Enterprise) > Recompilation > Rebuilding for different IDE build

Rebuilding for a different IDE build

Previous pageReturn to chapter overviewNext page   

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.

 

1. Customers with EurekaLog editions without source code can:
a. Download older EurekaLog's installers which were built for older IDE patches. For example, EurekaLog 7.8 is the latest EurekaLog version that was build for 10.3.2, EurekaLog 7.7.8.58 was build for 10.3.1, EurekaLog 7.7.8.13 was build for 10.3, EurekaLog 7.7.6.0 was build for 10.3 BETA, EurekaLog 7.12.0.691 was build for 12.1.
b. Or install latest available patches for your IDE. E.g. upgrade 10.3.1 to 10.3.3, 12.0 / 12.1 to 12.2, etc.
2. Customers with EurekaLog editions with source code can additionally download latest version of EurekaLog and rebuild (recompile) it for their older version of IDE. For example, download EurekaLog 7.8.1 (build for 10.3.3) and recompile it for 10.3.1.

 

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:

1. RAD Studio 12 Athens was released initially (we can call it 12.0.0 unofficially);
2. RAD Studio 12 Athens has the minor RTL patch 1 released (we can call it 12.0.1 unofficially);
3. RAD Studio 12 Athens also have the major maintenance update 1 released (12.1; we can call it 12.1.0 unofficially);
4. On top of that the major maintenance update 12.1 also have the minor RTL patch 1 released (we can call it 12.1.1 unofficially);
5. Finally, RAD Studio 12 Athens also received the second major maintenance update (12.2; we can call it 12.2.0 unofficially).

 


 

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:

1. Run "Start" / "Programs" / "EurekaLog" / "Manage EurekaLog in IDEs" tool from admin account;

 

 

2. Click on your IDE to expand available options;
3. Click on "Register EurekaLog for development" button.

 

 

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

1. Ensure your IDE(s) are still closed;
2. Run "Start" / "Programs" / "EurekaLog" / "Manage EurekaLog in IDEs" tool from admin account;
3. Click on your IDE to expand available options;
4. Click on "Unregister EurekaLog" button.

 

 

This will:

Remove EurekaLog BPL packages from Windows\System32 folder (that's why admin account is required);
Unregister EurekaLog BPL packages (IDE expert and component) from IDE;
Remove EurekaLog paths from IDE's library search paths.

 

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:

C:\Program Files (x86)\Neos Eureka S.r.l\EurekaLog 7\Packages\<IDE>\ (including \Win64\ subfolder)
C:\Program Files (x86)\Neos Eureka S.r.l\EurekaLog 7\Lib\<PLATFORM>\<CONFIG>\<IDE>\

 

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:

1. Switch build configuration to Release for the EurekaLogCore package;
2. Build the EurekaLogCore package for all platforms;
3. Switch build configuration to Debug for the EurekaLogCore package;
4. Build the EurekaLogCore package for all platforms;
5. Ensure the other two packages (IDE packages: EurekaLogExpert and EurekaLogComponent) are switched to the Debug build configuration;
6. Build both IDE packages (EurekaLogExpert and EurekaLogComponent);
7. "W1033 Unit 'XYZ' implicitly imported into package 'EurekaLogABC'" warnings are expected, you can ignore them;
8. You may skip compilation of ecc32. ecc32 does not depend on IDE, so it is not strictly necessary to recompile it.

 

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:

Compilation will create some files that you did not see in old files on step 3 (such as *.map, or *.lib files for IDE packages). This is normal. Those files are not needed for EurekaLog to work, that's why those files are not shipped with EurekaLog installer. You can either delete or ignore them.
File sizes will be noticeable different between old and new files. That is because old files (shipped with EurekaLog installer) were post-processed by EurekaLog itself to allow internal crash reporting. This is not needed for EurekaLog to work. You don't need to do anything else.

 

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:

1. *.bpl and *.bpi should go to IDE subfolder in C:\Program Files (x86)\Neos Eureka S.r.l\EurekaLog 7\Packages\;
2. *.dcu, *.hpp, *.lib, *.a, *.obj, *.o files should go to corresponding subfolders in C:\Program Files (x86)\Neos Eureka S.r.l\EurekaLog 7\Lib\;
3. Make sure there are no new files in C:\Program Files (x86)\Neos Eureka S.r.l\EurekaLog 7\Source\ folder.

 

 

Step 6: register recompiled EurekaLog in IDE

1. Run "Start" / "Programs" / "EurekaLog" / "Manage EurekaLog in IDEs" tool from admin account;
2. Click on your IDE to expand available options;
3. Click on "Register EurekaLog (recommended)" button.

 

 

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:




Send feedback... Build date: 2024-12-19
Last edited: 2024-10-06
PRIVACY STATEMENT
The documentation team uses the feedback submitted to improve the EurekaLog documentation. We do not use your e-mail address for any other purpose. We will remove your e-mail address from our system after the issue you are reporting has been resolved. While we are working to resolve this issue, we may send you an e-mail message to request more information about your feedback. After the issues have been addressed, we may send you an email message to let you know that your feedback has been addressed.


Permanent link to this article: https://www.eurekalog.com/help/eurekalog/rebuilding.php