meson: Maintain macOS ABI through dylib versioning
authorNirbheek Chauhan <nirbheek@centricular.com>
Fri, 31 Aug 2018 09:06:30 +0000 (14:36 +0530)
committerNirbheek Chauhan <nirbheek@centricular.com>
Fri, 31 Aug 2018 09:10:43 +0000 (14:40 +0530)
Requires Meson 0.48, but the feature will be ignored on older versions
so it's safe to add it without bumping the requirement.

Documentation:
https://github.com/mesonbuild/meson/blob/master/docs/markdown/Reference-manual.md#shared_library

13 files changed:
gst-libs/gst/allocators/meson.build
gst-libs/gst/app/meson.build
gst-libs/gst/audio/meson.build
gst-libs/gst/fft/meson.build
gst-libs/gst/gl/meson.build
gst-libs/gst/pbutils/meson.build
gst-libs/gst/riff/meson.build
gst-libs/gst/rtp/meson.build
gst-libs/gst/rtsp/meson.build
gst-libs/gst/sdp/meson.build
gst-libs/gst/tag/meson.build
gst-libs/gst/video/meson.build
meson.build

index fc8b696..6f9bf21 100644 (file)
@@ -14,6 +14,7 @@ gstallocators = library('gstallocators-@0@'.format(api_version),
   include_directories: [configinc, libsinc],
   version : libversion,
   soversion : soversion,
+  darwin_versions : osxversion,
   install : true,
   dependencies : [gst_dep],
 )
index c6597ba..98ded45 100644 (file)
@@ -24,6 +24,7 @@ gstapp = library('gstapp-@0@'.format(api_version),
   include_directories: [configinc, libsinc],
   version : libversion,
   soversion : soversion,
+  darwin_versions : osxversion,
   install : true,
   dependencies : [gst_base_dep],
 )
index dea2757..cff5ae0 100644 (file)
@@ -145,6 +145,7 @@ gstaudio = library('gstaudio-@0@'.format(api_version),
   link_with : simd_dependencies,
   version : libversion,
   soversion : soversion,
+  darwin_versions : osxversion,
   install : true,
   dependencies : gstaudio_deps,
 )
index 924ab7e..40a6700 100644 (file)
@@ -31,6 +31,7 @@ gstfft = library('gstfft-@0@'.format(api_version),
   include_directories: [configinc, libsinc],
   version : libversion,
   soversion : soversion,
+  darwin_versions : osxversion,
   install : true,
   dependencies : [gst_dep, libm],
 )
index 92027a2..51a2603 100644 (file)
@@ -872,6 +872,7 @@ if build_gstgl
     include_directories : [configinc, libsinc, gl_includes],
     version : libversion,
     soversion : soversion,
+  darwin_versions : osxversion,
     install : true,
     dependencies : [gst_base_dep, video_dep, allocators_dep, gmodule_dep,
                     gl_lib_deps, gl_platform_deps, gl_winsys_deps, gl_misc_deps])
index 1bc537d..b8b9309 100644 (file)
@@ -54,6 +54,7 @@ pbutils = library('gstpbutils-@0@'.format(api_version),
   include_directories: [configinc, libsinc],
   version : libversion,
   soversion : soversion,
+  darwin_versions : osxversion,
   install : true,
   dependencies : gstpbutils_deps,
 )
index 9662e71..290d49e 100644 (file)
@@ -20,6 +20,7 @@ gstriff = library('gstriff-@0@'.format(api_version),
   include_directories: [configinc, libsinc],
   version : libversion,
   soversion : soversion,
+  darwin_versions : osxversion,
   install : true,
   dependencies : riff_deps,
 )
index d6fabf4..b466da5 100644 (file)
@@ -38,6 +38,7 @@ gst_rtp = library('gstrtp-@0@'.format(api_version),
   include_directories: [configinc, libsinc],
   version : libversion,
   soversion : soversion,
+  darwin_versions : osxversion,
   install : true,
   dependencies : gstrtp_deps,
 )
index 005cc9f..86c1e5b 100644 (file)
@@ -45,6 +45,7 @@ gst_rtsp = library('gstrtsp-@0@'.format(api_version),
   include_directories: [configinc, libsinc],
   version : libversion,
   soversion : soversion,
+  darwin_versions : osxversion,
   install : true,
   dependencies : gstrtsp_deps,
 )
index ca61072..59ffdbc 100644 (file)
@@ -15,6 +15,7 @@ gstsdp = library('gstsdp-@0@'.format(api_version),
   include_directories: [configinc, libsinc],
   version : libversion,
   soversion : soversion,
+  darwin_versions : osxversion,
   install : true,
   dependencies : rtsp_deps,
 )
index 010140b..423869c 100644 (file)
@@ -79,6 +79,7 @@ gsttag = library('gsttag-@0@'.format(api_version),
   include_directories: [configinc, libsinc],
   version : libversion,
   soversion : soversion,
+  darwin_versions : osxversion,
   install : true,
   dependencies : tag_deps,
 )
index 9225a2e..2f9aacb 100644 (file)
@@ -124,6 +124,7 @@ gstvideo = library('gstvideo-@0@'.format(api_version),
   include_directories: [configinc, libsinc],
   version : libversion,
   soversion : soversion,
+  darwin_versions : osxversion,
   install : true,
   dependencies : gstvideo_deps,
 )
index 9228868..b5fe51e 100644 (file)
@@ -27,8 +27,9 @@ api_version = '1.0'
 soversion = 0
 # maintaining compatibility with the previous libtool versioning
 # current = minor * 100 + micro
-# FIXME: should be able to convert string to int somehow so we can just do maths
-libversion = '@0@.@1@.0'.format(soversion, gst_version_minor * 100 + gst_version_micro)
+curversion = gst_version_minor * 100 + gst_version_micro
+libversion = '@0@.@1@.0'.format(soversion, curversion)
+osxversion = curversion + 1
 
 plugins_install_dir = '@0@/gstreamer-1.0'.format(get_option('libdir'))