[Lazarus] Project LPI Files and Platforms

Mattias Gaertner nc-gaertnma at netcologne.de
Sat May 16 06:41:13 CEST 2009

On Fri, 15 May 2009 08:31:27 -0400
Mehmet Erol Sanliturk <sanliturk at ttmail.com> wrote:

> Dear Lazarus Developers ,
> Project LPI files are created at present as project_name.LPR and 
> project_name.LPI , and others .
> This structure for LPI files is making difficult to develop the same 
> project for multiple platforms in the following sense .
> Assume all of the source code is in a USB stick ( or in a comon
> server ) with project definition files .
> The initial project is developed in , for example , in Windows .
> When the same project is tried to be compiled in Linux , its LPI file
> is not compatible for the Linux Lazarus installation structure .

Why? What is not compatible?

1. The lpi file stores the used path delimiter and converts the paths
2. The file names are stored as UTF-8.
3. The IDE always tries to store relative file names.
4. The IDE tries to find out the real file upper/lower under
5. Machine specific information can be stored in a separate file (lps).
6. You can use macros for various platform specific path parts (e.g.

Just store your project in one directory with sub directories and you
can copy/share it anywhere.

> It is necessary to modify the settings and store the project_name.LPI 
> with the effect that project_name.LPI developed in Windows is lost .

Please give an example.

> ( I know it is possible to copy with a new name and apply other
> suitable steps . )
> The same effects will be encountered when it is brought to FreeBSD .
> To prevent such mismatches , my suggestion is as follows :
> For each distinct Lazarus installation environment , use a different
> project name format for the LPI files :
> For example : project_name.BSD.LPI
>                project_name.Linux.LPI
>                project_name.XP.LPI
>                and possibly others .
> Such a naming facility will require additional programming efforts ,
> but for multiple platform compilations , it will allow to use common
> servers by developers and compile the projects from any client only
> by using its own client platform related LPI file without affecting
> other platform LPI files  .

Most projects use the same settings under all platforms - that's the big
advantage of Lazarus/FPC versus many other native compilers.


More information about the Lazarus mailing list