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
2024-08-12 15:35:19 +01:00
committed by GitHub
parent 44bc7b94b2
commit bd89ebc45a
2 changed files with 24 additions and 16 deletions
+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