Put llvm and compiler-rt build directories in one place. (#30)

Adjust the llvm build script to put the llvm and compiler-rt build
directories outside the llvm-project source directory. A new build
directory 'build' at the toplevel of the revive directory is used
instead. LLVM is built into 'build/llvm' and compiler-rt into
'build/compiler-rt'.

Adjust .gitignore to ignore the contents of the build directory.

This is intended to keep the build artifacts separate from the upstream
sources and any changes made as part of the revive work.
This commit is contained in:
wpt967 authored and GitHub committed 2024-08-12 16:35:19 +02:00
1 parent 44bc7b94b2
commit bd89ebc45a
2 files changed
+24 -16

No files matched your search

+1
View File
@@ -13,3 +13,4 @@ artifacts
tmp tmp
package-lock.json package-lock.json
/*.html /*.html
/build
+23 -16
View File
@@ -13,11 +13,17 @@ fi
# Build LLVM, clang # Build LLVM, clang
cd llvm-project LLVM_SRC_PREFIX=${PWD}/llvm-project
LLVM_SRC_DIR=${LLVM_SRC_PREFIX}/llvm
LLVM_BUILD_DIR=${PWD}/build/llvm
if [ ! -d ${LLVM_BUILD_DIR} ] ; then
mkdir -p ${LLVM_BUILD_DIR}
fi
mkdir -p build cmake -G Ninja \
cd build -S ${LLVM_SRC_DIR} \
cmake -G Ninja -DLLVM_ENABLE_ASSERTIONS=On \ -B ${LLVM_BUILD_DIR} \
-DLLVM_ENABLE_ASSERTIONS=On \
-DLLVM_ENABLE_TERMINFO=Off \ -DLLVM_ENABLE_TERMINFO=Off \
-DLLVM_ENABLE_LIBXML2=Off \ -DLLVM_ENABLE_LIBXML2=Off \
-DLLVM_ENABLE_ZLIB=Off \ -DLLVM_ENABLE_ZLIB=Off \
@@ -25,17 +31,17 @@ cmake -G Ninja -DLLVM_ENABLE_ASSERTIONS=On \
-DLLVM_TARGETS_TO_BUILD='RISCV' \ -DLLVM_TARGETS_TO_BUILD='RISCV' \
-DLLVM_ENABLE_ZSTD=Off \ -DLLVM_ENABLE_ZSTD=Off \
-DCMAKE_BUILD_TYPE=MinSizeRel \ -DCMAKE_BUILD_TYPE=MinSizeRel \
-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \ -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}
../llvm
ninja
ninja install
cmake --build ${LLVM_BUILD_DIR}
cmake --install ${LLVM_BUILD_DIR}
# Build compiler builtins # Build compiler builtins
cd ../compiler-rt COMPILER_RT_SRC_DIR=${LLVM_SRC_PREFIX}/compiler-rt
mkdir -p build COMPILER_RT_BUILD_DIR=${PWD}/build/compiler-rt
cd build if [ ! -d ${COMPILER_RT_BUILD_DIR} ] ; then
mkdir -p ${COMPILER_RT_BUILD_DIR}
fi
build_compiler_rt() { build_compiler_rt() {
case "$1" in case "$1" in
@@ -46,6 +52,8 @@ build_compiler_rt() {
CFLAGS="--target=riscv${1} -march=rv${1}em -mabi=${TARGET_ABI} -mcpu=generic-rv${1} -nostdlib -nodefaultlibs" CFLAGS="--target=riscv${1} -march=rv${1}em -mabi=${TARGET_ABI} -mcpu=generic-rv${1} -nostdlib -nodefaultlibs"
cmake -G Ninja \ cmake -G Ninja \
-S ${COMPILER_RT_SRC_DIR} \
-B ${COMPILER_RT_BUILD_DIR} \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \ -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \
-DCOMPILER_RT_BUILD_BUILTINS=ON \ -DCOMPILER_RT_BUILD_BUILTINS=ON \
@@ -70,11 +78,10 @@ build_compiler_rt() {
-DCOMPILER_RT_TEST_COMPILER=${INSTALL_DIR}/bin/clang \ -DCOMPILER_RT_TEST_COMPILER=${INSTALL_DIR}/bin/clang \
-DCMAKE_CXX_FLAGS="${CFLAGS}" \ -DCMAKE_CXX_FLAGS="${CFLAGS}" \
-DCMAKE_SYSTEM_NAME=unknown \ -DCMAKE_SYSTEM_NAME=unknown \
-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON \ -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
..
ninja cmake --build ${COMPILER_RT_BUILD_DIR}
ninja install cmake --install ${COMPILER_RT_BUILD_DIR}
} }
build_compiler_rt 32 build_compiler_rt 32