@@ -45,7 +45,10 @@ def should_install(self, host_target):
4545
4646 def build (self , host_target ):
4747 build_root = os .path .dirname (self .build_dir )
48- llvm_build_dir = os .path .join ('..' , build_root , '%s-%s' % ('llvm' , host_target ))
48+ llvm_build_bin_dir = os .path .join (
49+ '..' , build_root , '%s-%s' % ('llvm' , host_target ), 'bin' )
50+ llvm_tools_path = self .args .native_llvm_tools_path or llvm_build_bin_dir
51+ clang_tools_path = self .args .native_clang_tools_path or llvm_build_bin_dir
4952 build_jobs = self .args .build_jobs or multiprocessing .cpu_count ()
5053
5154 sysroot_build_dir = WASILibc .sysroot_build_path (build_root , host_target )
@@ -66,9 +69,9 @@ def build(self, host_target):
6669 'OBJDIR=' + os .path .join (self .build_dir , 'obj' ),
6770 'SYSROOT=' + sysroot_build_dir ,
6871 'INSTALL_DIR=' + WASILibc .sysroot_install_path (build_root ),
69- 'CC=' + os .path .join (llvm_build_dir , 'bin' , 'clang' ),
70- 'AR=' + os .path .join (llvm_build_dir , 'bin' , 'llvm-ar' ),
71- 'NM=' + os .path .join (llvm_build_dir , 'bin' , 'llvm-nm' ),
72+ 'CC=' + os .path .join (clang_tools_path , 'clang' ),
73+ 'AR=' + os .path .join (llvm_tools_path , 'llvm-ar' ),
74+ 'NM=' + os .path .join (llvm_tools_path , 'llvm-nm' ),
7275 ])
7376
7477 @classmethod
@@ -119,7 +122,10 @@ def should_install(self, host_target):
119122
120123 def build (self , host_target ):
121124 build_root = os .path .dirname (self .build_dir )
122- llvm_build_dir = os .path .join ('..' , build_root , '%s-%s' % ('llvm' , host_target ))
125+ llvm_build_bin_dir = os .path .join (
126+ '..' , build_root , '%s-%s' % ('llvm' , host_target ), 'bin' )
127+ llvm_tools_path = self .args .native_llvm_tools_path or llvm_build_bin_dir
128+ clang_tools_path = self .args .native_clang_tools_path or llvm_build_bin_dir
123129
124130 self .cmake_options .define ('CMAKE_SYSROOT:PATH' ,
125131 WASILibc .sysroot_build_path (build_root , host_target ))
@@ -144,13 +150,13 @@ def build(self, host_target):
144150 self .cmake_options .define ('CMAKE_SYSTEM_NAME:STRING' , 'WASI' )
145151 self .cmake_options .define ('CMAKE_SYSTEM_PROCESSOR:STRING' , 'wasm32' )
146152 self .cmake_options .define ('CMAKE_AR:FILEPATH' ,
147- os .path .join (llvm_build_dir , 'bin' , 'llvm-ar' ))
153+ os .path .join (llvm_tools_path , 'llvm-ar' ))
148154 self .cmake_options .define ('CMAKE_RANLIB:FILEPATH' ,
149- os .path .join (llvm_build_dir , 'bin' , 'llvm-ranlib' ))
155+ os .path .join (llvm_tools_path , 'llvm-ranlib' ))
150156 self .cmake_options .define ('CMAKE_C_COMPILER:FILEPATH' ,
151- os .path .join (llvm_build_dir , 'bin' , 'clang' ))
157+ os .path .join (clang_tools_path , 'clang' ))
152158 self .cmake_options .define ('CMAKE_CXX_COMPILER:STRING' ,
153- os .path .join (llvm_build_dir , 'bin' , 'clang++' ))
159+ os .path .join (clang_tools_path , 'clang++' ))
154160 # Explicitly disable exceptions even though it's usually implicitly disabled by
155161 # LIBCXX_ENABLE_EXCEPTIONS because the CMake feature check fails to detect
156162 # -fno-exceptions support in clang due to missing compiler-rt while configuring
@@ -188,7 +194,7 @@ def build(self, host_target):
188194 self .cmake_options .define ('UNIX:BOOL' , 'TRUE' )
189195
190196 self .build_with_cmake ([], self .args .build_variant , [],
191- prefer_just_built_toolchain = True )
197+ prefer_native_toolchain = True )
192198 self .install_with_cmake (
193199 ["install" ], WASILibc .sysroot_install_path (build_root ))
194200
0 commit comments