1#!/usr/bin/env python3 2 3"This tool is intended to be used from meson" 4 5import os, sys, shutil, re 6 7if len (sys.argv) < 4: 8 sys.exit(__doc__) 9 10version = sys.argv[1] 11major, minor, micro = version.split (".") 12 13OUTPUT = sys.argv[2] 14INPUT = sys.argv[3] 15CURRENT_SOURCE_DIR = os.path.dirname(INPUT) 16 17try: 18 with open (OUTPUT, "r") as old_output: 19 for line in old_output: 20 old_version = re.match (r"#define HB_VERSION_STRING \"(\d.\d.\d)\"", line) 21 if old_version and old_version[1] == version: 22 sys.exit () 23except IOError: 24 pass 25 26with open (INPUT, "r", encoding='utf-8') as template: 27 with open (OUTPUT, "wb") as output: 28 output.write (template.read () 29 .replace ("@HB_VERSION_MAJOR@", major) 30 .replace ("@HB_VERSION_MINOR@", minor) 31 .replace ("@HB_VERSION_MICRO@", micro) 32 .replace ("@HB_VERSION@", version) 33 .encode ()) 34 35# copy it also to src/ 36shutil.copyfile (OUTPUT, os.path.join (CURRENT_SOURCE_DIR, os.path.basename (OUTPUT))) 37