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
package-lock.json
/*.html
/build
+23 -16
View File
@@ -13,11 +13,17 @@ fi
# 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
cd build
cmake -G Ninja -DLLVM_ENABLE_ASSERTIONS=On \
cmake -G Ninja \
-S ${LLVM_SRC_DIR} \
-B ${LLVM_BUILD_DIR} \
-DLLVM_ENABLE_ASSERTIONS=On \
-DLLVM_ENABLE_TERMINFO=Off \
-DLLVM_ENABLE_LIBXML2=Off \
-DLLVM_ENABLE_ZLIB=Off \
@@ -25,17 +31,17 @@ cmake -G Ninja -DLLVM_ENABLE_ASSERTIONS=On \
-DLLVM_TARGETS_TO_BUILD='RISCV' \
-DLLVM_ENABLE_ZSTD=Off \
-DCMAKE_BUILD_TYPE=MinSizeRel \
-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \
../llvm
ninja
ninja install
-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}
cmake --build ${LLVM_BUILD_DIR}
cmake --install ${LLVM_BUILD_DIR}
# Build compiler builtins
cd ../compiler-rt
mkdir -p build
cd build
COMPILER_RT_SRC_DIR=${LLVM_SRC_PREFIX}/compiler-rt
COMPILER_RT_BUILD_DIR=${PWD}/build/compiler-rt
if [ ! -d ${COMPILER_RT_BUILD_DIR} ] ; then
mkdir -p ${COMPILER_RT_BUILD_DIR}
fi
build_compiler_rt() {
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"
cmake -G Ninja \
-S ${COMPILER_RT_SRC_DIR} \
-B ${COMPILER_RT_BUILD_DIR} \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \
-DCOMPILER_RT_BUILD_BUILTINS=ON \
@@ -70,11 +78,10 @@ build_compiler_rt() {
-DCOMPILER_RT_TEST_COMPILER=${INSTALL_DIR}/bin/clang \
-DCMAKE_CXX_FLAGS="${CFLAGS}" \
-DCMAKE_SYSTEM_NAME=unknown \
-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON \
..
-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
ninja
ninja install
cmake --build ${COMPILER_RT_BUILD_DIR}
cmake --install ${COMPILER_RT_BUILD_DIR}
}
build_compiler_rt 32