[Gambas-user] Sharing libraries across projects

Christof Thalhofer chrisml at ...3340...
Tue Jan 26 10:31:49 CET 2016


Am 26.01.2016 um 01:31 schrieb Benoît Minisini:
> Here is a proposal, tell me what you think.
> 
> 1) When you create a project library, you will have to specify a vendor.

Good, but look at the end of my post.

> 2) When creating the library executable of a library project, a symbolic 
> link to the executable will be created in 
> '~/.local/share/gambas3/lib/<vendor>'.

At development time, right? Then that is good.

> 3) When another project wants to use that library, it stores in its 
> project configuration file the relative path '<vendor>/<library>'. 
> Through the symbolic link created in 2), the true library executable 
> will be found by the IDE and by the project at runtime.

The IDE finds it in
~/.local/share/gambas3/lib/<vendor>

Later at runtime the project finds it in
/usr/lib/gambas3/vendor

Ok, but I'd like it in
/usr/lib/$vendor/gambas3
or
/usr/share/$vendor/gambas3

Could that path be configurable?

> 5) When running a project using a library outside of the IDE (i.e. not 
> in debugging mode), the project will search its libraries in 
> '/usr/lib/gambas3' (or maybe '/usr/share/gambas3/lib'). Never in 
> '~/.local/share/gambas3/lib' for security reasons. Tell me if I am 
> paranoid here.

No, that is very important!

I have the same software installed on my computer, that I am actually
developing. If I change the libs in the dev-version, the behaviour of
the software, that is installed and working must not change!

> 6) A project can use a library whose only the executable is installed. 
> The IDE must present the user everything it finds in 
> '~/.local/share/gambas3/lib' and '/usr/lib/gambas3' sub-directories when 
> selecting a library. It will search the '<vendor>/<library>' stored in 
> the project configuration file first in '~/.local/share/gambas3/lib', 
> then in '/usr/lib/gambas3'.

Ok.

> 7) Backward-compatibility. If a project library has no vendor, then the 
> old behaviour will be retained:
> - No symbolic link is created.
> - The project using it stores its absolute path.
> - When creating a package, the library executable is stored in the same 
> place as normal executables.
> - When the project runs outside of the IDE, the library is searched in 
> '/bin' and '/usr/bin' only.

Ok.

> I'd like all that stuff as simple as possible. If you can simplify it 
> and keep all the features we need, just tell me!

You could instead give the author the chance to define a path where to
find own libs at runtime. I would prefer that because I would store libs in

/usr/lib/$vendor/gambas

or in

/usr/local/lib/$vendor/gambas

so /usr/lib/gambas3 remains untouched by my software.


Alles Gute

Christof Thalhofer

-- 
Dies ist keine Signatur

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: OpenPGP digital signature
URL: <http://lists.gambas-basic.org/pipermail/user/attachments/20160126/6e128254/attachment.sig>


More information about the User mailing list