[Lazarus] How would you organize build directories for different versions?

Mattias Gaertner nc-gaertnma at netcologne.de
Thu Jul 14 11:01:42 CEST 2011


 
 


 Frank Church <vfclists at gmail.com> hat am 14. Juli 2011 um 10:11 geschrieben:


>  [...]
> 
> 
> > 
> > 
> > 
> > > 
> > >  > If you are using different Lazarus versions but with same components
> > >  > and
> > >  > packages, how would you organize separate build directories for the
> > >  > different versions, but same source location.
> > >  >There are many ways.
> > >  For example use one lazarus config directory for each version
> > >  combination and make all package output directories read only. Then the
> > >  IDE will put the ppu files into the config directory.
> > > 
> > > 
> > > 

> > 
> >  Can this be achieved via macros?

 
There is no macro to make directories read only. 
 
 


> 
> 
> > 
> > 
> > 
> >   For instance I have just posted a blog article on FPC/Lazarus compilaton
> > at
> > http://devblog.brahmancreations.com/content/build-scripts-for-installing-freepascal-and-lazarus-from-source,
> > and what I want to do is to have the build_name variable as available to the
> > IDE.
> > 
> >  e.g if a lazarus build is named lazarus_0920_27001, I would like to use a
> > macro based on the package name as well as the lazarus build name, so the
> > compiler knows that units for zeoslib for instance go to directory
> > /components/lazarus_0920_27001/zeoslib.

 
The solution I gave puts the package files in
$(PrimaryConfigPath)/lib/$(PkgName)/something, for example
/components/lazarus_0920_27001/lib/zeoslib
 
The 'something' depends on a few things. Someone said that there is a bug in
some cases. 
 
 


> 
> 
> > 
> > 
> > 
> >  Even if the package sources must be modified that should be a minor
> > problem.

 
If you want to change the lpk files, then you can of course specify whatever you
wish. 
 


> 
> 
> > 
> > 
> >  [...]




>  I am looking at
> http://wiki.lazarus.freepascal.org/IDE_Macros_in_paths_and_filenames and I am
> considering using a combinatin of PrimaryConfigPath and  package name to set
> the output directory.
> 
> 
> Package macros - these can be used in the fields of a package. For example in
> the search paths of a package. To use them elsewhere give a package name as
> parameter.
>  PkgDir() - macro function for the directory (location of the .lpk) of a
> package ID given as parameter
> PkgIncPath(id) - macro function for the include path of a package ID given as
> parameter
> PkgOutDir(id) - macro function for the output directory of a package (e.g.
> where the ppu files are created)
> PkgSrcPath(id) - macro function for the source path (unit path + src path) of
> a package ID given as parameter
> PkgUnitPath(id) - macro function for the unit path of a package ID given as
> parameter
> 
> 
> 
> 



>  However there doesn't seem to be a macro for the package name itself in the
> package related macros.
 
I added a PkgName.
 



>  I'd like to use a combination of ConfPath or PrimaryConfigPath or the
> FallBackOutputRoot to handle the issue.
> 
>  Something like
> PrimaryConfigPath\NameOnly(packagepath)\lib/$(TargetCPU)-$(TargetOS) would be
> ideal.
 
That's almost the default for read only packages. Why not simply use the
default?  



>  Do ConfPath and PrimaryConfigPath refer to the same thing?

 What is ConfPath?

 Mattias
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20110714/044cd01c/attachment-0003.html>


More information about the Lazarus mailing list