Edit

kc3-lang/harfbuzz/src/gen-hb-version.py

Branch :

  • Show log

    Commit

  • Author : aneejit1
    Date : 2022-03-24 20:16:41
    Hash : a55a4244
    Message : Meson build writes to the source directory (issue #3507 ) (#3508) Don't write to source directory if files did not change Remove writes to the source directory which cause a meson build failure if the source directory is read-only. https://github.com/harfbuzz/harfbuzz/pull/3508

  • src/gen-hb-version.py
  • #!/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 the source tree, but only if it has changed
    baseline_filename = os.path.join (CURRENT_SOURCE_DIR, os.path.basename (OUTPUT))
    with open(baseline_filename, "rb") as baseline:
    	with open(OUTPUT, "rb") as generated:
    		if baseline.read() != generated.read():
    			shutil.copyfile (OUTPUT, baseline_filename)