Commit c3e48e63 authored by Tim-Philipp Müller's avatar Tim-Philipp Müller 🐠
Browse files

meson: extract meson version from cairo-version.h

Same as autotools does. Arguably it would be better to do
it the other way round and generate cairo-version.h from
the version in meson.build or configure.ac but for now
let's do this so it's at least in sync with the autotools
build and only one file has to be edited for releases.
parent a6773501
......@@ -56,6 +56,7 @@ EXTRA_DIST += \
EXTRA_DIST += \
meson.build \
meson_options.txt \
version.py \
boilerplate/make-cairo-boilerplate-constructors.py \
boilerplate/meson.build \
src/meson.build \
......
project('cairo', 'c', 'cpp',
meson_version: '>= 0.54.0',
version: '1.17.3',
version: run_command(find_program('version.py'), check: true).stdout().strip(),
)
cc = meson.get_compiler('c')
......
#!/usr/bin/env python3
#
# cairo version.py
#
# Extracts the version from cairo-version.h for the meson build files.
#
import os
import sys
if __name__ == '__main__':
srcroot = os.path.dirname(__file__)
version_major = None
version_minor = None
version_micro = None
f = open(os.path.join(srcroot, 'src', 'cairo-version.h'), 'r')
for line in f:
if line.startswith('#define CAIRO_VERSION_MAJOR '):
version_major = line[28:].strip()
if line.startswith('#define CAIRO_VERSION_MINOR '):
version_minor = line[28:].strip()
if line.startswith('#define CAIRO_VERSION_MICRO '):
version_micro = line[28:].strip()
f.close()
if not (version_major and version_minor and version_micro):
print('ERROR: Could not extract cairo version from cairo-version.h in', srcroot, file=sys.stderr)
sys.exit(-1)
print('{0}.{1}.{2}'.format(version_major, version_minor, version_micro))
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment