49 lines
2.0 KiB
YAML
49 lines
2.0 KiB
YAML
name: "Setup LLGO Dependencies"
|
|
description: "Install all required dependencies for LLGO"
|
|
inputs:
|
|
llvm-version:
|
|
description: "LLVM version to install"
|
|
required: true
|
|
default: "19"
|
|
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- name: Install macOS dependencies
|
|
if: runner.os == 'macOS'
|
|
shell: bash
|
|
run: |
|
|
brew update
|
|
brew install llvm@${{inputs.llvm-version}} lld@${{inputs.llvm-version}} bdw-gc openssl libffi libuv
|
|
brew link --overwrite lld@${{inputs.llvm-version}} libffi
|
|
echo "$(brew --prefix llvm@${{inputs.llvm-version}})/bin" >> $GITHUB_PATH
|
|
|
|
# Install optional deps for demos.
|
|
#
|
|
# NOTE: Keep this list updated as new deps are introduced.
|
|
opt_deps=(
|
|
cjson # for github.com/goplus/lib/c/cjson
|
|
sqlite # for github.com/goplus/lib/c/sqlite
|
|
python@3.12 # for github.com/goplus/lib/py
|
|
)
|
|
brew install "${opt_deps[@]}"
|
|
- name: Install Ubuntu dependencies
|
|
if: runner.os == 'Linux'
|
|
shell: bash
|
|
run: |
|
|
echo "deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs)-${{inputs.llvm-version}} main" | sudo tee /etc/apt/sources.list.d/llvm.list
|
|
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
|
|
sudo apt-get update
|
|
sudo apt-get install -y llvm-${{inputs.llvm-version}}-dev clang-${{inputs.llvm-version}} libclang-${{inputs.llvm-version}}-dev lld-${{inputs.llvm-version}} pkg-config libgc-dev libssl-dev zlib1g-dev libffi-dev libcjson-dev libunwind-dev libuv1-dev
|
|
echo "/usr/lib/llvm-${{inputs.llvm-version}}/bin" >> $GITHUB_PATH
|
|
|
|
# Install optional deps for demos.
|
|
#
|
|
# NOTE: Keep this list updated as new deps are introduced.
|
|
opt_deps=(
|
|
libcjson-dev # for github.com/goplus/lib/c/cjson
|
|
libsqlite3-dev # for github.com/goplus/lib/c/sqlite
|
|
python3.12-dev # for github.com/goplus/lib/py
|
|
)
|
|
sudo apt-get install -y "${opt_deps[@]}"
|