diff options
author | Taylor Holberton <taylorcholberton@gmail.com> | 2018-12-17 08:53:43 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-17 08:53:43 -0500 |
commit | a4ac5f5a3b09f3d646ad8e777f43810a8c5ba3da (patch) | |
tree | a830e853561fb5215850b1de748d23f7fe4562c2 | |
parent | c3cdfc490bf902e45e250702a2106c6d2a5ea5ab (diff) | |
parent | 443542bfd30318ddbe3d1c7c029f90386b541347 (diff) |
Merge pull request #121 from tp-m/meson-extract-version-from-header
meson: extract project version from header file and version .so
-rw-r--r-- | meson.build | 5 | ||||
-rwxr-xr-x | version.py | 25 |
2 files changed, 29 insertions, 1 deletions
diff --git a/meson.build b/meson.build index e09a8be..67607a1 100644 --- a/meson.build +++ b/meson.build @@ -1,10 +1,13 @@ -project ('tinyalsa', 'c', version : '1.1.1', meson_version : '>= 0.48.0') +project ('tinyalsa', 'c', + version : run_command(find_program('version.py')).stdout().strip(), + meson_version : '>= 0.48.0') tinyalsa_includes = include_directories('.', 'include') tinyalsa = library('tinyalsa', 'src/mixer.c', 'src/pcm.c', include_directories: tinyalsa_includes, + version: meson.project_version(), install: true) # For use as a Meson subproject diff --git a/version.py b/version.py new file mode 100755 index 0000000..892dbdb --- /dev/null +++ b/version.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python3 +# +# tinyalsa version.py: Extracts versions from TINYALSA_VERSION_STRING in +# include/tinyalsa/version.h header file for Meson build. +import os +import sys + +if __name__ == '__main__': + try: + srcroot = os.environ['MESON_SOURCE_ROOT'] + except: + srcroot = os.getcwd() + print('Warning: MESON_SOURCE_ROOT env var not set, assuming source code is in', srcroot, file=sys.stderr) + + # API version + api_version = None + f = open(os.path.join(srcroot, 'include', 'tinyalsa', 'version.h'), 'r') + for line in f: + if line.startswith('#define TINYALSA_VERSION_STRING '): + api_version = line[32:].strip().replace('"', '') + print(api_version) + sys.exit(0) + + print('Warning: Could not extract API version from TINYALSA_VERSION_STRING in include/tinyalsa/version.h in', srcroot, file=sys.stderr) + sys.exit(-1) |