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