From 281a3d58015ffdbcf57707d2c344a07e552e9d77 Mon Sep 17 00:00:00 2001 From: Max Wash Date: Thu, 19 Feb 2026 19:27:42 +0000 Subject: [PATCH] util: sysroot-tool: fix error when copying individual header files --- util/sysroot-tool.py | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/util/sysroot-tool.py b/util/sysroot-tool.py index 7113409..42354fe 100644 --- a/util/sysroot-tool.py +++ b/util/sysroot-tool.py @@ -17,20 +17,22 @@ def reset(): def add_headers(): - if len(sys.argv) < 3: - print("USAGE: {} add-headers ".format(sys.argv[0])) + if len(sys.argv) < 6: + print("USAGE: {} add-headers ".format(sys.argv[0])) return -1 manifest_path = sys.argv[2] component_name = sys.argv[3] dest_path = sys.argv[4] - src_path = sys.argv[5] + src_paths = sys.argv[5:] manifest = Manifest(manifest_path) manifest.load() component = manifest.get_component(component_name) - component.add_headers(src_path, dest_path) + + for p in src_paths: + component.add_headers(p, dest_path) manifest.save() @@ -83,9 +85,18 @@ def build_sysroot(): os.makedirs(header_dest) for f in os.listdir(header_src): - shutil.copy( - os.path.join(header_src, f), - os.path.join(header_dest, f)) + f_src = os.path.join(header_src, f) + f_dst = os.path.join(header_dest, f) + if os.path.isfile(f_src): + shutil.copy( + os.path.join(header_src, f), + os.path.join(header_dest, f)) + else: + shutil.copytree( + os.path.join(header_src, f), + os.path.join(header_dest, f), + dirs_exist_ok=True) + for b in c.get_binaries(): binary_src = b['src'] @@ -97,6 +108,9 @@ def build_sysroot(): if not os.path.isdir(binary_dest): os.makedirs(binary_dest) + if binary_src.endswith('.s.o'): + binary_dest = os.path.join(binary_dest, os.path.basename(binary_src)[:-4] + '.o') + shutil.copy(binary_src, binary_dest) return 0