Skip to content

use llvm-16 toolchain #6

use llvm-16 toolchain

use llvm-16 toolchain #6

Workflow file for this run

name: Create Release on Push to Pasta Branch
on:
push:
branches:
# - pasta
- release-pasta-llvm
jobs:
build_release:
name: Build and Release
runs-on: ubuntu-latest
permissions:
contents: write
env:
LLVM_VER: 16
steps:
- uses: actions/checkout@v4
- name: Prerequisites
run: |
echo "RELEASE_DIR=${RUNNER_TEMP}/release" >> $GITHUB_ENV
echo "ARTIFACT_NAME=llvm-pasta-${GITHUB_SHA::7}.tar.xz" >> $GITHUB_ENV
- name: Install LLVM Toolchain
run: |
curl -sSL https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-16 main" | sudo tee -a /etc/apt/sources.list
echo "deb-src http://apt.llvm.org/jammy/ llvm-toolchain-jammy-16 main" | sudo tee -a /etc/apt/sources.list
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
pixz \
build-essential \
ninja-build \
cmake \
clang-${LLVM_VER} \
lld-${LLVM_VER}
- name: Build
run: |
mkdir -p ${RELEASE_DIR}
CXXFLAGS="-fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only" \
CCFLAGS="-fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only" \
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=${RELEASE_DIR} \
-DCMAKE_C_COMPILER=/usr/bin/clang \
-DCMAKE_CXX_COMPILER=/usr/bin/clang++ \
-DLLVM_ENABLE_PROJECTS="clang;mlir;lld" \
-DLLVM_TARGETS_TO_BUILD="AArch64;X86;ARM" \
-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="ARM" \
-DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi" \
-DBUILD_SHARED_LIBS:BOOL=OFF \
-DLLVM_APPEND_VC_REV:BOOL=OFF \
-DLLVM_BUILD_DOCS:BOOL=OFF \
-DLLVM_INCLUDE_DOCS:BOOL=OFF \
-DLLVM_INCLUDE_EXAMPLES:BOOL=OFF \
-DLLVM_BUILD_EXAMPLES:BOOL=OFF \
-DLLVM_BUILD_LLVM_DYLIB:BOOL=OFF \
-DLLVM_BUILD_TESTS:BOOL=OFF \
-DLLVM_ENABLE_BINDINGS:BOOL=OFF \
-DLLVM_ENABLE_OCAMLDOC:BOOL=OFF \
-DLLVM_ENABLE_DIA_SDK:BOOL=OFF \
-DLLVM_ENABLE_EH:BOOL=ON \
-DLLVM_ENABLE_RTTI:BOOL=ON \
-DLLVM_ENABLE_EXPENSIVE_CHECKS:BOOL=ON \
-DLLVM_ENABLE_FFI:BOOL=OFF \
-DLLVM_ENABLE_WARNINGS:BOOL=ON \
-DLLVM_INCLUDE_BENCHMARKS:BOOL=OFF \
-DLLVM_INCLUDE_EXAMPLES:BOOL=OFF \
-DLLVM_INCLUDE_TESTS:BOOL=OFF \
-DLLVM_INCLUDE_TOOLS:BOOL=ON \
-DLLVM_INSTALL_UTILS:BOOL=ON \
-DLLVM_ENABLE_ZSTD:BOOL=OFF \
-GNinja \
./llvm
ninja install
- name: Package Release
run: |
cd ${RELEASE_DIR}
tar --use-compress-program pixz -cf "${ARTIFACT_NAME}" *
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: ${{ env.ARTIFACT_NAME }}
path: ${{ env.RELEASE_DIR }}/${{ env.ARTIFACT_NAME }}