name: Build LLVM Libraries
on: [workflow_dispatch]
jobs:
create:
name: Create Release
runs-on: ubuntu-latest
outputs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
steps:
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: llvm14.0-1
release_name: LLVM Libraries v14.0 (v1)
draft: false
prerelease: false
linux-x86-64:
name: Linux x86-64
runs-on: ubuntu-20.04
needs: create
steps:
- run: git clone --depth 1 --branch solana-rustc/14.0-2022-03-22 https://github.com/solana-labs/llvm-project.git
- name: Install Ninja
uses: llvm/actions/install-ninja@main
- run: cmake -G Ninja -DLLVM_ENABLE_ASSERTIONS=On -DLLVM_ENABLE_TERMINFO=Off
-DLLVM_ENABLE_LIBXML2=Off -DLLVM_ENABLE_ZLIB=Off
-DLLVM_ENABLE_PROJECTS='clang;lld'
-DLLVM_TARGETS_TO_BUILD='WebAssembly;BPF'
-DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_INSTALL_PREFIX=../llvm14.0 llvm
working-directory: ./llvm-project/
- run: cmake --build . --target install
working-directory: ./llvm-project/
- run: tar Jcf ./llvm14.0-linux-x86-64.tar.xz ./llvm14.0/
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create.outputs.upload_url }}
asset_path: ./llvm14.0-linux-x86-64.tar.xz
asset_name: llvm14.0-linux-x86-64.tar.xz
asset_content_type: application/x-xz
linux-arm64:
name: Linux arm64
runs-on: linux-arm64
if: ${{ github.repository_owner == 'hyperledger' }}
needs: create
steps:
- run: git clone --depth 1 --branch solana-rustc/14.0-2022-03-22 https://github.com/solana-labs/llvm-project.git
- run: cmake -G Ninja -DLLVM_ENABLE_ASSERTIONS=On -DLLVM_ENABLE_TERMINFO=Off
-DLLVM_ENABLE_LIBXML2=Off -DLLVM_ENABLE_ZLIB=Off
-DLLVM_ENABLE_PROJECTS='clang;lld'
-DLLVM_TARGETS_TO_BUILD='WebAssembly;BPF'
-DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_INSTALL_PREFIX=../llvm14.0 llvm
working-directory: ./llvm-project/
- run: cmake --build . --target install
working-directory: ./llvm-project/
- run: tar Jcf ./llvm14.0-linux-arm64.tar.xz ./llvm14.0/
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create.outputs.upload_url }}
asset_path: ./llvm14.0-linux-arm64.tar.xz
asset_name: llvm14.0-linux-arm64.tar.xz
asset_content_type: application/x-xz
mac-arm:
name: Mac Arm
needs: create
runs-on: [self-hosted, macOS, ARM64, MacStadium]
if: ${{ github.repository_owner == 'hyperledger' }}
steps:
- run: git clone --depth 1 --branch solana-rustc/14.0-2022-03-22 https://github.com/solana-labs/llvm-project.git
- run: cmake -G Ninja -DLLVM_ENABLE_ASSERTIONS=On -DLLVM_ENABLE_TERMINFO=Off
-DLLVM_ENABLE_LIBXML2=Off -DLLVM_ENABLE_ZLIB=Off
-DLLVM_ENABLE_PROJECTS='clang;lld'
-DLLVM_TARGETS_TO_BUILD='WebAssembly;BPF'
-DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_INSTALL_PREFIX=../llvm14.0 llvm
working-directory: ./llvm-project/
- run: cmake --build . --target install
working-directory: ./llvm-project/
- run: tar Jcf ./llvm14.0-mac-arm.tar.xz ./llvm14.0/
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create.outputs.upload_url }}
asset_path: ./llvm14.0-mac-arm.tar.xz
asset_name: llvm14.0-mac-arm.tar.xz
asset_content_type: application/x-xz
mac-intel:
name: Mac Intel
needs: create
runs-on: macos-11
steps:
- run: git clone --depth 1 --branch solana-rustc/14.0-2022-03-22 https://github.com/solana-labs/llvm-project.git
- name: Install Ninja
uses: llvm/actions/install-ninja@main
- run: cmake -G Ninja -DLLVM_ENABLE_ASSERTIONS=On -DLLVM_ENABLE_TERMINFO=Off
-DLLVM_ENABLE_LIBXML2=Off -DLLVM_ENABLE_ZLIB=Off
-DLLVM_ENABLE_PROJECTS='clang;lld'
-DLLVM_TARGETS_TO_BUILD='WebAssembly;BPF'
-DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_INSTALL_PREFIX=../llvm14.0 llvm
working-directory: ./llvm-project/
- run: cmake --build . --target install
working-directory: ./llvm-project/
- run: tar Jcf ./llvm14.0-mac-intel.tar.xz ./llvm14.0/
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create.outputs.upload_url }}
asset_path: ./llvm14.0-mac-intel.tar.xz
asset_name: llvm14.0-mac-intel.tar.xz
asset_content_type: application/x-xz
windows:
name: Windows
needs: create
runs-on: windows-latest
steps:
- run: Get-Volume
- run: git clone --depth 1 --branch solana-rustc/14.0-2022-03-22 https://github.com/solana-labs/llvm-project.git
working-directory: C:\
- name: Setup Windows
uses: llvm/actions/setup-windows@main
with:
arch: amd64
- name: Install Ninja
uses: llvm/actions/install-ninja@main
- run: cmake -G Ninja -DLLVM_ENABLE_ASSERTIONS=On -DLLVM_ENABLE_TERMINFO=Off
-DLLVM_ENABLE_LIBXML2=Off -DLLVM_ENABLE_ZLIB=Off
'-DLLVM_ENABLE_PROJECTS=clang;lld'
-DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_INSTALL_PREFIX=C:/llvm14.0 llvm
working-directory: C:\llvm-project
- run: cmake --build . --target install
working-directory: C:\llvm-project
- run: Compress-Archive -Path C:\llvm14.0 -DestinationPath C:\llvm14.0-win.zip
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create.outputs.upload_url }}
asset_path: C:\llvm14.0-win.zip
asset_name: llvm14.0-win.zip
asset_content_type: application/zip