[Lazarus] Problem with Includes during Design Time

Mattias Gaertner nc-gaertnma at netcologne.de
Sun Aug 16 10:33:26 CEST 2009


On Sat, 15 Aug 2009 18:54:52 -0500
Andrew Brunner <andrew.t.brunner at gmail.com> wrote:


First this:

> > Otherwise your project will not be portable.
> 
> Could you explain to me as to why a project is portable by not
> respecting my $ENV pointers in Lazarus's Compiler options GUI for the
> specific feature of "include paths??

With portable I mean: You can simply copy the project and the required
packages to another machine and compile it there. You don't need to
set up search paths (nor env variables).


>[...]
> Ok.  So if the project paths includes the ENV variable then why would
> the unit need to be added to the project?  This is not good.  On a
> Windows Build the path to that folder will be different than it is on
> Windows.  And as I understand the problem now, I will be required to
> add the uStorage.pas into the project and maintain a different project
> for each build machine.

No.
You can use
a) packages
b) use target macros in the "Other unit files". e.g. $TargetCPU,
$TargetOS

I added some help to 
http://wiki.lazarus.freepascal.org/Multiplatform_Programming_Guide#Projects.2C_packages_and_search_paths

 
> I'm looking to get this system up and running and as automated as I
> can.  Having to manage multiple projects for the same compile is IMO
> not portable enough.  What can I do to remove the unit from the
> project but still have Lazarus not crash every time I click on a
> component - and I am asserting that this is not a feature - it's a
> flaw.

It crashes?
Please create a bug report.

 
> However, once the project is developed I *would* be able to bypass
> Lazarus on the official build machines - right?  Meaning the entire
> premise for my discovery of this problem is that I am using $ENV() for
> establishing libraries and includes so that I can maintain many
> different native builds for x64 and 32 Windows and Linux and MAC.

There are various ways for building without installing lazarus:

lazbuild requires only the following parts of the lazarus folder:

lazbuild.exe
packager/units/*

There is no installer for lazbuild alone yet.

An other way is to use Makefiles or for the fearless ones: fpmake.
Or you can create your own build batch file.

Mattias




More information about the Lazarus mailing list