Buckets:
| #!/usr/bin/env python3 | |
| # Copyright 2020 The Emscripten Authors. All rights reserved. | |
| # Emscripten is available under two separate licenses, the MIT license and the | |
| # University of Illinois/NCSA Open Source License. Both these licenses can be | |
| # found in the LICENSE file. | |
| import glob | |
| import os | |
| import sys | |
| import shutil | |
| script_dir = os.path.abspath(os.path.dirname(__file__)) | |
| emscripten_root = os.path.dirname(os.path.dirname(script_dir)) | |
| default_llvm_dir = os.path.join(os.path.dirname(emscripten_root), 'llvm-project') | |
| local_src = os.path.join(script_dir, 'compiler-rt') | |
| copy_dirs = [ | |
| ('include', 'sanitizer'), | |
| ('include', 'profile'), | |
| ('lib', 'sanitizer_common'), | |
| ('lib', 'asan'), | |
| ('lib', 'interception'), | |
| ('lib', 'builtins'), | |
| ('lib', 'lsan'), | |
| ('lib', 'ubsan'), | |
| ('lib', 'ubsan_minimal'), | |
| ('lib', 'profile'), | |
| ] | |
| preserve_files = ('readme.txt',) | |
| def clear(dirname): | |
| for f in os.listdir(dirname): | |
| if f in preserve_files or 'emscripten' in f: | |
| continue | |
| full = os.path.join(dirname, f) | |
| if os.path.isdir(full): | |
| shutil.rmtree(full) | |
| else: | |
| os.remove(full) | |
| def main(): | |
| if len(sys.argv) > 1: | |
| llvm_dir = os.path.join(os.path.abspath(sys.argv[1])) | |
| else: | |
| llvm_dir = default_llvm_dir | |
| upstream_dir = os.path.join(llvm_dir, 'compiler-rt') | |
| assert os.path.exists(upstream_dir) | |
| upstream_src = os.path.join(upstream_dir, 'lib', 'builtins') | |
| upstream_include = os.path.join(upstream_dir, 'include', 'sanitizer') | |
| assert os.path.exists(upstream_src) | |
| assert os.path.exists(upstream_include) | |
| for dirname in copy_dirs: | |
| srcdir = os.path.join(upstream_dir, *dirname) | |
| assert os.path.exists(srcdir) | |
| dest = os.path.join(local_src, *dirname) | |
| clear(dest) | |
| for name in os.listdir(srcdir): | |
| if name in ('.clang-format', 'CMakeLists.txt', 'README.txt', 'weak_symbols.txt'): | |
| continue | |
| if name.endswith('.syms.extra') or name.endswith('.S'): | |
| continue | |
| if os.path.isfile(os.path.join(srcdir, name)): | |
| shutil.copy2(os.path.join(srcdir, name), dest) | |
| shutil.copy2(os.path.join(upstream_dir, 'CREDITS.TXT'), local_src) | |
| shutil.copy2(os.path.join(upstream_dir, 'LICENSE.TXT'), local_src) | |
| if __name__ == '__main__': | |
| main() | |
Xet Storage Details
- Size:
- 2.25 kB
- Xet hash:
- 30967aaeeb04c041fc9b203058ba69c7e2dcb67a73b11686c48920a028a8947e
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.