Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ jobs:
strategy:
matrix:
image:
- aburi
- archiesdk
- ccc
- compcert
Expand Down
29 changes: 29 additions & 0 deletions Dockerfile.aburi
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
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 \
libffi-dev \
libxml2-dev \
libzstd-dev \
lsb-release \
wget \
xz-utils \
zlib1g-dev

RUN apt-get install -y -q software-properties-common && \
wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | tee /etc/apt/trusted.gpg.d/llvm.asc && \
add-apt-repository -y "deb https://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs)-18 main" && \
apt update -y -q && \
apt install -y -q llvm-18-dev llvm-18 && \
wget -qO- https://github.com/Kitware/CMake/releases/download/v4.1.0/cmake-4.1.0-linux-aarch64.tar.gz | tar zx -C /usr --strip-components=1

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

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

set -ex
source common.sh

VERSION="${1}"
LAST_REVISION="${3-}"

if [[ "${VERSION}" != "atta-mills" ]]; then
echo "Only support building atta-mills branch"
exit 1
fi

FULLNAME=aburi-${VERSION}
OUTPUT=$(realpath "$2/${FULLNAME}.tar.xz")

URL="https://github.com/serjective/aburi.git"
BRANCH="atta-mills"
SDK_REPO="https://github.com/alexey-lysiuk/macos-sdk.git"
SDK_BRANCH="heads/main"
SDK_SDK="MacOSX26.4.sdk"

ABURI_REVISION=$(get_remote_revision "${URL}" "heads/${BRANCH}")
SDK_REVISION=$(get_remote_revision "${SDK_REPO}" "${SDK_BRANCH}")
REVISION="${ABURI_REVISION}_sdk-${SDK_REVISION}"

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

# Build aburi
git clone --depth 1 "${URL}" --branch "${BRANCH}" aburi-source
cmake -S aburi-source -B aburi-source/build -DCMAKE_BUILD_TYPE=Release -DLLVM_DIR=/usr/lib/llvm-18/lib/cmake/llvm
cmake --build aburi-source/build -j"$(nproc)"

# Fetch macOS SDK headers
git clone --depth 1 --filter=blob:none --sparse "${SDK_REPO}" macos-sdk-repo
git -C macos-sdk-repo sparse-checkout set "${SDK_SDK}/usr/include"

# Stage
STAGING_DIR="${PWD}/stage"
mkdir -p "${STAGING_DIR}/bin"
mkdir -p "${STAGING_DIR}/macos-sdk"
cp aburi-source/build/aburi "${STAGING_DIR}/bin/"
cp -a "macos-sdk-repo/${SDK_SDK}" "${STAGING_DIR}/macos-sdk/"

complete "${STAGING_DIR}" "${FULLNAME}" "${OUTPUT}"