build-compiler-rt, build-libcxx: Use ninja for building, if available

This commit is contained in:
Martin Storsjö committed 2020-03-25 00:29:07 +02:00
1 parent 92f5caa918
commit 36fc0f6432
2 files changed
+43 -27

No files matched your search

+20 -12
View File
@@ -38,9 +38,6 @@ mkdir -p "$PREFIX"
PREFIX="$(cd "$PREFIX" && pwd)" PREFIX="$(cd "$PREFIX" && pwd)"
export PATH="$PREFIX/bin:$PATH" export PATH="$PREFIX/bin:$PATH"
: ${CORES:=$(nproc 2>/dev/null)}
: ${CORES:=$(sysctl -n hw.ncpu 2>/dev/null)}
: ${CORES:=4}
: ${ARCHS:=${TOOLCHAIN_ARCHS-i686 x86_64 armv7 aarch64}} : ${ARCHS:=${TOOLCHAIN_ARCHS-i686 x86_64 armv7 aarch64}}
ANY_ARCH=$(echo $ARCHS | awk '{print $1}') ANY_ARCH=$(echo $ARCHS | awk '{print $1}')
@@ -61,13 +58,24 @@ if [ ! -e "$PREFIX/i386-w64-mingw32" ]; then
esac esac
fi fi
case $(uname) in if [ -n "$(which ninja)" ]; then
MINGW*) CMAKE_GENERATOR="Ninja"
CMAKE_GENERATOR="MSYS Makefiles" NINJA=1
;; BUILDCMD=ninja
*) else
;; : ${CORES:=$(nproc 2>/dev/null)}
esac : ${CORES:=$(sysctl -n hw.ncpu 2>/dev/null)}
: ${CORES:=4}
case $(uname) in
MINGW*)
CMAKE_GENERATOR="MSYS Makefiles"
;;
*)
;;
esac
BUILDCMD=make
fi
cd llvm-project/compiler-rt cd llvm-project/compiler-rt
@@ -111,7 +119,7 @@ for arch in $ARCHS; do
-DCOMPILER_RT_DEFAULT_TARGET_ONLY=TRUE \ -DCOMPILER_RT_DEFAULT_TARGET_ONLY=TRUE \
-DCOMPILER_RT_USE_BUILTINS_LIBRARY=TRUE \ -DCOMPILER_RT_USE_BUILTINS_LIBRARY=TRUE \
$SRC_DIR $SRC_DIR
make -j$CORES $BUILDCMD ${CORES+-j$CORES}
mkdir -p "$PREFIX/lib/clang/$CLANG_VERSION/lib/windows" mkdir -p "$PREFIX/lib/clang/$CLANG_VERSION/lib/windows"
mkdir -p "$PREFIX/$arch-w64-mingw32/bin" mkdir -p "$PREFIX/$arch-w64-mingw32/bin"
for i in lib/windows/libclang_rt.*-$buildarchname*.a; do for i in lib/windows/libclang_rt.*-$buildarchname*.a; do
@@ -123,7 +131,7 @@ for arch in $ARCHS; do
fi fi
done done
if [ -n "$SANITIZERS" ]; then if [ -n "$SANITIZERS" ]; then
make install-compiler-rt-headers $BUILDCMD install-compiler-rt-headers
fi fi
cd .. cd ..
done done
+23 -15
View File
@@ -43,9 +43,6 @@ PREFIX="$(cd "$PREFIX" && pwd)"
export PATH="$PREFIX/bin:$PATH" export PATH="$PREFIX/bin:$PATH"
: ${CORES:=$(nproc 2>/dev/null)}
: ${CORES:=$(sysctl -n hw.ncpu 2>/dev/null)}
: ${CORES:=4}
: ${ARCHS:=${TOOLCHAIN_ARCHS-i686 x86_64 armv7 aarch64}} : ${ARCHS:=${TOOLCHAIN_ARCHS-i686 x86_64 armv7 aarch64}}
if [ ! -d llvm-project/libunwind ] || [ -n "$SYNC" ]; then if [ ! -d llvm-project/libunwind ] || [ -n "$SYNC" ]; then
@@ -56,13 +53,24 @@ cd llvm-project
LIBCXX=$(pwd)/libcxx LIBCXX=$(pwd)/libcxx
case $(uname) in if [ -n "$(which ninja)" ]; then
MINGW*) CMAKE_GENERATOR="Ninja"
CMAKE_GENERATOR="MSYS Makefiles" NINJA=1
;; BUILDCMD=ninja
*) else
;; : ${CORES:=$(nproc 2>/dev/null)}
esac : ${CORES:=$(sysctl -n hw.ncpu 2>/dev/null)}
: ${CORES:=4}
case $(uname) in
MINGW*)
CMAKE_GENERATOR="MSYS Makefiles"
;;
*)
;;
esac
BUILDCMD=make
fi
build_all() { build_all() {
type="$1" type="$1"
@@ -105,8 +113,8 @@ build_all() {
-DCMAKE_CXX_FLAGS="-Wno-dll-attribute-on-redeclaration" \ -DCMAKE_CXX_FLAGS="-Wno-dll-attribute-on-redeclaration" \
-DCMAKE_C_FLAGS="-Wno-dll-attribute-on-redeclaration" \ -DCMAKE_C_FLAGS="-Wno-dll-attribute-on-redeclaration" \
.. ..
make -j$CORES $BUILDCMD ${CORES+-j$CORES}
make install $BUILDCMD install
if [ "$type" = "shared" ]; then if [ "$type" = "shared" ]; then
mkdir -p "$PREFIX/$arch-w64-mingw32/bin" mkdir -p "$PREFIX/$arch-w64-mingw32/bin"
cp lib/libunwind.dll "$PREFIX/$arch-w64-mingw32/bin" cp lib/libunwind.dll "$PREFIX/$arch-w64-mingw32/bin"
@@ -148,7 +156,7 @@ build_all() {
-DCXX_SUPPORTS_CXX_STD=TRUE \ -DCXX_SUPPORTS_CXX_STD=TRUE \
-DCMAKE_CXX_FLAGS="$LIBCXXABI_VISIBILITY_FLAGS -D_LIBCPP_HAS_THREAD_API_WIN32" \ -DCMAKE_CXX_FLAGS="$LIBCXXABI_VISIBILITY_FLAGS -D_LIBCPP_HAS_THREAD_API_WIN32" \
.. ..
make -j$CORES $BUILDCMD ${CORES+-j$CORES}
cd .. cd ..
done done
cd .. cd ..
@@ -197,8 +205,8 @@ build_all() {
-DCMAKE_SHARED_LINKER_FLAGS="-lunwind" \ -DCMAKE_SHARED_LINKER_FLAGS="-lunwind" \
-DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=FALSE \ -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=FALSE \
.. ..
make -j$CORES $BUILDCMD ${CORES+-j$CORES}
make install $BUILDCMD install
if [ "$type" = "shared" ]; then if [ "$type" = "shared" ]; then
llvm-ar qcsL \ llvm-ar qcsL \
"$PREFIX/$arch-w64-mingw32/lib/libc++.dll.a" \ "$PREFIX/$arch-w64-mingw32/lib/libc++.dll.a" \