Skip to content

Commit d792c84

Browse files
add clad (a clang plugin) (#80)
* add clad (a cland plugin) Adds the ability to build llvm external projects along with clang/llvm * updates according to code review
1 parent 0489d63 commit d792c84

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

build/build.sh

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ NINJA_TARGET=install
1717
NINJA_TARGET_RUNTIMES=install-runtimes
1818
TAG=
1919
declare -a PATCHES_TO_APPLY
20+
EXTERNAL_PROJECT_DIR=${ROOT}/external
21+
declare -a EXTERNAL_PROJECT_URLS
22+
declare -a LLVM_EXTERNAL_PROJECTS_LIST
2023

2124
case $VERSION in
2225
ce-trunk)
@@ -334,6 +337,12 @@ mlir-*)
334337
if [[ $MAJOR -ge 18 ]]; then
335338
CMAKE_EXTRA_ARGS+=("-DLIBCXX_INSTALL_MODULES=ON")
336339
fi
340+
341+
if [[ $MAJOR -eq 18 ]]; then
342+
EXTERNAL_PROJECT_URLS+=("https://github.com/vgvassilev/clad.git")
343+
LLVM_EXTERNAL_PROJECTS_LIST+=("clad")
344+
CMAKE_EXTRA_ARGS+=("-DLLVM_EXTERNAL_CLAD_SOURCE_DIR=${EXTERNAL_PROJECT_DIR}/clad")
345+
fi
337346
;;
338347
esac
339348
;;
@@ -383,6 +392,16 @@ for PATCH_TO_APPLY in "${PATCHES_TO_APPLY[@]}"; do
383392
git -C "${ROOT}/llvm-project" apply "${PATCH_TO_APPLY}" -v
384393
done
385394

395+
# Setup external projects
396+
mkdir -p "${EXTERNAL_PROJECT_DIR}"
397+
for LLVM_EXTERNAL_PROJECT in "${!EXTERNAL_PROJECT_URLS[@]}"; do
398+
git clone --depth 1 "${EXTERNAL_PROJECT_URLS[LLVM_EXTERNAL_PROJECT]}" "${EXTERNAL_PROJECT_DIR}/${LLVM_EXTERNAL_PROJECTS_LIST[LLVM_EXTERNAL_PROJECT]}"
399+
done
400+
LLVM_EXTERNAL_PROJECTS=
401+
for LLVM_EXTERNAL_PROJECT in "${LLVM_EXTERNAL_PROJECTS_LIST}"; do
402+
LLVM_EXTERNAL_PROJECTS+="${LLVM_EXTERNAL_PROJECT};";
403+
done
404+
386405
# For older LLVM versions, merge runtime and projects
387406
# August 2021 is when bootstrapping become necessary, bootstrapping might have been supported previously a few years prior
388407
COMMIT_DATE=$(cd "${ROOT}/llvm-project/llvm" && git show -s --format=%ct HEAD)
@@ -413,6 +432,7 @@ cmake \
413432
-G "Ninja" "${ROOT}/llvm-project/llvm" \
414433
-DLLVM_ENABLE_PROJECTS="${LLVM_ENABLE_PROJECTS}" \
415434
-DLLVM_ENABLE_RUNTIMES="${LLVM_ENABLE_RUNTIMES}" \
435+
-DLLVM_EXTERNAL_PROJECTS="${LLVM_EXTERNAL_PROJECTS}" \
416436
-DCMAKE_BUILD_TYPE:STRING=Release \
417437
-DCMAKE_INSTALL_PREFIX:PATH="${STAGING_DIR}" \
418438
-DCMAKE_C_COMPILER:PATH="/opt/compiler-explorer/gcc-${GCC_VERSION}/bin/gcc" \

0 commit comments

Comments
 (0)