Skip to content

Commit b67af0e

Browse files
authored
[LLVM] Don't break CMAKE files of Clang_jll (#3326)
1 parent 572f34d commit b67af0e

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

L/LLVM/common.jl

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,11 @@ CMAKE_FLAGS=()
7878
CMAKE_FLAGS+=(-DLLVM_TARGETS_TO_BUILD:STRING=host)
7979
CMAKE_FLAGS+=(-DLLVM_HOST_TRIPLE=${MACHTYPE})
8080
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
8286
CMAKE_FLAGS+=(-DCMAKE_CROSSCOMPILING=False)
8387
CMAKE_FLAGS+=(-DCMAKE_TOOLCHAIN_FILE=${CMAKE_HOST_TOOLCHAIN})
8488
@@ -113,7 +117,11 @@ LLVM_TARGETS=$(IFS=';' ; echo "${TARGETS[*]}")
113117
CMAKE_FLAGS+=(-DLLVM_TARGETS_TO_BUILD:STRING=$LLVM_TARGETS)
114118
115119
# 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
117125
CMAKE_FLAGS+=(-DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD=OFF)
118126
119127
# We want a build with no bindings
@@ -235,13 +243,6 @@ ninja -j${nproc} -vv
235243
# Install!
236244
ninja install
237245
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-
245246
# Life is harsh on Windows and dynamic libraries are
246247
# expected to live alongside the binaries. So we have
247248
# to copy the *.dll from bin/ to tools/ as well...
@@ -287,9 +288,9 @@ LLVM_ARTIFACT_DIR=$(dirname $(dirname $(realpath ${prefix}/tools/opt${exeext})))
287288
rm -rf ${prefix}/*
288289
289290
# 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
291292
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/
293294
mv -v ${LLVM_ARTIFACT_DIR}/$(basename ${libdir})/libclang*.${dlext}* ${libdir}/
294295
mv -v ${LLVM_ARTIFACT_DIR}/lib/libclang*.a ${prefix}/lib
295296
mv -v ${LLVM_ARTIFACT_DIR}/lib/clang ${prefix}/lib/clang
@@ -322,7 +323,7 @@ rm -rf ${prefix}/*
322323
# Copy over everything, but eliminate things already put inside `Clang_jll` or `libLLVM_jll`:
323324
mv -v ${LLVM_ARTIFACT_DIR}/* ${prefix}/
324325
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*}
326327
rm -vrf ${libdir}/libclang*.${dlext}*
327328
rm -vrf ${libdir}/*LLVM*.${dlext}*
328329
rm -vrf ${libdir}/*MLIR*.${dlext}*

0 commit comments

Comments
 (0)