@@ -6,11 +6,14 @@ repo=intel/graph-compiler
6
6
# set -x
7
7
8
8
print_usage () {
9
- echo " Usage:"
10
- echo " $0 "
11
- echo " [ -d | --dev ] Dev build, build LLVM in current env and place all to 'external' dir"
12
- echo " [ -l | --dyn ] Dynamical linking, requires rebuild of LLVM, activates 'dev' option"
13
- echo " [ -h | --help ] Print this message"
9
+ cat << EOF
10
+ Usage:
11
+ $( basename " $0 " )
12
+ [ -d | --dev ] Dev build, build LLVM in current env and place all to 'external' dir
13
+ [ -l | --dyn ] Dynamical linking, requires rebuild of LLVM, activates 'dev' option
14
+ [ -c | --clean ] Delete the build artifacts from the previous build
15
+ [ -h | --help ] Print this message
16
+ EOF
14
17
}
15
18
16
19
DEV_BUILD=false
@@ -24,6 +27,9 @@ for arg in "$@"; do
24
27
DEV_BUILD=true
25
28
DYN_LINK=true
26
29
;;
30
+ -c | --clean)
31
+ CLEANUP=true
32
+ ;;
27
33
-h | --help)
28
34
print_usage
29
35
exit 0
@@ -60,22 +66,27 @@ load_llvm() {
60
66
build_llvm () {
61
67
if ! [ -d " llvm-project" ]; then
62
68
git clone https://github.com/llvm/llvm-project.git
69
+ cd llvm-project
70
+ else
71
+ cd llvm-project
72
+ git fetch --all
63
73
fi
64
74
65
- cd llvm-project
66
75
git checkout ${LLVM_HASH}
67
76
68
77
dylib=OFF
69
78
if [ " $DYN_LINK " = ' true' ]; then
70
79
dylib=ON
71
80
fi
72
81
82
+ [ -z " $CLEANUP " ] || rm -rf build
73
83
cmake -G Ninja llvm -B build \
74
- -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=true \
75
- -DLLVM_ENABLE_PROJECTS=" mlir" -DLLVM_TARGETS_TO_BUILD=" X86" \
76
- -DLLVM_INSTALL_UTILS=true -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
77
- -DLLVM_INSTALL_GTEST=ON -DLLVM_BUILD_LLVM_DYLIB=$dylib -DLLVM_LINK_LLVM_DYLIB=$dylib
78
- cmake --build build
84
+ -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS_DEBUG=" -g -O0" \
85
+ -DLLVM_ENABLE_ASSERTIONS=true -DLLVM_ENABLE_PROJECTS=" mlir" \
86
+ -DLLVM_TARGETS_TO_BUILD=" X86" -DLLVM_INSTALL_UTILS=true \
87
+ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DLLVM_INSTALL_GTEST=ON \
88
+ -DLLVM_BUILD_LLVM_DYLIB=$dylib -DLLVM_LINK_LLVM_DYLIB=$dylib
89
+ cmake --build build
79
90
80
91
MLIR_DIR=" $PWD /build/lib/cmake/mlir"
81
92
cd ..
@@ -113,15 +124,19 @@ if ! LIT_PATH=$(which lit) ; then
113
124
fi
114
125
fi
115
126
if [ " $DEV_BUILD " = ' true' ]; then
127
+ BUILD_TYPE=Debug
116
128
FETCH_DIR=$PROJECT_DIR /externals
117
129
LIT_PATH=$PROJECT_DIR /externals/llvm-project/build/bin/llvm-lit
130
+ else
131
+ BUILD_TYPE=RelWithDebInfo
118
132
fi
119
133
if [ " $DYN_LINK " = ' true' ]; then
120
134
DYLIB=ON
121
135
fi
122
136
137
+ [ -z " $CLEANUP " ] || rm -rf build
123
138
cmake -S . -G Ninja -B build \
124
- -DCMAKE_BUILD_TYPE=RelWithDebInfo \
139
+ -DCMAKE_BUILD_TYPE=$BUILD_TYPE \
125
140
-DMLIR_DIR=$MLIR_DIR \
126
141
-DLLVM_EXTERNAL_LIT=$LIT_PATH \
127
142
-DFETCHCONTENT_BASE_DIR=$FETCH_DIR \
0 commit comments