Co-authored-by: xgopilot <noreply@goplus.org> Co-authored-by: Claude <noreply@anthropic.com>
75 lines
2.8 KiB
YAML
75 lines
2.8 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"
|
|
install-llvm:
|
|
description: "Whether to install LLVM"
|
|
required: false
|
|
default: "true"
|
|
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- name: Install macOS dependencies
|
|
if: runner.os == 'macOS'
|
|
shell: bash
|
|
env:
|
|
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
|
|
run: |
|
|
brew update
|
|
|
|
# Install LLVM if requested
|
|
if [[ "${{ inputs.install-llvm }}" == "true" ]]; then
|
|
brew install llvm@${{inputs.llvm-version}} lld@${{inputs.llvm-version}}
|
|
brew link --overwrite llvm@${{inputs.llvm-version}} lld@${{inputs.llvm-version}}
|
|
echo "$(brew --prefix llvm@${{inputs.llvm-version}})/bin" >> $GITHUB_PATH
|
|
fi
|
|
|
|
# Install common dependencies
|
|
brew install bdw-gc openssl libffi libuv
|
|
brew link --overwrite libffi
|
|
|
|
# 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
|
|
)
|
|
brew install "${opt_deps[@]}"
|
|
|
|
brew install python@3.12 || true # for github.com/goplus/lib/py
|
|
brew link --overwrite python@3.12
|
|
|
|
- name: Install Ubuntu dependencies
|
|
if: runner.os == 'Linux'
|
|
shell: bash
|
|
run: |
|
|
# Install LLVM if requested
|
|
if [[ "${{ inputs.install-llvm }}" == "true" ]]; then
|
|
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}} libunwind-${{inputs.llvm-version}}-dev libc++-${{inputs.llvm-version}}-dev
|
|
echo "PATH=/usr/lib/llvm-${{inputs.llvm-version}}/bin:$PATH" >> $GITHUB_ENV
|
|
else
|
|
sudo apt-get update
|
|
fi
|
|
|
|
# Install common dependencies
|
|
sudo apt-get install -y pkg-config libgc-dev libssl-dev zlib1g-dev libffi-dev libcjson-dev libuv1-dev
|
|
|
|
# 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[@]}"
|
|
|