@@ -78,7 +78,11 @@ CMAKE_FLAGS=()
78
78
CMAKE_FLAGS+=(-DLLVM_TARGETS_TO_BUILD:STRING=host)
79
79
CMAKE_FLAGS+=(-DLLVM_HOST_TRIPLE=${MACHTYPE})
80
80
CMAKE_FLAGS+=(-DCMAKE_BUILD_TYPE=Release)
81
- CMAKE_FLAGS+=(-DLLVM_ENABLE_PROJECTS='clang;compiler-rt;mlir')
81
+ if [[ "${LLVM_MAJ_VER}" -gt "11" ]]; then
82
+ CMAKE_FLAGS+=(-DLLVM_ENABLE_PROJECTS='clang;compiler-rt;mlir')
83
+ else
84
+ CMAKE_FLAGS+=(-DLLVM_ENABLE_PROJECTS='clang;compiler-rt')
85
+ fi
82
86
CMAKE_FLAGS+=(-DCMAKE_CROSSCOMPILING=False)
83
87
CMAKE_FLAGS+=(-DCMAKE_TOOLCHAIN_FILE=${CMAKE_HOST_TOOLCHAIN})
84
88
@@ -113,7 +117,11 @@ LLVM_TARGETS=$(IFS=';' ; echo "${TARGETS[*]}")
113
117
CMAKE_FLAGS+=(-DLLVM_TARGETS_TO_BUILD:STRING=$LLVM_TARGETS)
114
118
115
119
# We mostly care about clang and LLVM
116
- CMAKE_FLAGS+=(-DLLVM_ENABLE_PROJECTS='clang;compiler-rt;lld')
120
+ if [[ "${LLVM_MAJ_VER}" -gt "11" ]]; then
121
+ CMAKE_FLAGS+=(-DLLVM_ENABLE_PROJECTS='clang;compiler-rt;lld;mlir')
122
+ else
123
+ CMAKE_FLAGS+=(-DLLVM_ENABLE_PROJECTS='clang;compiler-rt;lld')
124
+ fi
117
125
CMAKE_FLAGS+=(-DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD=OFF)
118
126
119
127
# We want a build with no bindings
@@ -235,13 +243,6 @@ ninja -j${nproc} -vv
235
243
# Install!
236
244
ninja install
237
245
238
- # move clang products out of $prefix/bin to $prefix/tools
239
- mv ${prefix}/bin/clang* ${prefix}/tools/
240
- mv ${prefix}/bin/scan-* ${prefix}/tools/
241
- mv ${prefix}/bin/c-index* ${prefix}/tools/
242
- mv ${prefix}/bin/git-clang* ${prefix}/tools/
243
- mv ${prefix}/bin/lld* ${prefix}/tools/
244
-
245
246
# Life is harsh on Windows and dynamic libraries are
246
247
# expected to live alongside the binaries. So we have
247
248
# to copy the *.dll from bin/ to tools/ as well...
@@ -287,9 +288,9 @@ LLVM_ARTIFACT_DIR=$(dirname $(dirname $(realpath ${prefix}/tools/opt${exeext})))
287
288
rm -rf ${prefix}/*
288
289
289
290
# Copy over `clang`, `libclang` and `include`, specifically.
290
- mkdir -p ${prefix}/include ${prefix}/tools ${libdir} ${prefix}/lib
291
+ mkdir -p ${prefix}/include ${prefix}/bin ${libdir} ${prefix}/lib
291
292
mv -v ${LLVM_ARTIFACT_DIR}/include/clang* ${prefix}/include/
292
- mv -v ${LLVM_ARTIFACT_DIR}/tools /clang* ${prefix}/tools /
293
+ mv -v ${LLVM_ARTIFACT_DIR}/bin /clang* ${prefix}/bin /
293
294
mv -v ${LLVM_ARTIFACT_DIR}/$(basename ${libdir})/libclang*.${dlext}* ${libdir}/
294
295
mv -v ${LLVM_ARTIFACT_DIR}/lib/libclang*.a ${prefix}/lib
295
296
mv -v ${LLVM_ARTIFACT_DIR}/lib/clang ${prefix}/lib/clang
@@ -322,7 +323,7 @@ rm -rf ${prefix}/*
322
323
# Copy over everything, but eliminate things already put inside `Clang_jll` or `libLLVM_jll`:
323
324
mv -v ${LLVM_ARTIFACT_DIR}/* ${prefix}/
324
325
rm -vrf ${prefix}/include/{clang*,llvm*,mlir*}
325
- rm -vrf ${prefix}/tools /{clang*,llvm-config,mlir*}
326
+ rm -vrf ${prefix}/bin /{clang*,llvm-config,mlir*}
326
327
rm -vrf ${libdir}/libclang*.${dlext}*
327
328
rm -vrf ${libdir}/*LLVM*.${dlext}*
328
329
rm -vrf ${libdir}/*MLIR*.${dlext}*
0 commit comments