Skip to content

Commit

Permalink
Build clad (#99)
Browse files Browse the repository at this point in the history
* Add clad
  • Loading branch information
mattgodbolt authored Dec 20, 2024
1 parent 8187303 commit a99d06e
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: Build
on:
push:
branches: [main]
workflow_dispatch:
jobs:
build-x86_64:
Expand All @@ -9,6 +10,7 @@ jobs:
matrix:
image:
- compcert
- clad
- heaptrack
- hylo
- iwyu
Expand Down
24 changes: 24 additions & 0 deletions Dockerfile.clad
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
FROM ubuntu:22.04

ARG DEBIAN_FRONTEND=noninteractive
RUN apt update -y -q && apt upgrade -y -q && apt update -y -q && \
apt install -y -q \
build-essential \
cmake \
curl \
git \
gnupg \
lsb-release \
ninja-build \
pip \
python3 \
software-properties-common \
wget

RUN pip install lit

RUN mkdir -p /root
COPY clad /root/
COPY common.sh /root/

WORKDIR /root
53 changes: 53 additions & 0 deletions clad/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#!/bin/bash

set -euxo pipefail
source common.sh

VERSION=$1
if [[ "${VERSION}" = "trunk" ]]; then
VERSION=trunk-$(date +%Y%m%d)
BRANCH=master
REMOTE=heads/${BRANCH}
else
BRANCH=v${VERSION}
REMOTE=tags/${BRANCH}
fi

URL=https://github.com/vgvassilev/clad
CLANG_VERSION=18.1.0

FULLNAME=clad-${VERSION}
OUTPUT=$2/${FULLNAME}.tar.xz

REVISION="$(get_remote_revision "${URL}" "${REMOTE}")"

REVISION="clad-${REVISION}"
LAST_REVISION="${3:-}"

initialise "${REVISION}" "${OUTPUT}" "${LAST_REVISION}"

PREFIX=$(pwd)/prefix
LLVM=$(pwd)/llvm
BUILD=$(pwd)/build
SOURCE=$(pwd)/clad

git clone --depth 1 -b llvmorg-${CLANG_VERSION} https://github.com/llvm/llvm-project.git "${LLVM}"
git clone --depth 1 -b "${BRANCH}" "${URL}" "${SOURCE}"

mkdir "${BUILD}"
cd "${BUILD}"
cmake "${LLVM}/llvm" \
-DLLVM_ENABLE_PROJECTS=clang \
-DLLVM_EXTERNAL_PROJECTS=clad \
-DLLVM_EXTERNAL_CLAD_SOURCE_DIR=${SOURCE} \
-DCMAKE_BUILD_TYPE="Release" \
-DLLVM_TARGETS_TO_BUILD=host \
-DLLVM_INSTALL_UTILS=ON \
-DCMAKE_INSTALL_PREFIX="${PREFIX}" \
-GNinja

ninja clang-headers
ninja clad
ninja install-clad

complete "${PREFIX}" "${FULLNAME}" "${OUTPUT}"

0 comments on commit a99d06e

Please sign in to comment.