4
4
set -o errexit
5
5
set -o errtrace
6
6
7
- LLVM_VERSION=$1
8
- LLVM_REPO_URL=${2:- https:// github.com/ llvm/ llvm-project.git}
9
- LLVM_CROSS=" $3 "
7
+ LLVM_TYPE=$1
8
+ LLVM_VERSION=$2
9
+ LLVM_REPO_URL=${3:- https:// github.com/ llvm/ llvm-project.git}
10
+ LLVM_CROSS=" $4 "
10
11
11
12
if [[ -z " $LLVM_REPO_URL " || -z " $LLVM_VERSION " ]]
12
13
then
13
- echo " Usage: $0 <llvm-version> <llvm-repository-url> [aarch64/riscv64]"
14
+ echo " Usage: $0 release|debug <llvm-version> <llvm-repository-url> [aarch64/riscv64]"
14
15
echo
15
16
echo " # Arguments"
16
17
echo " llvm-version The name of a LLVM release branch without the 'release/' prefix"
@@ -57,7 +58,9 @@ case "${LLVM_CROSS}" in
57
58
* ) ;;
58
59
esac
59
60
61
+
60
62
# Run `cmake` to configure the project.
63
+ if [[ " $LLVM_TYPE " == " debug" ]]; then
61
64
cmake \
62
65
-G Ninja \
63
66
-DCMAKE_BUILD_TYPE=MinSizeRel \
@@ -75,10 +78,30 @@ cmake \
75
78
" ${CROSS_COMPILE} " \
76
79
" ${CMAKE_ARGUMENTS} " \
77
80
../llvm
81
+ cmake --build . --config MinSizeRel
82
+ DESTDIR=destdir cmake --install . --strip --config MinSizeRel
83
+ else
84
+ cmake \
85
+ -G Ninja \
86
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
87
+ -DCMAKE_INSTALL_PREFIX=" /" \
88
+ -DLLVM_ENABLE_PROJECTS=" clang;lld" \
89
+ -DLLVM_ENABLE_TERMINFO=OFF \
90
+ -DLLVM_ENABLE_ZLIB=OFF \
91
+ -DLLVM_INCLUDE_DOCS=OFF \
92
+ -DLLVM_INCLUDE_EXAMPLES=OFF \
93
+ -DLLVM_INCLUDE_TESTS=OFF \
94
+ -DLLVM_INCLUDE_TOOLS=ON \
95
+ -DLLVM_INCLUDE_UTILS=OFF \
96
+ -DLLVM_OPTIMIZED_TABLEGEN=ON \
97
+ -DLLVM_TARGETS_TO_BUILD=" X86;AArch64;RISCV;WebAssembly;LoongArch" \
98
+ " ${CROSS_COMPILE} " \
99
+ " ${CMAKE_ARGUMENTS} " \
100
+ ../llvm
101
+ cmake --build . --config MinSizeRel
102
+ DESTDIR=destdir cmake --install . --strip --config MinSizeRel
103
+ fi
78
104
79
- # Showtime!
80
- cmake --build . --config MinSizeRel
81
- DESTDIR=destdir cmake --install . --strip --config MinSizeRel
82
105
83
106
# move usr/bin/* to bin/ or llvm-config will be broken
84
107
if [ ! -d destdir/bin ]; then
0 commit comments