From 56c1e7c61528c5cf2b66b6193ac348046b3ca285 Mon Sep 17 00:00:00 2001 From: Arun Raghavan Date: Thu, 11 Oct 2018 19:38:19 +0530 Subject: [PATCH] build-sys: Fix meson version detection logic This sync the meson version detection to match what we do in the autotools build, which is to use git-version-gen, which in turn looks for /.tarball-version, or generates the version based on a git tag or environment variable. --- meson.build | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/meson.build b/meson.build index 5b8b22fe2..9a68a1c7e 100644 --- a/meson.build +++ b/meson.build @@ -1,14 +1,21 @@ project('pulseaudio', 'c', 'cpp', - version : '10.99.1', + version : run_command(find_program('git-version-gen'), join_paths(meson.current_source_dir(), '.tarball-version')).stdout().strip(), meson_version : '>= 0.44.0', default_options : [ 'c_std=gnu11', 'cpp_std=c++11' ] ) -pa_version = meson.project_version() -version_split = pa_version.split('.') -pa_version_major = version_split[0] +pa_version_str = meson.project_version() +# For tarballs, the first split will do nothing, but for builds in git, we +# split out suffixes when there are commits since the last tag +# (e.g.: v11.99.1-3-gad14bdb24 -> v11.99.1) +version_split = pa_version_str.split('-')[0].split('.') +pa_version_major = version_split[0].split('v')[0] pa_version_minor = version_split[1] -pa_version_micro = version_split[2] +if version_split.length() > 2 + pa_version_micro = version_split[2] +else + pa_version_micro = '0' +endif pa_version_major_minor = pa_version_major + '.' + pa_version_minor pa_api_version = 12 @@ -31,7 +38,7 @@ cc = meson.get_compiler('c') cdata = configuration_data() cdata.set_quoted('PACKAGE', 'pulseaudio') cdata.set_quoted('PACKAGE_NAME', 'pulseaudio') -cdata.set_quoted('PACKAGE_VERSION', pa_version) +cdata.set_quoted('PACKAGE_VERSION', pa_version_str) cdata.set_quoted('CANONICAL_HOST', host_machine.cpu()) cdata.set('PA_MAJOR', pa_version_major) cdata.set('PA_MINOR', pa_version_minor)