<!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>