Merge pull request #342 from aofei/dependencies
README,ci: add Dependencies section and update install instructions accordingly
This commit is contained in:
2
.github/workflows/go.yml
vendored
2
.github/workflows/go.yml
vendored
@@ -35,7 +35,7 @@ jobs:
|
|||||||
echo "deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs)-${{ matrix.llvm }} main" | sudo tee /etc/apt/sources.list.d/llvm.list
|
echo "deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs)-${{ matrix.llvm }} main" | sudo tee /etc/apt/sources.list.d/llvm.list
|
||||||
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
|
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y --no-install-recommends llvm-${{ matrix.llvm }}-dev clang-${{ matrix.llvm }} lld-${{ matrix.llvm }} libgc-dev
|
sudo apt-get install -y llvm-${{ matrix.llvm }}-dev clang-${{ matrix.llvm }} lld-${{ matrix.llvm }} pkg-config libgc-dev libcjson-dev libsqlite3-dev python3.11-dev
|
||||||
echo /usr/lib/llvm-${{ matrix.llvm }}/bin >> $GITHUB_PATH
|
echo /usr/lib/llvm-${{ matrix.llvm }}/bin >> $GITHUB_PATH
|
||||||
|
|
||||||
- name: Clang information
|
- name: Clang information
|
||||||
|
|||||||
21
README.md
21
README.md
@@ -211,6 +211,18 @@ Here are the Go packages that can be imported correctly:
|
|||||||
* [sync/atomic](https://pkg.go.dev/sync/atomic) (partially)
|
* [sync/atomic](https://pkg.go.dev/sync/atomic) (partially)
|
||||||
|
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
- [Go 1.20+](https://go.dev) (build only)
|
||||||
|
- [LLVM 17](https://llvm.org)
|
||||||
|
- [Clang 17](https://clang.llvm.org)
|
||||||
|
- [LLD 17](https://lld.llvm.org)
|
||||||
|
- [pkg-config 0.29+](https://www.freedesktop.org/wiki/Software/pkg-config/)
|
||||||
|
- [bdwgc/libgc 8.0+](https://www.hboehm.info/gc/)
|
||||||
|
- [cJSON 1.7+](https://github.com/DaveGamble/cJSON) (optional, for [`github.com/goplus/llgo/c/cjson`](https://pkg.go.dev/github.com/goplus/llgo/c/cjson))
|
||||||
|
- [SQLite 3](https://www.sqlite.org) (optional, for [`github.com/goplus/llgo/c/sqlite`](https://pkg.go.dev/github.com/goplus/llgo/c/sqlite))
|
||||||
|
- [Python 3.11+](https://www.python.org) (optional, for [`github.com/goplus/llgo/py`](https://pkg.go.dev/github.com/goplus/llgo/py))
|
||||||
|
|
||||||
## How to install
|
## How to install
|
||||||
|
|
||||||
Follow these steps to generate the `llgo` command (its usage is the same as the `go` command):
|
Follow these steps to generate the `llgo` command (its usage is the same as the `go` command):
|
||||||
@@ -219,8 +231,10 @@ Follow these steps to generate the `llgo` command (its usage is the same as the
|
|||||||
|
|
||||||
```sh
|
```sh
|
||||||
brew update # execute if needed
|
brew update # execute if needed
|
||||||
brew install llvm@17 libgc
|
brew install llvm@17 pkg-config libgc
|
||||||
|
brew install cjson sqlite python@3.12 # optional
|
||||||
export PATH=$(brew --prefix llvm@17)/bin:$PATH # you may want to add this to your shell RC file, e.g. ~/.zshrc
|
export PATH=$(brew --prefix llvm@17)/bin:$PATH # you may want to add this to your shell RC file, e.g. ~/.zshrc
|
||||||
|
export CC=clang CXX=clang++ # only for go build; optional if you have other compatible compilers
|
||||||
go install -v ./...
|
go install -v ./...
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -230,8 +244,10 @@ go install -v ./...
|
|||||||
echo "deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs)-17 main" | sudo tee /etc/apt/sources.list.d/llvm.list
|
echo "deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs)-17 main" | sudo tee /etc/apt/sources.list.d/llvm.list
|
||||||
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
|
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
|
||||||
sudo apt-get update # execute if needed
|
sudo apt-get update # execute if needed
|
||||||
sudo apt-get install -y --no-install-recommends llvm-17-dev clang-17 lld-17 libgc-dev
|
sudo apt-get install -y llvm-17-dev clang-17 lld-17 pkg-config libgc-dev
|
||||||
|
sudo apt-get install -y libcjson-dev libsqlite3-dev python3.12-dev # optional
|
||||||
export PATH=/usr/lib/llvm-17/bin:$PATH # you may want to add this to your shell RC file, e.g. ~/.bashrc
|
export PATH=/usr/lib/llvm-17/bin:$PATH # you may want to add this to your shell RC file, e.g. ~/.bashrc
|
||||||
|
export CC=clang CXX=clang++ # only for go build; optional if you have other compatible compilers
|
||||||
go install -v ./...
|
go install -v ./...
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -251,6 +267,7 @@ TODO
|
|||||||
How do I generate these tools?
|
How do I generate these tools?
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
export CC=clang CXX=clang++ # only for go build; optional if you have other compatible compilers
|
||||||
go install -v ./... # compile all tools except pydump
|
go install -v ./... # compile all tools except pydump
|
||||||
cd chore/_xtool
|
cd chore/_xtool
|
||||||
llgo install ./... # compile pydump
|
llgo install ./... # compile pydump
|
||||||
|
|||||||
Reference in New Issue
Block a user