Delphi Jedi components manual installation - delphi

I'm using Delphi CE 10.4, and it has the DCC32.exe disabled line compilation.
I'm trying to manually install Jedi components, in the readme of JCL it says that it's needed to open and edit included file to customize options, in my case, source\include\jcld27win32.inc.
I'm starting to learn Delphi, and I didn't understand whats is it is necessary to do in this file, and didn't find videos showing a manual installation.
Someone who already installed this way could help me?
Manual Installation Although it is not recommended, a manual
installation is possible. You will have to manually configure options
for the library. That is done by modifying an included file. For each
tool you want to install the JCL in, repeat the following steps:
Open and edit included file to customize options: ... For Delphi 10.4 and C++Builder 10.4 Win32: source\include\jcld27win32.inc ...
In the IDE, open and compile package Jcl.dpk (or Jcl.bpk for C++Builder) located in a subdirectory of the "packages" directory
matching your version of the IDE. This package doesn't have to be
installed since it doesn't provide any components.
If you want to install experts, open package JclBaseExpert.dpk and compile it, then you can install all the experts you want (packages
are located in the same directory).

Related

RAD Studio 10.2.3 Jedi JVCL Install Problem

I've uninstalled my RAD Studio 10.2.2 and installed 10.2.3 in my Win10 development VM. Along the way I uninstalled all the previous 3rd-party libs, including the Jedi GetIt packages, and per the instructions got rid of all the old Jedi source and DCP/DCLs. I'm attempting to install them back into 10.2.3 via GetIt. The JCL libs install fine, but when I try to install JVCL, the installation batch file hangs after compiling the installer and the VM comes to its knees. I rebooted, started taskmgr and watched as the batch file ran - it appears to go into a loop creating many instances of msgfmt. I've tried removing it all again, downloading and installing the 3.8 version myself and running the install batch file by itself, same problem; then backing up to the 3.6 version that had installed OK in 10.2.2, and it does the same thing. If I edit the batch file to skip the language-setup section, the batch file completes OK, but trying to re-run the GetIt update causes it to re-download and replace that batch file. :(
The installer does compile before the languages part of the batch file is reached, so I tried running the installer directly. I assume I'm not passing it cmd line info it needs, because it compiles the 64-bit libs fine but chokes immediately on compiling the 32-bit version of JvCore250.bpl with an unspecified compile error.
Anyone else run into this? Is a solution known?
Turns out to ultimately be a pathing problem. When multiple installations of the IDE exist on a machine (e.g. my VM has or previously had D2007, XE2 and 10.1 on it), the PATH environment variable can be too long - edit the PATH in the system to remove the old/stale paths. Then make sure that the library paths in the IDE includes $(BDSLIB)\$(PLATFORM)\release or you'll get "can't find RTL" when building the packages.
For me the problem is generated from the msgfmt.exe of dxgettext.
msgfmt.exe generates multilanguage messages, for a multilanguage support of jvcl installation.
For the specific problem of msgfmt.exe try to see this: dxgettext and Windows 10
I resolved the problem opened the install.bat file in jvcl folder, and I commented (with ::) every line where the msgfmt is executed.
Attention:
If you use getit I suppose you have to open the folder where jvcl is downloaded and search install.bat (I didn't use getit)
Instead I downloaded jvcl directly from github in my component folder, and I did what is written above in that folder.

How to install Spring4D

I have downloaded the latest build of the Delphi Spring Framework. As directed in the readme file, I ran Build.exe and selected my two versions of Delphi (XE5 and Seattle). In neither Delphi installation can I see that a package has been installed nor my library search path modified. What am I missing or is there something else I must do to install and use it?
Thanks in advance for your help.
There are no packages to install in Spring4D because only designtime packages are actually installed (as in they show up in the IDE). Everything the Build.exe does it compile the runtime packages for the selected Delphi versions and add the dcu folder to your library path (if you have checked that in the options).
The registry keys where it looks for the library path is specified in the Build.Settings.Compilers.ini (which are default values that every Delphi installation has).

Installing JVCL into Delphi 10 Seattle

When trying to install JCL and JVCL into Delphi 10 Seattle using the GetIt Package Manager I get an error:
"Windows 7 Professional Service Pack 1 (6.1.7601)
JVCL 3.50.0.0
[Generating: Packages]
Generating packages for D15
Loaded template.dpk
Loaded template.dproj
Loaded template.rc
[Compiling: Packages]
[Compiling: JvCore150.bpl]
Embarcadero Delphi for Win32 compiler version 22.0
Copyright (c) 1983,2010 Embarcadero Technologies, Inc.
C:\Users\Lars\Documents\Embarcadero\Studio\17.0\CatalogRepository\JEDIVisualComponentLibraryJVCL-3.49\Common\jvcl.inc(26) Fatal: F1026 File not found: 'jedi\jedi.inc'
"
JCL version is 2.8.0 that is available via GetIt Package Manager
This question has some resemblance with Error in JCL installation
Uncheck other versions of delphi - The JCL installer defaults to installing into EVERY version of Delphi, not just Delphi 10 Seattle. You have to page by page and uncheck the main root tree item option on each page.
Make sure you don't have any other Jedi stuff linked implicitly into other packages you have installed.
Make sure none of the folders in your Library Path contains another copy (probably older and out of date) of jvcl.inc or jedi.inc files, or any other Jedi JCL or JVCL source or dcu files.
Clean up and remove old/stale DCP/DCU files.
If you want to attempt a manual repair of the package settings, open the package source JvCore.dpk from the packages folder beneath C:\Users\Lars\Documents\Embarcadero\Studio\17.0\CatalogRepository\JEDIVisualComponentLibraryJVCL-3.49\ and try to manually add to the search path the Common and Include folders that contain these two files.
After manual repairs, try manually restarting the installer main executable, probably named Install.bat
If none of those work, then I suspect that the problem is that the Repository folder is a pretty long path name, and the resulting library path name may be too long for something inside the JCL installer or the DCC32 command line compiler. In such a case, I would recommend removing anything you can from your library path before you start, install JCL+JVCL and then restore your library path to its former really-long value.
git clone git://github.com/project-jedi/jvcl.git jvcl
```
This will get you the JVCL repository. You also need the JCL https://github.com/project-jedi/jcl
How to install
Install the JCL https://github.com/project-jedi/jcl
Start the jvcl\install.bat
JCL:
git clone git://github.com/project-jedi/jcl.git jcl
cd jcl
git submodule update --init
```
This will get you the JCL repository and initializes the submodule that contains the jedi.inc and kylix.inc files.
How to install
Start the jcl\install.bat
I succeded to install JCL and JVCL by download a ziped version (JVCL349CompleteJCL27-Build5676.zip) containing both JCL and JCVL from http://jvcl.delphi-jedi.org/
The problem I had seams to relate to multible installations of Delphi and several versions of JCL in the path. If I just installed for DX, it worked fine :)
Use the GetIt Package Manager integrated in your RadStudio IDE to download JCL and JVCL, check this other question.
Finally a headeachless way to install JVCL!
Get JCL and JVCL from the source. Uncheck all no installed compilers.
This works for Embardadero 10.1 Berlin! (24)
(you could download the zip from this place)
https://github.com/project-jedi/jcl
https://github.com/project-jedi/jvcl

