summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2020-04-27 18:28:45 +0000
committerMatthias Clasen <mclasen@redhat.com>2020-04-27 18:28:45 +0000
commit2e2e22a2702acf8cd08feb9c4c32c5e321b19eb7 (patch)
tree44679985204c3b626941e598c29ce4db80c16360
parentdb39ce2b1699acaf5d0ba160cf7cc68ccf6e16d6 (diff)
parent00aaba4d5bd307b3c499437c2ada1914c0cd5345 (diff)
downloadgtk+-2e2e22a2702acf8cd08feb9c4c32c5e321b19eb7.tar.gz
Merge branch 'ci-version-check' into 'gtk-3-24'
Keep interface age in sync between Autotools and Meson See merge request GNOME/gtk!1775
-rwxr-xr-xcheck-version.py51
-rw-r--r--meson.build2
2 files changed, 47 insertions, 6 deletions
diff --git a/check-version.py b/check-version.py
index 204a4f6049..46bcc3ac4e 100755
--- a/check-version.py
+++ b/check-version.py
@@ -73,6 +73,26 @@ CONFIGURE_MICRO_VERSION_RE = re.compile(
re.UNICODE | re.VERBOSE
)
+CONFIGURE_INTERFACE_AGE_RE = re.compile(
+ r'''
+ ^
+ \s*
+ m4_define\(
+ \s*
+ \[gtk_interface_age\]
+ \s*
+ ,
+ \s*
+ \[
+ (?P<age>[0-9]+)
+ \]
+ \s*
+ \)
+ $
+ ''',
+ re.UNICODE | re.VERBOSE
+)
+
MESON_VERSION_RE = re.compile(
r'''
^
@@ -95,6 +115,13 @@ MESON_VERSION_RE = re.compile(
re.UNICODE | re.VERBOSE
)
+MESON_INTERFACE_AGE_RE = re.compile(
+ r'''
+ ^\s*gtk_interface_age\s*={1}\s*(?P<age>[0-9]+)\s*$
+ ''',
+ re.UNICODE | re.VERBOSE
+)
+
version = {}
with open(configure_ac, 'r') as f:
@@ -124,11 +151,19 @@ with open(configure_ac, 'r') as f:
version['micro'] = res.group('version')
line = f.readline()
continue
- if ('major', 'minor', 'micro') in version:
+ res = CONFIGURE_INTERFACE_AGE_RE.match(line)
+ if res:
+ if 'age' in version:
+ print(f'Redefinition of interface age; age is already set to {version["age"]}')
+ sys.exit(1)
+ version['age'] = res.group('age')
+ line = f.readline()
+ continue
+ if ('major', 'minor', 'micro', 'age') in version:
break
line = f.readline()
-print(f'GTK version defined in {configure_ac}: {version["major"]}.{version["minor"]}.{version["micro"]}')
+print(f'GTK version defined in {configure_ac}: {version["major"]}.{version["minor"]}.{version["micro"]} (age: {version["age"]})')
configure_version = version
version = {}
@@ -139,16 +174,22 @@ with open(meson_build, 'r') as f:
while line:
if line.startswith('project('):
inside_project = True
- elif inside_project:
+ if inside_project:
res = MESON_VERSION_RE.match(line)
if res:
version['major'] = res.group('major')
version['minor'] = res.group('minor')
version['micro'] = res.group('micro')
- break
+ if inside_project and line.endswith(')'):
+ inside_project = False
+ res = MESON_INTERFACE_AGE_RE.match(line)
+ if res:
+ version['age'] = res.group('age')
+ if ('major', 'minor', 'micro', 'age') in version:
+ break
line = f.readline()
-print(f'GTK version defined in {meson_build}: {version["major"]}.{version["minor"]}.{version["micro"]}')
+print(f'GTK version defined in {meson_build}: {version["major"]}.{version["minor"]}.{version["micro"]} (age: {version["age"]})')
meson_version = version
diff --git a/meson.build b/meson.build
index 68d5685937..976a84b6c0 100644
--- a/meson.build
+++ b/meson.build
@@ -51,7 +51,7 @@ gtk_version = meson.project_version()
gtk_major_version = gtk_version.split('.')[0].to_int()
gtk_minor_version = gtk_version.split('.')[1].to_int()
gtk_micro_version = gtk_version.split('.')[2].to_int()
-gtk_interface_age = 7
+gtk_interface_age = 16
add_project_arguments('-DGTK_VERSION="@0@"'.format(meson.project_version()), language: 'c')
add_project_arguments('-D_GNU_SOURCE', language: 'c')