[fpc-pascal] fpmake: output directories

Michael Van Canneyt michael at freepascal.org
Tue Jun 2 16:03:08 CEST 2009



On Tue, 2 Jun 2009, Mattias Gärtner wrote:

> Zitat von Michael Van Canneyt <michael at freepascal.org>:
>
>> 
>> 
>> On Tue, 2 Jun 2009, Michael Van Canneyt wrote:
>> 
>>> 
>>> 
>>> On Tue, 2 Jun 2009, Vincent Snijders wrote:
>>> 
>>>> Michael Van Canneyt schreef:
>>>>> 
>>>>> 
>>>>> On Mon, 1 Jun 2009, Mattias Gaertner wrote:
>>>>> 
>>>>>> Hi fpmake devels,
>>>>>> 
>>>>>> fpmake uses as ppu output directory for example:
>>>>>> units/i386-linux/
>>>>>> And there is no way to change this. Right?
>>>>>> 
>>>>>> Some LCL packages have different PPUs per widgetset, so they need an
>>>>>> output directory per widgetset. At the moment they use for example:
>>>>>> units/i386-linux-gtk2/
>>>>>> Another example is to distinguish between release and debug version.
>>>>>> 
>>>>>> What is the best/recommended way to solve this with fpmake?
>>>>> 
>>>>> You can't in this way.
>>>> 
>>>> So, no debug and release version on one computer?
>>> 
>>> Not in this way, at least.
>> 
>> Hi,
>> 
>> Peter Vreman reminded me that we had this discussion on core about a year
>> ago. The solution we came up with was a 'subtarget' or 'configuration'.
>> 
>> This was simply an option to fpmake, which would alter the output path and
>> search paths. It was needed to discern between debug and non-debug, PIC and 
>> non-PIC code etc.
>> 
>> So there would be
>> 
>> fpmake --subtarget=debug
>> 
>> Which would send output in
>> 
>> units/i386-linux-debug
>> 
>> So maybe this can be used for the widgetsets, debug-non debug etc.
>> 
>> Beware: AFAIK it has not yet been implemented, but that was the initial
>> idea.
>
> Thanks.
> Maybe this can be used for debug/release.
> I don't see how this can be used for the widgetsets.

Why not ? you can use
  subtarget=gtk2-debug

>
> My dream is this:
> User opens a project and/or package and the IDE uses fppkg to download and 
> install automatically the missing packages.
> Some packages like the LCL are already installed via lazarus. So somehow 
> fppkg needs to know, that some packages don't need be downloaded from the 
> repositories. Maybe lazarus can register a local repository?

fppkg will see what is installed locally, and will not download what is
already there (unless the versions don't match).

The point is that the LCL must be installed in the package system, so fppkg
knows about it. That means an additional copy operation.

If you don't want that, then we must see about 'registering' local
build trees in fppkg; By this I mean that fppkg assumes that all is
installed under

~user/.fppkg/build/

(or something like it)

if you don't want this, you should be able to tell it that it should also look in 
e.g.

/path/to/lazarusdir/components/

To find additional packages there.

Michael.


More information about the fpc-pascal mailing list