[Lazarus] Project LPI Files and Platforms

Mattias Gaertner nc-gaertnma at netcologne.de
Sat May 16 10:46:50 CEST 2009


On Sat, 16 May 2009 03:38:48 -0400
Mehmet Erol Sanliturk <sanliturk at ttmail.com> wrote:

> Mattias Gaertner wrote:
> > On Fri, 15 May 2009 08:31:27 -0400
> > Mehmet Erol Sanliturk <sanliturk at ttmail.com> wrote:
> > 
> > 
> > Why? What is not compatible?
> 
> For example :
> 
> In FreeBSD ( 7.1 ) :
>                  /usr/local/share/lazarus/
>                  /usr/local/lib/fpc/2.2.2/
> 
>     Windows XP : \lazarus\
> 
>     Linux  ( Kubuntu 9.04 ) :
>                  /usr/lib/lazarus/

These are the lazarus and fpc installation paths. These are set
globally and there are macros for them. Although I wonder, why you need
them in your project.


> > 1. The lpi file stores the used path delimiter and converts the
> > paths automatically.
> 
> Path delimiter conversion is not sufficient for the Lazarus related 
> directory names . Platform related conversions are needed ( if a
> single LPI file used , or Platform specific Lazarus directory names
> are stored with their tags to select during LPI loading with respect
> to platform . )

I never needed that. Can you give more details what you want to achieve?

 
> > 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
> > windows.
> > 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. TargetOS).
> > 
> > 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.
> > 
> 
> 
> Assume you have three Intel ( or AMD ) processor based computers .
> 
> (1) Windows
> (2) Linux
> 
> 
> In each of the above computers , develop a similar project by
> including components from palettes with the similar types .
> 
> Compile these projects in their computers . All of them will be
> compiled 
> 
> successfully ( by using their defaults ).
> 
> 
> Copy project files to a USB stick in Windows machine (1),
> submit it to the third machine (3) having Linux identical to in
> machine (2) .

No problem. I do that every day.

 
> You will get an error like : Graphics is not found .
> depending on unit uses list order although the same program is
> compiled successfully in the machine (2) .

If it compiles, but the IDE can not find a unit, then you maybe setup
the search paths only in the fpc.cfg. 
Have you added the LCL to project inspector dependencies?


> The same project with the same structure is not compilable in another 
> platform only due to LPI differences .
> 
> 
> The above example is also an answer to question by  Graeme :
> 
> --
> -- I use the same project .lpi files under Linux, FreeBSD, DesktopBSD
> and -- Windows. Lazarus IDE automatically handles directory
> separators etc in -- the .lpi file. What problems do you experience?
> --

I still do not understand where the problem is.

 
>[...]
> My suggestion is to eliminate this incompatibility about directory
> names structure of installed Lazarus in different platforms for LPI
> files .
> 
> Using Version control systems is a different case .
> 
> Assume a student is using a computer at home and another at the
> school with different platforms carrying his/her projects with a USB
> stick or with a transportable hard disk .

Pretty normal situation.
Of course if something can be made wrong, then there will be a student
who does.


Mattias




More information about the Lazarus mailing list