[fpc-pascal] Re: [Bulk] Re: Namespaces Support

Marcos Douglas md at delfire.net
Mon Nov 4 15:08:13 CET 2013

On Mon, Nov 4, 2013 at 10:45 AM, Dmitry Boyarintsev
<skalogryz.lists at gmail.com> wrote:
> On Mon, Nov 4, 2013 at 8:07 AM, Marcos Douglas <md at delfire.net> wrote:
>> >> First, if you have a lib that have dependencies to another lib, you
>> >> have to provide all sources together -- in the same directory or
>> >> subdirectories.  For this case just use the rule #1.
>> >> But, if you did not provide the sources for the other lib, the user
>> >> will need to define the "ALIAS" to the lib that have dependencies
>> >> before compile it (package). For this case use the rule #2.
>> >
>> > Changing the structure of a project is a big NO. For a number of
>> > reasons:
>> There is no changes! The change is a new parameter (OPTIONAL) in the
>> compiler... just this.
> so again, how should rule #2 work in the following case:
> program\unit1.pas
> program\StrUtils.pas
> program\unit2.pas
> lib\StrUtils.pas
> otherlib\ExtraUtils.pas
> ExtraUtils depends on StrUtils.pas from "lib". But "otherlib" is not a
> subdirectory of lib.
> unti1.pas users StrUtils.pas from "lib".
> unit2.pas uses StrUtils.pas from "program"
> How could I compile with structure using ALIAS?

1- You need to specify the alias for compile the program (I will
invent the sintaxe now):
-ALIAS=TheLib at lib\*
-ALIAS=OtherLib at otherlib\*

2- If ExtraUtils depends on StrUtils.pas from "lib". But "otherlib" is
not a subdirectory of lib then the "otherlib needs to be compiled
using a ALIAS:
-ALIAS=TheLib at lib\*

3- If unti1.pas (program) uses StrUtils.pas from "lib".

4- unit2.pas uses StrUtils.pas from "program" so, this is default:
uses StrUtils;

5- But you can define an alias for your program too:
And now:

I guess that you guess that the problem is the "otherlib" to use "lib"
but you can define -- or you could -- many ALIAS for the same
directory. Thus you can define your own ALIAS for "lib" and the
"otherlib" (a 3rd-party package) can define another. ;-)

But, for me, doesn't any sense the otherlib does not know the lib's sources.

Best regards,
Marcos Douglas

More information about the fpc-pascal mailing list