copy_clang_profile_rt.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import optparse
  2. import os
  3. import shutil
  4. import process_command_files as pcf
  5. CLANG_RT_VERSION = 14
  6. def copy_clang_rt_profile(cmd, build_root, arch) -> None:
  7. profile_rt_lib = None
  8. resource_dir = None
  9. for arg in cmd:
  10. if arg.startswith(f'contrib/libs/clang{CLANG_RT_VERSION}-rt/lib/profile/libclang_rt.profile'):
  11. profile_rt_lib = arg
  12. if arg.startswith('-resource-dir='):
  13. resource_dir = arg[len('-resource-dir='):]
  14. profile_rt_path = os.path.join(build_root, profile_rt_lib)
  15. profile_name = os.path.basename(profile_rt_path)
  16. dst_dir = os.path.join(build_root, resource_dir, 'lib/{}'.format(arch.lower()))
  17. os.makedirs(dst_dir, exist_ok=True)
  18. shutil.copy(profile_rt_path, os.path.join(dst_dir, profile_name))
  19. def parse_args():
  20. parser = optparse.OptionParser()
  21. parser.disable_interspersed_args()
  22. parser.add_option('--build-root')
  23. parser.add_option('--arch')
  24. return parser.parse_args()
  25. if __name__ == '__main__':
  26. opts, args = parse_args()
  27. args = pcf.skip_markers(args)
  28. copy_clang_rt_profile(args, opts.build_root, opts.arch)