<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
<title></title>
</head>
<body>
<p style="margin: 0px;"><span> </span></p>
<p style="margin: 0px;"> </p>
<div style="margin: 5px 0px 5px 0px;">
Graeme Geldenhuys <graemeg.lists@gmail.com> hat am 14. Juli 2011 um 11:56 geschrieben:<br/>
<br/>
> On 07/14/2011 11:43 AM, Mattias Gaertner wrote:<br/>
> >> I thought they would all<br/>
> >> be dumped into a single directory.<br/>
> > <br/>
> > That would be a Delphi mess. Separate output directories is one of the key<br/>
> > features of the Lazarus package system.<br/>
><br/>
><br/>
> And that can cause it's own set of headaches. Yes it saves on disk space
</div>
<p style="margin: 0px;"> </p>
<p style="margin: 0px;">No, it needs more disk space, because you have several output directories per package, .e.g. targetcpu-targetos.</p>
<p style="margin: 0px;"> </p>
<p style="margin: 0px;"> </p>
<div style="margin: 5px 0px 5px 0px;">
> because all projects using a package, use the same set of *.ppu files.<br/>
> But changing a compiler parameter or compiler define in a project<br/>
> doesn't apply to any of the packages - so you can get very undesirable<br/>
> results.
</div>
<p style="margin: 0px;"> </p>
<p style="margin: 0px;">AFAIK it is quite the opposite.</p>
<p style="margin: 0px;">If all project options would be applied to all packages, that means applying options to code you have not written, you can get very undesirable results. For example there is a bug in fpc 2.4.4 under OS X that when you apply range checking to the IDE, it will fail with a strange error message. With separate options you can apply the -Cr only to your project.</p>
<p style="margin: 0px;">The same is true for many optimizations and debugging flags. </p>
<p style="margin: 0px;"> </p>
<p style="margin: 0px;">The main idea for separate output directories is that you can be sure that the package units are compiled with the options the package developer tested it. </p>
<p style="margin: 0px;"> </p>
<p style="margin: 0px;"> </p>
<div style="margin: 5px 0px 5px 0px;">
><br/>
> The other problem being that sometimes Lazarus doesn't detect unit<br/>
> changes and doesn't "auto" recompile those related packages. Also<br/>
> causing huge frustration.
</div>
<p style="margin: 0px;"> </p>
<p style="margin: 0px;">You told so once and said you would tell me how to reproduce it once it appears again. But I didn't receive no such mail. Now you write again that the IDE is buggy - again without any clue.</p>
<p style="margin: 0px;">This is not helpful.</p>
<p style="margin: 0px;"> </p>
<p style="margin: 0px;"> </p>
<div style="margin: 5px 0px 5px 0px;">
><br/>
> I use to be a huge proponent for Lazarus Packages, but lately use macros<br/>
> (for defining differing paths on various systems), and more importantly,<br/>
> use a single output path for each project target. This solving all the<br/>
> problems listed above.
</div><br/>
There are many ways to maintain your code base. It is good that the IDE supports a lot.<br/>
<br/>
Mattias<br/>
<br/>
</body>
</html>