| #!/usr/bin/env python3 |
| |
| "This tool is intended to be used from meson" |
| |
| import os, sys, shutil, re |
| |
| if len (sys.argv) < 4: |
| sys.exit(__doc__) |
| |
| version = sys.argv[1] |
| major, minor, micro = version.split (".") |
| |
| OUTPUT = sys.argv[2] |
| INPUT = sys.argv[3] |
| CURRENT_SOURCE_DIR = os.path.dirname(INPUT) |
| |
| try: |
| with open (OUTPUT, "r", encoding='utf-8') as old_output: |
| for line in old_output: |
| old_version = re.match (r"#define HB_VERSION_STRING \"(\d.\d.\d)\"", line) |
| if old_version and old_version[1] == version: |
| sys.exit () |
| except IOError: |
| pass |
| |
| with open (INPUT, "r", encoding='utf-8') as template: |
| with open (OUTPUT, "wb") as output: |
| output.write (template.read () |
| .replace ("@HB_VERSION_MAJOR@", major) |
| .replace ("@HB_VERSION_MINOR@", minor) |
| .replace ("@HB_VERSION_MICRO@", micro) |
| .replace ("@HB_VERSION@", version) |
| .encode ()) |
| |
| # copy it also to src/ |
| shutil.copyfile (OUTPUT, os.path.join (CURRENT_SOURCE_DIR, os.path.basename (OUTPUT))) |