[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