Graeme Geldenhuys <graemeg.li...@gmail.com> hat am 14. Juli 2011 um 12:39
geschrieben:

 > On 07/14/2011 12:20 PM, Mattias Gaertner wrote:
 > >  > And that can cause it's own set of headaches. Yes it saves on disk space
 > > No, it needs more disk space, because you have several output directories
 > > per
 > > package, .e.g. targetcpu-targetos.
 >
 > I think you missunderstood my statement. I meant that using Lazarus
 > Packages allows you to save on a bit of disk space. So if 10 projects
 > are using the LCL package, you only have one set of target *.ppu files
 > for the LCL package. 
True.
 
I compared to common Delphi setting of having one global output directory. 
 

 >
 > > AFAIK it is quite the opposite.
 > > 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.
 >
 > Here is an example:
 > I have a project that uses 'fpgui', 'onguard' and 'tiopf'. If I compile
 > each of those libraries with unoptimized and very verbose compiler
 > settings - that is helpful while developing and for debugging. But now I
 > want to generate a release build of my project. I can't just toggle the
 > release build settings in by project settings, because those will not be
 > applied to the 3 libraries (lazarus packages) I use. So I have to
 > individually change the settings for each of those 3 packages and
 > recompile them, then recompile my project.>

 > Whereas if I used a single unit output directory, my project compiler
 > settings will be applied to all source code (even the 3 libraries I use)
 > when I include the -B compiler parameter. Now ALL source code will have
 > the optimized "release build" compiler settings applied to them. One
 > change of compiler settings and one re-compile. 
You can define a project macro and use that in each package custom options. 
See here  
http://wiki.lazarus.freepascal.org/Macros_and_Conditionals#Add_a_release.2Fdebug_mode
 
Using build modes you get a button in the IDE tool bar, so switching
release/debug mode is just a mouse click away.
The -B option is automatically applied by the IDE as well. 
 
 

 >
 >
 > > 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.
 >
 > I am the package developer and the project developer. So I guess my use
 > case must be unique then [though I doubt that]. 
It's not unique. There is no question that a one-man-show makes the work flow
very simple.
But in a collaborative environment you need some rules.
 
 

 > >  > The other problem being that sometimes Lazarus doesn't detect unit
 > >  > changes and doesn't "auto" recompile those related packages. Also
 > >  > causing huge frustration.
 >[...]
 > Yes, and I run the Lazarus IDE via the command line (as requested) for a
 > week without any new information to report. The issue is not instantly
 > reproducible, so it is rather difficult to be more "helpful" with the
 > bug report. 
If it so difficult to reproduce, why is it a "huge frustration"?
It is a huge frustration to read such mails. 
 
 


 >[...]
 
Mattias
 
--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to