Skip to content

Commit afed96c

Browse files
Do not use relative paths in the build script (#261)
The script fails when using relative paths and symbolic links.
1 parent 61e90af commit afed96c

File tree

1 file changed

+32
-35
lines changed

1 file changed

+32
-35
lines changed

scripts/compile.sh

+32-35
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
#!/bin/bash -e
22

3-
repo=intel/graph-compiler
3+
cd "$(dirname "$0")/.."
4+
PROJECT_DIR="$PWD"
5+
EXTERNALS_DIR="$PWD/externals"
6+
REPO=intel/graph-compiler
47

58
set -e
69

@@ -31,10 +34,6 @@ for arg in "$@"; do
3134
ENABLE_IMEX=true
3235
;;
3336
-l | --dyn)
34-
if [ "$ENABLE_IMEX" = "true" ]; then
35-
echo "IMEX doesn't support dynamical linking of LLVM"
36-
exit 1
37-
fi
3837
DYN_LINK=ON
3938
DEV_BUILD=true
4039
;;
@@ -58,6 +57,11 @@ for arg in "$@"; do
5857
esac
5958
done
6059

60+
if [ "$ENABLE_IMEX" = "true" ] && [ "$DYN_LINK" = "ON" ]; then
61+
echo "IMEX doesn't support dynamical linking of LLVM"
62+
exit 1
63+
fi
64+
6165
if [ ! -z "$REL_BUILD" ]; then
6266
BUILD_TYPE=Release
6367
elif [ ! -z "$DEV_BUILD" ]; then
@@ -71,9 +75,6 @@ if [ -z "$MAX_JOBS" ]; then
7175
[ $MAX_JOBS -gt 0 ] || MAX_JOBS=1
7276
fi
7377

74-
cd $(dirname "$0")/..
75-
PROJECT_DIR=$PWD
76-
7778
if [ "$ENABLE_IMEX" = "true" ]; then
7879
LLVM_HASH=$(cat cmake/llvm-version-imex.txt)
7980
else
@@ -84,28 +85,27 @@ load_llvm() {
8485
local run_id
8586

8687
if [ "$ENABLE_IMEX" = "true" ]; then
87-
llvm_version="llvm-${LLVM_HASH}-imex-patched"
88+
local llvm_version="llvm-${LLVM_HASH}-imex-patched"
8889
else
89-
llvm_version="llvm-${LLVM_HASH}"
90+
local llvm_version="llvm-${LLVM_HASH}"
9091
fi
9192

9293
gh run download "$run_id" \
93-
--repo "$repo" \
94+
--repo "$REPO" \
9495
-n "$llvm_version" \
9596
--dir "$llvm_dir"
96-
cd "$llvm_dir"
9797
tar -zxf llvm.tgz
9898

9999
MLIR_DIR="$PWD/lib/cmake/mlir"
100-
cd "$PROJECT_DIR"
101100
}
102101

103102
build_llvm() {
104-
if ! [ -d "llvm-project" ]; then
103+
local llvm_dir="$EXTERNALS_DIR/llvm-project"
104+
if ! [ -d "$llvm_dir" ]; then
105105
git clone https://github.com/llvm/llvm-project.git
106-
cd llvm-project
106+
cd "$llvm_dir"
107107
else
108-
cd llvm-project
108+
cd "$llvm_dir"
109109
git fetch --all
110110
# discard all unstaged changes (there could be remaining patches from the IMEX
111111
# build that would break 'git checkout ${LLVM_HASH}')
@@ -119,19 +119,20 @@ build_llvm() {
119119

120120
if [ "$ENABLE_IMEX" = "true" ]; then
121121
# clone IMEX and apply patches
122-
cd ../
123-
if ! [ -d "mlir-extensions" ]; then
122+
local mlir_ext_dir="$EXTERNALS_DIR/mlir-extensions"
123+
if ! [ -d "$mlir_ext_dir" ]; then
124+
cd "$EXTERNALS_DIR"
124125
git clone https://github.com/Menooker/mlir-extensions.git
125-
cd mlir-extensions
126+
cd "$mlir_ext_dir"
126127
else
127-
cd mlir-extensions
128+
cd "$mlir_ext_dir"
128129
git fetch --all
129130
fi
130131

131132
git checkout dev
132133

133-
cd ../llvm-project
134-
git apply ../mlir-extensions/build_tools/patches/*
134+
cd "$llvm_dir"
135+
find "$mlir_ext_dir/build_tools/patches" -name '*.patch' -exec git apply {} +
135136
fi
136137

137138
cmake -G Ninja llvm -B build \
@@ -156,27 +157,23 @@ build_llvm() {
156157
cmake --build build --parallel $MAX_JOBS
157158

158159
MLIR_DIR="$PWD/build/lib/cmake/mlir"
159-
cd ..
160160
}
161161

162162
# MLIR_DIR is set on all passes
163163
get_llvm() {
164164
if [ ! -z "$DEV_BUILD" ]; then
165-
mkdir -p externals
166-
cd externals
167-
build_llvm
168-
cd ..
165+
mkdir -p "$EXTERNALS_DIR"
166+
build_llvm
167+
cd "$PROJECT_DIR"
169168
return 0
170169
fi
171170

172-
llvm_dir=$PROJECT_DIR/../install/llvm
173-
if [ "$ENABLE_IMEX" = "true" ]; then
174-
llvm_version="llvm-${LLVM_HASH}-imex-patched"
175-
else
176-
llvm_version="llvm-${LLVM_HASH}"
177-
fi
178-
if ! [ -f "$llvm_dir/$llvm_name"/llvm.tgz ]; then
179-
load_llvm
171+
local llvm_dir="$PROJECT_DIR/../install/llvm"
172+
if ! [ -f "$llvm_dir/$llvm_name/llvm.tgz" ]; then
173+
mkdir -p "$llvm_dir"
174+
cd "$llvm_dir"
175+
load_llvm
176+
cd "$PROJECT_DIR"
180177
else
181178
MLIR_DIR="$llvm_dir/lib/cmake/mlir"
182179
fi

0 commit comments

Comments
 (0)