Imported Upstream version 8.2.2
[platform/upstream/harfbuzz.git] / src / gen-harfbuzzcc.py
index b25bcc7..2273840 100755 (executable)
@@ -9,10 +9,16 @@ if len (sys.argv) < 3:
 
 OUTPUT = sys.argv[1]
 CURRENT_SOURCE_DIR = sys.argv[2]
-sources = sys.argv[3:]
+
+# make sure input files are unique
+sources = sorted(set(sys.argv[3:]))
 
 with open (OUTPUT, "wb") as f:
-       f.write ("".join ('#include "{}"\n'.format (os.path.basename (x)) for x in sources if x.endswith (".cc")).encode ())
+       f.write ("".join ('#include "{}"\n'.format (os.path.relpath (os.path.abspath (x), CURRENT_SOURCE_DIR)) for x in sources if x.endswith (".cc")).encode ())
 
-# copy it also to src/
-shutil.copyfile (OUTPUT, os.path.join (CURRENT_SOURCE_DIR, os.path.basename (OUTPUT)))
+# 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)