summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am1
-rw-r--r--meson.build2
-rwxr-xr-xversion.py31
3 files changed, 33 insertions, 1 deletions
diff --git a/Makefile.am b/Makefile.am
index 7354c3e2e..3ad73fed7 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -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 \
diff --git a/meson.build b/meson.build
index 8ea73bee4..111edd099 100644
--- a/meson.build
+++ b/meson.build
@@ -1,6 +1,6 @@
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')
diff --git a/version.py b/version.py
new file mode 100755
index 000000000..3b663abed
--- /dev/null
+++ b/version.py
@@ -0,0 +1,31 @@
+#!/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))