@@ -268,6 +268,37 @@ else
268268 exit 1
269269fi
270270
271+ # -----------------------------------------------------------------------
272+
273+ header " Building clang for host"
274+
275+ mkdir -p ${build_dir} /host/clang ${build_dir} /clang
276+
277+ run cmake -G Ninja -S ${source_dir} /swift-project/llvm-project/llvm \
278+ -B ${build_dir} /host/clang \
279+ -DCMAKE_BUILD_TYPE=Release \
280+ -DLLVM_ENABLE_PROJECTS=" clang" \
281+ -DLLVM_PARALLEL_LINK_JOBS=1 \
282+ -DCMAKE_INSTALL_PREFIX=${build_dir} /clang
283+
284+ quiet_pushd ${build_dir} /host/clang
285+ run ninja -j$parallel_jobs
286+ quiet_popd
287+
288+ header " Installing clang for host"
289+
290+ quiet_pushd ${build_dir} /host/clang
291+ run ninja -j$parallel_jobs install
292+ quiet_popd
293+
294+ clang_dir=${build_dir} /clang
295+
296+ header " Clang version"
297+
298+ ${clang_dir} /bin/clang --version
299+
300+ # -----------------------------------------------------------------------
301+
271302for arch in $archs ; do
272303
273304 # Fix architecture names
@@ -288,11 +319,11 @@ for arch in $archs; do
288319 " ${sdk_root} /usr/lib/swift_static"
289320 ln -sf ../swift/clang " ${sdk_root} /usr/lib/swift_static/clang"
290321
291- clang_resource_dir=$( ${swift_dir } /bin/clang -print-resource-dir)
322+ clang_resource_dir=$( ${clang_dir } /bin/clang -print-resource-dir)
292323 cp -rT $clang_resource_dir /include $sdk_resource_dir /include
293324
294- cc=" ${swift_dir } /bin/clang -target $triple -resource-dir ${sdk_resource_dir} --sysroot ${sdk_root} "
295- cxx=" ${swift_dir } /bin/clang++ -target $triple -resource-dir ${sdk_resource_dir} --sysroot ${sdk_root} -stdlib=libc++ -unwindlib=libunwind"
325+ cc=" ${clang_dir } /bin/clang -target $triple -resource-dir ${sdk_resource_dir} --sysroot ${sdk_root} "
326+ cxx=" ${clang_dir } /bin/clang++ -target $triple -resource-dir ${sdk_resource_dir} --sysroot ${sdk_root} -stdlib=libc++ -unwindlib=libunwind"
296327 as=" $cc "
297328
298329 # Creating this gets rid of a warning
@@ -406,9 +437,9 @@ set(CMAKE_SYSROOT ${sdk_root})
406437set(CMAKE_CROSSCOMPILING=YES)
407438set(CMAKE_EXE_LINKER_FLAGS "-unwindlib=libunwind -rtlib=compiler-rt -stdlib=libc++ -fuse-ld=lld -lc++ -lc++abi")
408439
409- set(CMAKE_C_COMPILER ${swift_dir } /bin/clang -resource-dir ${sdk_resource_dir} )
410- set(CMAKE_CXX_COMPILER ${swift_dir } /bin/clang++ -resource-dir ${sdk_resource_dir} -stdlib=libc++)
411- set(CMAKE_ASM_COMPILER ${swift_dir } /bin/clang -resource-dir ${sdk_resource_dir} )
440+ set(CMAKE_C_COMPILER ${clang_dir } /bin/clang -resource-dir ${sdk_resource_dir} )
441+ set(CMAKE_CXX_COMPILER ${clang_dir } /bin/clang++ -resource-dir ${sdk_resource_dir} -stdlib=libc++)
442+ set(CMAKE_ASM_COMPILER ${clang_dir } /bin/clang -resource-dir ${sdk_resource_dir} )
412443set(CMAKE_FIND_ROOT_PATH ${sdk_root} )
413444EOF
414445
0 commit comments