[glib/nirbheek/macos-library-versions: 230/230] meson: Add macOS libtool versioning for ABI compatibility



commit 8b3590c23149e8d85a40d39cccab2c61631466dc
Author: Nirbheek Chauhan <nirbheek centricular com>
Date:   Wed Aug 29 15:36:23 2018 +0530

    meson: Add macOS libtool versioning for ABI compatibility
    
    With this, the compatibility version and current version values in macOS
    and iOS dylibs will match the values set by Autotools.
    
    See: https://github.com/mesonbuild/meson/issues/1451

 gio/meson.build     | 1 +
 glib/meson.build    | 1 +
 gmodule/meson.build | 1 +
 gobject/meson.build | 1 +
 gthread/meson.build | 1 +
 meson.build         | 4 +++-
 6 files changed, 8 insertions(+), 1 deletion(-)
---
diff --git a/gio/meson.build b/gio/meson.build
index 7f2c08e30..ab3834586 100644
--- a/gio/meson.build
+++ b/gio/meson.build
@@ -797,6 +797,7 @@ libgio = library('gio-2.0',
   objects : internal_objects,
   version : library_version,
   soversion : soversion,
+  darwin_versions : darwin_versions,
   install : true,
   include_directories : [configinc, gioinc],
   #  '$(gio_win32_res_ldflag)',
diff --git a/glib/meson.build b/glib/meson.build
index 6fc56da7c..1a500fa81 100644
--- a/glib/meson.build
+++ b/glib/meson.build
@@ -256,6 +256,7 @@ libglib = library('glib-2.0',
   objects : [charset_lib.extract_all_objects()] + gnulib_objects + pcre_objects,
   version : library_version,
   soversion : soversion,
+  darwin_versions : darwin_versions,
   install : true,
   # intl.lib is not compatible with SAFESEH
   link_args : [noseh_link_args, glib_link_flags, win32_ldflags],
diff --git a/gmodule/meson.build b/gmodule/meson.build
index 8bb61897b..2c8a5ea20 100644
--- a/gmodule/meson.build
+++ b/gmodule/meson.build
@@ -99,6 +99,7 @@ libgmodule = library('gmodule-2.0',
   sources : gmodule_sources,
   version : library_version,
   soversion : soversion,
+  darwin_versions : darwin_versions,
   install : true,
   include_directories : [configinc, gmoduleinc],
   dependencies : [libdl_dep, libglib_dep],
diff --git a/gobject/meson.build b/gobject/meson.build
index d8d421df8..d426f12b4 100644
--- a/gobject/meson.build
+++ b/gobject/meson.build
@@ -66,6 +66,7 @@ libgobject = library('gobject-2.0',
   sources : gobject_sources,
   version : library_version,
   soversion : soversion,
+  darwin_versions : darwin_versions,
   install : true,
   include_directories : [configinc],
   dependencies : [libffi_dep, libglib_dep],
diff --git a/gthread/meson.build b/gthread/meson.build
index 515479ba1..a626ee84b 100644
--- a/gthread/meson.build
+++ b/gthread/meson.build
@@ -16,6 +16,7 @@ libgthread = library('gthread-2.0',
   sources : gthread_sources,
   version : library_version,
   soversion : soversion,
+  darwin_versions : darwin_versions,
   install : true,
   dependencies : [libglib_dep],
   c_args : ['-DG_LOG_DOMAIN="GThread"' ] + glib_hidden_visibility_args,
diff --git a/meson.build b/meson.build
index d562e8e87..f2ffd9919 100644
--- a/meson.build
+++ b/meson.build
@@ -45,7 +45,9 @@ binary_age = 100 * minor_version + micro_version
 soversion = 0
 # Maintain compatibility with previous libtool versioning
 # current = minor * 100 + micro
-library_version = '@0@.@1@.@2@'.format(soversion, binary_age - interface_age, interface_age)
+current = binary_age - interface_age
+library_version = '@0@.@1@.@2@'.format(soversion, current, interface_age)
+darwin_versions = [current + 1, '@0@.@1@'.format(current + 1, interface_age)]
 
 configinc = include_directories('.')
 glibinc = include_directories('glib')


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]