66
77import os
88import re
9- import sys
109import shutil
1110import subprocess
11+ import sys
1212
13- from update_common import *
13+ from update_common import (
14+ clean_dir ,
15+ copy_tree ,
16+ default_llvm_dir ,
17+ emscripten_root ,
18+ parse_args ,
19+ script_dir ,
20+ update_readme ,
21+ write_file ,
22+ )
1423
1524local_root = os .path .join (script_dir , 'libcxx' )
1625local_src = os .path .join (local_root , 'src' )
@@ -41,12 +50,11 @@ def generate_modules(cmake_version: str):
4150
4251 clean_dir (build_dir , preserve_files )
4352 os .makedirs (build_dir , exist_ok = True )
44- with open (f'{ build_dir } /CMakeLists.txt' , 'x' , encoding = 'utf-8' ) as CMakeLists :
45- CMakeLists .write (f'''\
46- cmake_minimum_required(VERSION { cmake_version } )
47- project(libcxx-modules)
48- add_subdirectory("{ local_modules } " libcxx)
49- ''' )
53+ write_file (f'{ build_dir } /CMakeLists.txt' , f'''\
54+ cmake_minimum_required(VERSION { cmake_version } )
55+ project(libcxx-modules)
56+ add_subdirectory("{ local_modules } " libcxx)
57+ ''' )
5058
5159 vars = [
5260 ('LIBCXX_INSTALL_LIBRARY_DIR' , lib ),
@@ -62,18 +70,18 @@ def generate_modules(cmake_version: str):
6270 subprocess .run (['cmake' , '--build' , binary_dir ], stdout = subprocess .DEVNULL )
6371 shutil .copytree (dist , dst , dirs_exist_ok = True )
6472
73+
6574def main ():
6675 llvm_dir = parse_args (default_llvm_dir , 'llvm_dir' )
6776 # Exit early if cmake is not found
6877 try :
69- output = subprocess .check_output (['cmake' , '--version' ], text = True )
78+ output = subprocess .check_output (['cmake' , '--version' ], text = True )
7079 except OSError :
7180 print ('CMake not found' , file = sys .stderr )
7281 sys .exit (1 )
7382
7483 cmake_version = re .search (r'^cmake version (\d+(?:\.\d+)*)' , output ).group (1 )
7584
76- llvm_dir = get_llvm_dir ()
7785 libcxx_dir = os .path .join (llvm_dir , 'libcxx' )
7886 upstream_src = os .path .join (libcxx_dir , 'src' )
7987 upstream_inc = os .path .join (libcxx_dir , 'include' )
@@ -115,5 +123,6 @@ def main():
115123 shutil .copy2 (os .path .join (libc_upstream_dir , 'LICENSE.TXT' ), libc_local_dir )
116124 update_readme (local_root , llvm_dir )
117125
126+
118127if __name__ == '__main__' :
119128 main ()
0 commit comments