Automatic building and installing Delphi components

So, my Delphi component is functional and working, aside few details yet to cover. What I would like is to create a setup (Inno setup) that would automatically install my component into user's Delphi/C++ Builder IDE. I presume I must use delphi command line compiler, but how?
Thank you.
Unfortunately Delphi IDE does not support automated component installation at all. IMO, that is very big problem since component architecture is so important in Delphi.
You can build your package from command line (using MSBuild or DCC) but you cannot install it to IDE. To install your package you should write your own installer that builds you package, copies compiled files and updates Windows registry. Note there is no official documentation how to write such an installer, but you can take Jedi (JVCL) installer code as an example.
There are also 3rd party tools that automate component installation, for example 'lazy builder', that may be interesting to you.
It's not too hard, just messy. You need to compile a BPL for each Delphi version that you want to target and then your installer puts this BPL into a folder of your choosing (often users,public etc). This folder location is then written as a registry key under the relevant Delphi Installed Packages node. Lo when you run Delphi your components appear as if you had used the manual install packages option.

Installing multiple library versions in Delphi / C++Builder

How I can install multiple versions of a library in Delphi or C++Builder? For example, I might want to be able to develop the next version of our app using the current versions of JCL and JVCL while still being able to compile the release version of our app using whatever version of JCL and JVCL were tested for that release.
Using more than one version of a library is easy with libraries like Boost, since those are just header files and library / DLL files that I can put wherever I want, and so I can simply point my project files at the appropriate library directories. However, since libraries like JCL and JVCL try to install themselves into the IDE, I'm not sure how to configure different projects to use different versions without it turning into an unmanageable hack.
(I'm still not entirely familiar with how Delphi manages components and projects - most of my experience is in C++ - so this may be part of my problem.)
We had the same problem, supporting older versions compiled with different versions of the components. Our solution was/is to use the IDE's " -r " command line option. With this switch it is possible to use different library paths and packages (at the same time). The only problem that we encountered with this approach was that some of us regularly tried to open an older project version in the wrong IDE instance.
[Old version 1.0] bds.exe -rVersion1.0
[trunk version ] bds.exe
How to setup those:
Start your IDE as you are used to it.
Install everything you need for "Version 1.0"
Close the IDE
Install all (old) packages (JCL/JVCL/...)
Start regedit.exe
Export the registry key HKCU\Software\CodeGear\BDS\5.0 to a *.reg file
Start nodepad.exe and do a search&replace in the *.reg file for "CodeGear\BDS\5.0" and replace it with "CodeGear\Version1.0\5.0"
Import the *.reg file (by double clicking it in the Windows Explorer)
Create a copy of your RAD Studio 2007 startmenu link and change the command line to include the "-rVersion1.0" key.
Now you have two IDE configurations that are equal. You can now change the IDE that doesn't use the " -r " command option to your trunk version's packages.
When you install all the packages, you must not use the default BPL and DCP directories unless the different package versions use different file names (like the JCL and JVCL do).
CodeGear\BDS\5.0 = Delphi 2007
CodeGear\BDS\6.0 = Delphi 2009
Borland\BDS\4.0 = Delphi 2006
Borland\Delphi\7.0 = Delphi 7

Resources