[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