On Tue, 8 Nov 2016, Mattias Gaertner via Lazarus wrote:

On Tue, 8 Nov 2016 13:08:41 +0100 (CET)
Michael Van Canneyt <mich...@freepascal.org> wrote:

[...]
I'm not sure we're talking about the same thing. I don't know what 'version
unit' you mean ?

For example lazarus/lcl/lclversion.pas


[...]
As far as I know, the version number of a lazarus packages lives outside the
sources, it resides just in the LPK.

Yes.

I now use some XML routines to extract
this version number from the .lpk and write it in the abovementioned include file. This happens in our build system.

The IDE could write the version to some file (or update an existing
file). What would be a good place?

A unit in the package. If you need the version, you use the unit.
packagename_version.p(p|pas)


For example when package A needs to know the version of a required
package B the version must be stored either in a unit of A or B.
Storing it in B avoids redundancy, but when B is read only it needs
to be stored in A.

Well, I will always control every package, so for me this question is
academic. But it seems to me that if B doesn't provide the version, then the user is simply out of luck. If you really want to go that far,
you could split the option in the package options:

[x] Generate unit with version number
   [x] Generate version numbers for all used packages

Then

unit a_version;

interface
  AVersionStr  = '1.2.3';
  BversionStr  = '2.3.4';

implementation

end.

Or somesuch...

Michael.
--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
http://lists.lazarus-ide.org/listinfo/lazarus

Reply via email to