On Thu, 16 Mar 2023 20:00:02 +0100, Martin Frb via lazarus
<lazarus@lists.lazarus-ide.org> wrote:

>On 16/03/2023 18:46, Bo Berglund via lazarus wrote:
>>
>> But it also seems like on each system there is only one version of fpc that 
>> can
>> be "active" (at least on Linux) because its config is stored outside of the 
>> pcp
>> dir in a user global fashion.
>> How can I make the fpc compiler versions co-exist and be recognized by the
>> respecive versions of Lazarus?
>>
>
>As for Lazarus:
>Lazarus takes an argument --pcp=
>So each version can be pointed to its own config.

I start Lazarus from desktop files in ~/.local/share/applications.

THe Lazarus_2.2.6.desktop file looks like this (long lines wrapped):

[Desktop Entry]
Comment=Lazarus IDE 2.2.6
Terminal=false
Name=Lazarus 2.2.6
#Entry below in order to set up PATH correctly on start
Exec=/bin/bash -l -c '/home/bosse/dev/lazarus/2.2.6/startlazarus
--pcp=/home/bosse/.lazarus_2.2.6'
Type=Application
Icon=/home/bosse/dev/lazarus/2.2.6/images/ide_icon48x48.png
Categories=Application;IDE;Development;GTK;GUIDesigner;Programming;
NoDisplay=false
Keywords=editor;Pascal;IDE;FreePascal;fpc;Design;Designer;


>That option can be put into a file called lazarus.cfg which is to reside 
>in the directory of your lazarus exe file

Never heard about this before...

>(or the startlazarus file if you use that / you only need that if you 
>have non-writable root installs, and/or for restarting after build)
>Mind that if you have root installs, then the lazarus exe eventually 
>ends up in the pcp, and the lazarus.cfg must be with the startlazarus 
>that would start the lazarus.

As I tried to explain my installs are all located inside $HOME, I do not like
having global installs of tools that are built from sources like I do.

>
>As for FPC:
>Either use scripts to start lazarus and set the $PATH for each fpc.

What do you mean by "set the $PATH"?
I have tried pointing the compiler setting in the dialog that pops up on first
start to the actual correct version of ppcx64, but the setting is not
accepted...
So I have symlinked it into $HOME/bin/ instead. But this is a single compiler
then and will be the one for all Lazarus versions... 

>Or start the ppc directly // configure lazarus to use the ppc.

As I said above Lazarus is started from a desktop file where the ppc dir is
defined...

>
>Mind that you also need the fpc.cfg to be found (so that can have ifdefs 
>based on the version)

This is a big problem since the fpc.cfg seems to be located in a common location
too.


I will have to study the info below and see how it can be applied to my case...

>
>---------------
> From my setup script
>
>this sets a folder for each fpc, and creates some symlinks
>- The IDE must be pointed to use the ppc in the lib/fpc/3.2.2/ folder.
>- there must be no global fpc.cfg (/etc or /home/name/.fpc or the like)
>
>compiling with -va allows to check what is used.
>
>$INSTPATH can be whatever.
>
>-------------
>
>mkdir -p /home/m/fpc/$INSTPATH/
>mkdir -p /home/m/fpc/$INSTPATH/gl
>mkdir -p /home/m/fpc/$INSTPATH/gw
>mkdir -p /home/m/fpc/$INSTPATH/def
>mkdir -p /home/m/fpc/$INSTPATH/o4
>
>############################
>cd /home/m/fpc/$INSTSRC/source
>
>make clean
>make all    OPT="-gw -O-1  "
>make install INSTALL_PREFIX=/home/m/fpc/$INSTPATH/gw
>
>mkdir -p /home/m/fpc/$INSTPATH/gw/lib/fpc/etc
>mkdir -p /home/m/fpc/$INSTPATH/gw/etc
>
>cd /home/m/fpc/$INSTPATH
>gw/bin/fpcmkcfg -d basepath=/home/m/fpc/$INSTPATH/gw/lib/fpc/$INSTVERS > 
>gw/lib/fpc/etc/fpc.cfg
>gw/bin/fpcmkcfg -d basepath=/home/m/fpc/$INSTPATH/gw/lib/fpc/$INSTVERS > 
>gw/etc/fpc.cfg
>
>ln -s /home/m/fpc/$INSTPATH/gw/lib/fpc/$INSTVERS/ppcx64 
>/home/m/fpc/$INSTPATH/gw/bin/ppcx64


-- 
Bo Berglund
Developer in Sweden

-- 
_______________________________________________
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus

Reply via email to