Files
RedBear-OS/recipes/libs/cairo/source/version.py
T
vasilito ff4ff35918 feat: track all source trees in git — full fork offline-first model
Red Bear OS is a full fork. All sources must be available from git clone
with zero network access. Removed gitignore rules that excluded fetched
source trees under recipes/*/source/, local/recipes/kde/*/source/,
local/recipes/qt/*/source/, and vendor source trees.

Build artifacts (target/, build/, source.tar, *.o, *.so) remain excluded.

127291 files added — kernel, relibc, base, bootloader, pkgar, all KDE/Qt
frameworks, mesa, wayland, DRM drivers, and every other recipe source.
2026-05-14 10:55:53 +01:00

54 lines
1.4 KiB
Python
Executable File

#!/usr/bin/env python3
#
# cairo version.py
#
# Extracts the version from cairo-version.h for the meson build files.
#
import os
import re
import sys
MAJOR_RE = re.compile(
r'^\s*#\s*define\s+CAIRO_VERSION_MAJOR\s+(?P<number>[0-9]+)\s*$',
re.UNICODE)
MINOR_RE = re.compile(
r'^\s*#\s*define\s+CAIRO_VERSION_MINOR\s+(?P<number>[0-9]+)\s*$',
re.UNICODE)
MICRO_RE = re.compile(
r'^\s*#\s*define\s+CAIRO_VERSION_MICRO\s+(?P<number>[0-9]+)\s*$',
re.UNICODE)
version_major = None
version_minor = None
version_micro = None
srcroot = os.path.dirname(__file__)
version_h = os.path.join(srcroot, "src", "cairo-version.h")
with open(version_h, "r", encoding="utf-8") as f:
for line in f:
res = MAJOR_RE.match(line)
if res:
assert version_major is None
version_major = res.group('number')
continue
res = MINOR_RE.match(line)
if res:
assert version_minor is None
version_minor = res.group('number')
continue
res = MICRO_RE.match(line)
if res:
assert version_micro is None
version_micro = res.group('number')
continue
if not (version_major and version_minor and version_micro):
print(f"ERROR: Could not extract version from cairo-version.h in {srcroot}", file=sys.stderr) # noqa
sys.exit(-1)
print(f"{version_major}.{version_minor}.{version_micro}")