On Mon, Nov 06, 2023 at 02:49:07PM +0100, Ahmad Fatoum wrote: > Makefile.am has following defines for libtool versioning: > > LIBDT_CURRENT=6 > LIBDT_REVISION=0 > LIBDT_AGE=0 > > along with a comment on how the values were chosen. Copy the comment and > the values into the meson.build as well, so appropriate symlinks > pointing at the versioned library are created. We forego the extra > complexity of having a common file that's read from both build systems > as we are intent on phasing out autotools anyway, once wrinkles such as > what's fixed here are ironed out. > > The translation from libtool versioning to major/minor/revision as > expected by meson is taken from GNOME's gcab[1]. More information > about libtool versioning is available in its documentation[2]. > > [1]: https://gitlab.gnome.org/GNOME/gcab/-/commit/2c8048f74ec8c088397 > [2]: > https://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html > > Reported-by: Enrico Jörns <e.joe...@pengutronix.de> > Signed-off-by: Ahmad Fatoum <a.fat...@pengutronix.de>
Thanks, this patch is now released in v2023.11.0. - Roland > --- > v1 -> v2: > - set library version major as current - age > --- > meson.build | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/meson.build b/meson.build > index 9579e712dfea..6489e4c4d52e 100644 > --- a/meson.build > +++ b/meson.build > @@ -122,6 +122,18 @@ versiondep = declare_dependency(sources: version_h) > > meson.add_dist_script('version-gen', meson.project_version()) > > +# If the library source code has changed at all since the last release, > +# then increment revision (‘c:r:a’ becomes ‘c:r+1:a’). > +# If any interfaces have been added/removed/changed since the last release, > +# then increment current, and set revision to 0. > +# If any public interfaces have been added since the last public release, > +# then increment age. > +# If any interfaces have been removed or changed since the last release, > +# then set age to 0. > +lt_current = 6 > +lt_revision = 0 > +lt_age = 0 > + > mapfile = 'src/libdt-utils.sym' > libdt_ld_flags = > '-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(), mapfile) > > @@ -133,6 +145,7 @@ libdt = shared_library('dt-utils', > c_args : ['-include', meson.current_build_dir() / 'version.h'], > dependencies : [udevdep, versiondep], > gnu_symbol_visibility : 'default', > + version: '@0@.@1@.@2@'.format(lt_current - lt_age, lt_age, lt_revision), > install : true) > > executable('barebox-state', > -- > 2.39.2 > > > -- Roland Hieber, Pengutronix e.K. | r.hie...@pengutronix.de | Steuerwalder Str. 21 | https://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |