aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2020-01-22 21:03:30 +0100
committerSimon Ser <contact@emersion.fr>2020-01-24 11:17:03 +0100
commit1f722f5c800b1e422ffa480710d7af7c1e7dc0c4 (patch)
treec02a443fd9f6626baf781ee5ce4a905349df408a
parent70a084c119695c7d82b4e3a97c35555d0af91d62 (diff)
build: replace version with soversion
This allows us to have a single number to update when doing a release. This drops WLR_VERSION_API_* definitions.
-rwxr-xr-xcontrib/_incr_version29
-rw-r--r--include/wlr/meson.build11
-rw-r--r--meson.build11
3 files changed, 22 insertions, 29 deletions
diff --git a/contrib/_incr_version b/contrib/_incr_version
index 376be44c..949c845b 100755
--- a/contrib/_incr_version
+++ b/contrib/_incr_version
@@ -3,31 +3,26 @@ old_version="$1"
new_version="$2"
sed -i meson.build -e "s/version: '$old_version'/version: '$new_version'/g"
-printf "Backwards-incompatible ABI changes? (y/n) "
-read inc_age
-if [ "$inc_age" = 'n' ]
+bugfix='n'
+printf "Breaking API changes? (y/n) "
+read breaking
+if [ "$breaking" = 'n' ]
then
- printf "Interface(s) added, removed, or changed? (y/n) "
- read inc_current
+ printf "Bugfix release (no backwards-incompatible ABI changes)? (y/n) "
+ read bugfix
fi
-so_version=$(egrep '^so_version =' meson.build | cut -d'[' -f2- | cut -d']' -f1)
-current=$(echo "$so_version" | cut -d',' -f1 | sed -e "s/'//g" -e "s/ //g")
-revision=$(echo "$so_version" | cut -d',' -f2 | sed -e "s/'//g" -e "s/ //g")
-age=$(echo "$so_version" | cut -d',' -f3 | sed -e "s/'//g" -e "s/ //g")
+soversion=$(egrep '^soversion =' meson.build | cut -d'=' -f2-)
+soversion=$((soversion))
-if [ "$inc_age" = 'y' ]
+if [ "$bugfix" != 'y' ]
then
- age=$((age+1))
- current=$((current+1))
-elif [ "$inc_current" = 'y' ]
-then
- current=$((current+1))
+ soversion=$((soversion+1))
fi
-revision=$((revision+1))
sed -i meson.build \
- -e "s/so_version = .*/so_version = ['$current', '$revision', '$age']/g"
+ -e "s/soversion = .*/soversion = $soversion/g"
+exit 1
git add meson.build
git commit -m "Update version to $new_version"
diff --git a/include/wlr/meson.build b/include/wlr/meson.build
index 032c08d2..4e79d068 100644
--- a/include/wlr/meson.build
+++ b/include/wlr/meson.build
@@ -1,12 +1,9 @@
version_array = meson.project_version().split('.')
version_data = configuration_data()
-version_data.set_quoted('WLR_VERSION_STR', meson.project_version())
-version_data.set('WLR_VERSION_MAJOR', version_array[0])
-version_data.set('WLR_VERSION_MINOR', version_array[1])
-version_data.set('WLR_VERSION_MICRO', version_array[2])
-version_data.set('WLR_VERSION_API_CURRENT', so_version[0])
-version_data.set('WLR_VERSION_API_REVISION', so_version[1])
-version_data.set('WLR_VERSION_API_AGE', so_version[2])
+version_data.set_quoted('WLR_VERSION_STR', meson.project_version())
+version_data.set('WLR_VERSION_MAJOR', version_array[0])
+version_data.set('WLR_VERSION_MINOR', version_array[1])
+version_data.set('WLR_VERSION_MICRO', version_array[2])
conf_h = configure_file(
input: 'config.h.in',
diff --git a/meson.build b/meson.build
index 9096d43f..dd4f1e4d 100644
--- a/meson.build
+++ b/meson.build
@@ -11,10 +11,11 @@ project(
],
)
-# Format of so_version is CURRENT, REVISION, AGE.
-# See: https://autotools.io/libtool/version.html
-# for a reference about clean library versioning.
-so_version = ['5', '9', '1']
+# When doing a major or minor release, *always* increase soversion. This isn't
+# necessary for bugfix releases. Increasing soversion is required because
+# wlroots never guarantees ABI stability -- only API stability is guaranteed
+# between minor releases.
+soversion = 5
add_project_arguments([
'-DWLR_USE_UNSTABLE',
@@ -152,7 +153,7 @@ symbols_file = 'wlroots.syms'
symbols_flag = '-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(), symbols_file)
lib_wlr = library(
meson.project_name(), wlr_files,
- version: '.'.join(so_version),
+ soversion: soversion,
dependencies: wlr_deps,
include_directories: [wlr_inc, proto_inc],
install: true,