@@ -77,58 +77,49 @@ if [[ -n "$clean_reason" ]]; then
7777 rm -rf build
7878 mkdir -p build
7979fi
80- # ---- Always run configure (idempotent) ----
81- status " Configuring LLVM (Ninja; always run to catch changes)"
82- print_and_run cmake -S llvm -B build -G Ninja \
83- -Wno-dev \
84- -DLLVM_ENABLE_PROJECTS=" $LLVM_PROJECTS " \
85- -DLLVM_TARGETS_TO_BUILD=" $LLVM_TARGETS_TO_BUILD " \
86- -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=" $LLVM_EXPERIMENTAL_TARGETS " \
87- -DLLVM_ENABLE_ASSERTIONS=ON \
88- -DMLIR_ENABLE_BINDINGS_PYTHON=ON \
89- -DLLVM_BUILD_TOOLS=ON \
90- -DCMAKE_BUILD_TYPE=Release \
91- -DBUILD_SHARED_LIBS=ON \
92- -DLLVM_INCLUDE_TESTS=OFF \
93- -DLLVM_INCLUDE_BENCHMARKS=OFF \
94- -DLLVM_OPTIMIZED_TABLEGEN=ON \
95- -DLLVM_CCACHE_BUILD=ON \
96- -DLLVM_PARALLEL_COMPILE_JOBS=4 \
97- -DLLVM_PARALLEL_LINK_JOBS=1 \
98- -DLLVM_PARALLEL_TABLEGEN_JOBS=4 \
99- " ${EXTRA_CMAKE_OPTS[@]} "
100-
101- # Save config hash so we can detect future changes
102- echo " $CURRENT_HASH " > " $HASH_FILE "
103-
104- # Sanity: ensure build.ninja exists
105- [[ -f build/build.ninja ]] || { error " CMake configure did not produce build/build.ninja." ; exit 1; }
10680
107- # ---- Build with one clean-retry ----
108- status " Building LLVM (Ninja)"
109- if ! cmake --build build --target ${LLVM_BUILD_TARGETS} ; then
110- warning " Build failed — cleaning build/ and retrying from fresh configure…"
111- rm -rf build
112- cmake -S llvm -B build -G Ninja \
81+ # ---- Configure helper ----
82+ configure () {
83+ status " Configuring LLVM (Ninja; always run to catch changes)"
84+
85+ print_and_run cmake -S llvm -B build -G Ninja \
11386 -Wno-dev \
114- -DLLVM_ENABLE_PROJECTS=" $LLVM_PROJECTS " \
115- -DLLVM_TARGETS_TO_BUILD=" $LLVM_TARGETS_TO_BUILD " \
116- -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=" $LLVM_EXPERIMENTAL_TARGETS " \
117- -DLLVM_ENABLE_ASSERTIONS=ON \
118- -DMLIR_ENABLE_BINDINGS_PYTHON=ON \
119- -DLLVM_BUILD_TOOLS=ON \
12087 -DCMAKE_BUILD_TYPE=Release \
12188 -DBUILD_SHARED_LIBS=ON \
122- -DLLVM_INCLUDE_TESTS=OFF \
89+ -DLLVM_BUILD_TOOLS=ON \
90+ -DLLVM_CCACHE_BUILD=ON \
91+ -DLLVM_ENABLE_PROJECTS=" $LLVM_PROJECTS " \
92+ -DLLVM_ENABLE_ASSERTIONS=ON \
93+ -DLLVM_ENABLE_EH=ON \
94+ -DLLVM_ENABLE_RTTI=ON \
95+ -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=" $LLVM_EXPERIMENTAL_TARGETS " \
12396 -DLLVM_INCLUDE_BENCHMARKS=OFF \
97+ -DLLVM_INCLUDE_TESTS=OFF \
12498 -DLLVM_OPTIMIZED_TABLEGEN=ON \
125- -DLLVM_CCACHE_BUILD=ON \
126- -DLLVM_PARALLEL_COMPILE_JOBS=4 \
127- -DLLVM_PARALLEL_LINK_JOBS=1 \
128- -DLLVM_PARALLEL_TABLEGEN_JOBS=4 \
99+ -DMLIR_ENABLE_BINDINGS_PYTHON=ON \
100+ -DLLVM_TARGETS_TO_BUILD=" $LLVM_TARGETS_TO_BUILD " \
129101 " ${EXTRA_CMAKE_OPTS[@]} "
130- cmake --build build --target ${LLVM_BUILD_TARGETS}
131- fi
102+
103+ # Save config hash so we can detect future changes
104+ echo " $CURRENT_HASH " > " $HASH_FILE "
105+
106+ # Sanity: ensure build.ninja exists
107+ [[ -f build/build.ninja ]] || { error " CMake configure did not produce build/build.ninja." ; exit 1; }
108+ }
109+
110+ # ---- Always run configure (idempotent) ----
111+ configure
112+
113+ # ---- Build with one clean-retry ----
114+ status " Building LLVM (Ninja)"
115+ cmake --build build --target ${LLVM_BUILD_TARGETS}
116+
117+ # if ! cmake --build build --target ${LLVM_BUILD_TARGETS}; then
118+ # warning "Build failed — cleaning build/ and retrying from fresh configure…"
119+ # rm -rf build
120+ # configure
121+ # cmake --build build --target ${LLVM_BUILD_TARGETS}
122+ # fi
132123
133124export PATH=" $llvm_path /build/bin:$PATH "
134125popd > /dev/null
0 commit comments