mirror of
https://github.com/fluffos/fluffos
synced 2026-08-12 18:26:06 -04:00
build: add pkg-config and libffi to dependency lists (#1235)
package_ffi requires pkg-config and libffi (find_package(PkgConfig REQUIRED) + pkg_check_modules(FFI REQUIRED libffi) in src/packages/ffi/CMakeLists.txt), but the docs, Dockerfile, and CI package lists never listed them — CI only passed because the runners preinstall pkg-config. Add the platform-appropriate packages across every dependency list: - apt: pkg-config libffi-dev - brew: libffi (pkg-config already present) - apk: pkgconf libffi-dev - pacman: mingw-w64-x86_64-pkgconf mingw-w64-x86_64-libffi Also note in the build docs that flex is only needed when editing the LPC lexer; otherwise the pre-committed generated lexer is used.
This commit is contained in:
parent
55956a24b7
commit
6f33a65c13
8 changed files with 37 additions and 23 deletions
16
.github/workflows/ci.yml
vendored
16
.github/workflows/ci.yml
vendored
|
|
@ -31,7 +31,7 @@ jobs:
|
|||
cxx: g++
|
||||
build: Debug
|
||||
cmake_flags: -DPACKAGE_DWLIB=ON
|
||||
packages: build-essential autoconf automake bison flex expect libmysqlclient-dev libpcre3-dev libpq-dev libsqlite3-dev libssl-dev libtool libz-dev telnet libgtest-dev libjemalloc-dev libffi-dev
|
||||
packages: build-essential autoconf automake bison flex expect libmysqlclient-dev libpcre3-dev libpq-dev libsqlite3-dev libssl-dev libtool libz-dev telnet libgtest-dev libjemalloc-dev pkg-config libffi-dev
|
||||
- platform: Ubuntu
|
||||
os: ubuntu-24.04
|
||||
compiler: gcc
|
||||
|
|
@ -39,7 +39,7 @@ jobs:
|
|||
cxx: g++
|
||||
build: RelWithDebInfo
|
||||
cmake_flags: -DPACKAGE_DWLIB=ON
|
||||
packages: build-essential autoconf automake bison flex expect libmysqlclient-dev libpcre3-dev libpq-dev libsqlite3-dev libssl-dev libtool libz-dev telnet libgtest-dev libjemalloc-dev libffi-dev
|
||||
packages: build-essential autoconf automake bison flex expect libmysqlclient-dev libpcre3-dev libpq-dev libsqlite3-dev libssl-dev libtool libz-dev telnet libgtest-dev libjemalloc-dev pkg-config libffi-dev
|
||||
|
||||
# Ubuntu - Clang
|
||||
- platform: Ubuntu
|
||||
|
|
@ -48,14 +48,14 @@ jobs:
|
|||
cc: clang
|
||||
cxx: clang++
|
||||
build: Debug
|
||||
packages: build-essential autoconf automake bison flex expect libmysqlclient-dev libpcre3-dev libpq-dev libsqlite3-dev libssl-dev libtool libz-dev telnet libgtest-dev libjemalloc-dev libffi-dev
|
||||
packages: build-essential autoconf automake bison flex expect libmysqlclient-dev libpcre3-dev libpq-dev libsqlite3-dev libssl-dev libtool libz-dev telnet libgtest-dev libjemalloc-dev pkg-config libffi-dev
|
||||
- platform: Ubuntu
|
||||
os: ubuntu-24.04
|
||||
compiler: clang
|
||||
cc: clang
|
||||
cxx: clang++
|
||||
build: RelWithDebInfo
|
||||
packages: build-essential autoconf automake bison flex expect libmysqlclient-dev libpcre3-dev libpq-dev libsqlite3-dev libssl-dev libtool libz-dev telnet libgtest-dev libjemalloc-dev libffi-dev
|
||||
packages: build-essential autoconf automake bison flex expect libmysqlclient-dev libpcre3-dev libpq-dev libsqlite3-dev libssl-dev libtool libz-dev telnet libgtest-dev libjemalloc-dev pkg-config libffi-dev
|
||||
|
||||
# Ubuntu - Clang with Sanitizer
|
||||
- platform: Ubuntu
|
||||
|
|
@ -66,7 +66,7 @@ jobs:
|
|||
build: Debug
|
||||
sanitizer: true
|
||||
cmake_flags: -DENABLE_SANITIZER=ON
|
||||
packages: build-essential autoconf automake bison flex expect libmysqlclient-dev libpcre3-dev libpq-dev libsqlite3-dev libssl-dev libtool libz-dev telnet libgtest-dev libjemalloc-dev libdw-dev libbz2-dev libffi-dev
|
||||
packages: build-essential autoconf automake bison flex expect libmysqlclient-dev libpcre3-dev libpq-dev libsqlite3-dev libssl-dev libtool libz-dev telnet libgtest-dev libjemalloc-dev pkg-config libdw-dev libbz2-dev libffi-dev
|
||||
- platform: Ubuntu
|
||||
os: ubuntu-24.04
|
||||
compiler: clang
|
||||
|
|
@ -75,7 +75,7 @@ jobs:
|
|||
build: RelWithDebInfo
|
||||
sanitizer: true
|
||||
cmake_flags: -DENABLE_SANITIZER=ON
|
||||
packages: build-essential autoconf automake bison flex expect libmysqlclient-dev libpcre3-dev libpq-dev libsqlite3-dev libssl-dev libtool libz-dev telnet libgtest-dev libjemalloc-dev libdw-dev libbz2-dev libffi-dev
|
||||
packages: build-essential autoconf automake bison flex expect libmysqlclient-dev libpcre3-dev libpq-dev libsqlite3-dev libssl-dev libtool libz-dev telnet libgtest-dev libjemalloc-dev pkg-config libdw-dev libbz2-dev libffi-dev
|
||||
|
||||
# macOS
|
||||
- platform: macOS
|
||||
|
|
@ -98,14 +98,14 @@ jobs:
|
|||
build: Debug
|
||||
cmake_generator: MSYS Makefiles
|
||||
cmake_flags: -DMARCH_NATIVE=OFF -DPACKAGE_CRYPTO=OFF -DPACKAGE_DB_MYSQL="" -DPACKAGE_DB_SQLITE=1
|
||||
packages: mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake mingw-w64-x86_64-zlib mingw-w64-x86_64-pcre mingw-w64-x86_64-icu mingw-w64-x86_64-sqlite3 mingw-w64-x86_64-jemalloc mingw-w64-x86_64-gtest mingw-w64-x86_64-libffi bison flex make
|
||||
packages: mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake mingw-w64-x86_64-zlib mingw-w64-x86_64-pcre mingw-w64-x86_64-icu mingw-w64-x86_64-sqlite3 mingw-w64-x86_64-jemalloc mingw-w64-x86_64-gtest mingw-w64-x86_64-pkgconf mingw-w64-x86_64-libffi bison flex make
|
||||
- platform: Windows
|
||||
os: windows-latest
|
||||
shell: msys2 {0}
|
||||
build: RelWithDebInfo
|
||||
cmake_generator: MSYS Makefiles
|
||||
cmake_flags: -DMARCH_NATIVE=OFF -DPACKAGE_CRYPTO=OFF -DPACKAGE_DB_MYSQL="" -DPACKAGE_DB_SQLITE=1
|
||||
packages: mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake mingw-w64-x86_64-zlib mingw-w64-x86_64-pcre mingw-w64-x86_64-icu mingw-w64-x86_64-sqlite3 mingw-w64-x86_64-jemalloc mingw-w64-x86_64-gtest mingw-w64-x86_64-libffi bison flex make
|
||||
packages: mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake mingw-w64-x86_64-zlib mingw-w64-x86_64-pcre mingw-w64-x86_64-icu mingw-w64-x86_64-sqlite3 mingw-w64-x86_64-jemalloc mingw-w64-x86_64-gtest mingw-w64-x86_64-pkgconf mingw-w64-x86_64-libffi bison flex make
|
||||
|
||||
defaults:
|
||||
run:
|
||||
|
|
|
|||
2
.github/workflows/codeql-analysis.yml
vendored
2
.github/workflows/codeql-analysis.yml
vendored
|
|
@ -49,7 +49,7 @@ jobs:
|
|||
|
||||
- run: |
|
||||
sudo apt update
|
||||
sudo apt install -y build-essential autoconf automake bison expect libmysqlclient-dev libpcre3-dev libpq-dev libsqlite3-dev libssl-dev libtool libz-dev telnet libgtest-dev libjemalloc-dev
|
||||
sudo apt install -y build-essential autoconf automake bison expect libmysqlclient-dev libpcre3-dev libpq-dev libsqlite3-dev libssl-dev libtool libz-dev telnet libgtest-dev libjemalloc-dev pkg-config libffi-dev
|
||||
mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Debug -DPACKAGE_DB_SQLITE=2 .. && make -j 2 install && cd ..
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
|
|
|
|||
2
.github/workflows/coverity-scan.yml
vendored
2
.github/workflows/coverity-scan.yml
vendored
|
|
@ -18,7 +18,7 @@ jobs:
|
|||
- name: Install packages
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install -y build-essential autoconf automake bison expect libmysqlclient-dev libpcre3-dev libpq-dev libsqlite3-dev libssl-dev libtool libz-dev telnet libgtest-dev libjemalloc-dev
|
||||
sudo apt install -y build-essential autoconf automake bison expect libmysqlclient-dev libpcre3-dev libpq-dev libsqlite3-dev libssl-dev libtool libz-dev telnet libgtest-dev libjemalloc-dev pkg-config libffi-dev
|
||||
- name: configure
|
||||
run: |
|
||||
mkdir build
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ RUN apk add --no-progress --no-cache \
|
|||
mariadb-dev mariadb-static postgresql-dev sqlite-dev sqlite-static\
|
||||
openssl-dev openssl-libs-static zlib-dev zlib-static icu-dev icu-static \
|
||||
pcre-dev bison git musl-dev libelf-static elfutils-dev zstd-static bzip2-static xz-static \
|
||||
libffi-dev
|
||||
pkgconf libffi-dev
|
||||
|
||||
WORKDIR /build
|
||||
|
||||
|
|
|
|||
8
QWEN.md
8
QWEN.md
|
|
@ -146,13 +146,14 @@ valgrind --leak-check=full ./build/bin/driver config.test
|
|||
```bash
|
||||
# 安装依赖
|
||||
sudo apt install build-essential bison libmysqlclient-dev libpcre3-dev \
|
||||
libpq-dev libsqlite3-dev libssl-dev libz-dev libjemalloc-dev libicu-dev
|
||||
libpq-dev libsqlite3-dev libssl-dev libz-dev libjemalloc-dev libicu-dev \
|
||||
pkg-config libffi-dev
|
||||
```
|
||||
|
||||
### macOS
|
||||
```bash
|
||||
# 安装依赖
|
||||
brew install cmake pkg-config mysql pcre libgcrypt libevent openssl jemalloc icu4c
|
||||
brew install cmake pkg-config mysql pcre libgcrypt libevent openssl jemalloc icu4c libffi
|
||||
|
||||
# 使用环境变量构建
|
||||
OPENSSL_ROOT_DIR="/usr/local/opt/openssl" ICU_ROOT="/usr/local/opt/icu4c" cmake ..
|
||||
|
|
@ -163,7 +164,8 @@ OPENSSL_ROOT_DIR="/usr/local/opt/openssl" ICU_ROOT="/usr/local/opt/icu4c" cmake
|
|||
# 安装 MSYS2 包
|
||||
pacman -S git mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake
|
||||
pacman -S mingw-w64-x86_64-zlib mingw-w64-x86_64-libevent \
|
||||
mingw-w64-x86_64-pcre mingw-w64-x86_64-icu mingw-w64-x86_64-openssl
|
||||
mingw-w64-x86_64-pcre mingw-w64-x86_64-icu mingw-w64-x86_64-openssl \
|
||||
mingw-w64-x86_64-pkgconf mingw-w64-x86_64-libffi
|
||||
|
||||
# 在 MINGW64 终端中构建
|
||||
cmake -G "MSYS Makefiles" ..
|
||||
|
|
|
|||
10
README.md
10
README.md
|
|
@ -135,9 +135,12 @@ sudo apt update
|
|||
sudo apt install -y build-essential autoconf automake bison expect \
|
||||
libmysqlclient-dev libpcre3-dev libpq-dev libsqlite3-dev \
|
||||
libssl-dev libtool libz-dev telnet libgtest-dev libjemalloc-dev \
|
||||
libdw-dev libbz2-dev
|
||||
pkg-config libffi-dev libdw-dev libbz2-dev
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> `flex` is only needed if you modify the LPC lexer (`src/compiler/internal/lexer.l`). Otherwise the build uses the pre-committed generated lexer.
|
||||
|
||||
**2. Compile:**
|
||||
```bash
|
||||
mkdir build && cd build
|
||||
|
|
@ -152,7 +155,7 @@ make -j$(nproc) install
|
|||
**1. Install dependencies (Homebrew):**
|
||||
```bash
|
||||
brew install cmake pkg-config pcre libgcrypt openssl jemalloc icu4c \
|
||||
mysql sqlite3 googletest
|
||||
mysql sqlite3 googletest libffi
|
||||
```
|
||||
|
||||
**2. Compile:**
|
||||
|
|
@ -175,6 +178,7 @@ pacman --noconfirm -S --needed \
|
|||
mingw-w64-x86_64-zlib mingw-w64-x86_64-pcre \
|
||||
mingw-w64-x86_64-icu mingw-w64-x86_64-sqlite3 \
|
||||
mingw-w64-x86_64-jemalloc mingw-w64-x86_64-gtest \
|
||||
mingw-w64-x86_64-pkgconf mingw-w64-x86_64-libffi \
|
||||
bison make
|
||||
```
|
||||
|
||||
|
|
@ -218,7 +222,7 @@ apk add --no-cache linux-headers gcc g++ clang-dev make cmake bash \
|
|||
mariadb-dev mariadb-static postgresql-dev sqlite-dev sqlite-static \
|
||||
openssl-dev openssl-libs-static zlib-dev zlib-static icu-dev icu-static \
|
||||
pcre-dev bison git musl-dev libelf-static elfutils-dev \
|
||||
zstd-static bzip2-static xz-static
|
||||
pkgconf libffi-dev zstd-static bzip2-static xz-static
|
||||
```
|
||||
|
||||
**2. Compile (static build):**
|
||||
|
|
|
|||
10
README_CN.md
10
README_CN.md
|
|
@ -134,9 +134,12 @@ sudo apt update
|
|||
sudo apt install -y build-essential autoconf automake bison expect \
|
||||
libmysqlclient-dev libpcre3-dev libpq-dev libsqlite3-dev \
|
||||
libssl-dev libtool libz-dev telnet libgtest-dev libjemalloc-dev \
|
||||
libdw-dev libbz2-dev
|
||||
pkg-config libffi-dev libdw-dev libbz2-dev
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> 仅当你修改 LPC 词法分析器(`src/compiler/internal/lexer.l`)时才需要 `flex`;否则构建将使用预先提交的生成文件。
|
||||
|
||||
**2. 编译:**
|
||||
```bash
|
||||
mkdir build && cd build
|
||||
|
|
@ -151,7 +154,7 @@ make -j$(nproc) install
|
|||
**1. 安装依赖(Homebrew):**
|
||||
```bash
|
||||
brew install cmake pkg-config pcre libgcrypt openssl jemalloc icu4c \
|
||||
mysql sqlite3 googletest
|
||||
mysql sqlite3 googletest libffi
|
||||
```
|
||||
|
||||
**2. 编译:**
|
||||
|
|
@ -174,6 +177,7 @@ pacman --noconfirm -S --needed \
|
|||
mingw-w64-x86_64-zlib mingw-w64-x86_64-pcre \
|
||||
mingw-w64-x86_64-icu mingw-w64-x86_64-sqlite3 \
|
||||
mingw-w64-x86_64-jemalloc mingw-w64-x86_64-gtest \
|
||||
mingw-w64-x86_64-pkgconf mingw-w64-x86_64-libffi \
|
||||
bison make
|
||||
```
|
||||
|
||||
|
|
@ -217,7 +221,7 @@ apk add --no-cache linux-headers gcc g++ clang-dev make cmake bash \
|
|||
mariadb-dev mariadb-static postgresql-dev sqlite-dev sqlite-static \
|
||||
openssl-dev openssl-libs-static zlib-dev zlib-static icu-dev icu-static \
|
||||
pcre-dev bison git musl-dev libelf-static elfutils-dev \
|
||||
zstd-static bzip2-static xz-static
|
||||
pkgconf libffi-dev zstd-static bzip2-static xz-static
|
||||
```
|
||||
|
||||
**2. 编译(静态构建):**
|
||||
|
|
|
|||
|
|
@ -50,9 +50,12 @@ $ sudo apt update
|
|||
$ sudo apt install -y build-essential autoconf automake bison expect \
|
||||
libmysqlclient-dev libpcre3-dev libpq-dev libsqlite3-dev \
|
||||
libssl-dev libtool libz-dev telnet libjemalloc-dev libicu-dev \
|
||||
libgtest-dev
|
||||
libgtest-dev pkg-config libffi-dev
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> `flex` is only needed if you modify the LPC lexer (`src/compiler/internal/lexer.l`). Otherwise the build uses the pre-committed generated lexer.
|
||||
|
||||
For **sanitizer builds** (memory debugging), also install:
|
||||
```shell
|
||||
$ sudo apt install -y libdw-dev libbz2-dev
|
||||
|
|
@ -132,7 +135,7 @@ If not already installed, goto <https://brew.sh/> and follow instructions!
|
|||
|
||||
```shell
|
||||
$ brew install cmake pkg-config mysql pcre libgcrypt openssl jemalloc icu4c \
|
||||
sqlite3 googletest
|
||||
sqlite3 googletest libffi
|
||||
```
|
||||
|
||||
Set `HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1` to speed up brew installs if needed.
|
||||
|
|
@ -205,6 +208,7 @@ $ pacman --noconfirm -S --needed \
|
|||
mingw-w64-x86_64-zlib mingw-w64-x86_64-pcre \
|
||||
mingw-w64-x86_64-icu mingw-w64-x86_64-sqlite3 \
|
||||
mingw-w64-x86_64-jemalloc mingw-w64-x86_64-gtest \
|
||||
mingw-w64-x86_64-pkgconf mingw-w64-x86_64-libffi \
|
||||
bison make
|
||||
```
|
||||
|
||||
|
|
@ -360,7 +364,7 @@ $ apk add --no-cache linux-headers gcc g++ clang-dev make cmake bash \
|
|||
mariadb-dev mariadb-static postgresql-dev sqlite-dev sqlite-static \
|
||||
openssl-dev openssl-libs-static zlib-dev zlib-static icu-dev icu-static \
|
||||
pcre-dev bison git musl-dev libelf-static elfutils-dev \
|
||||
zstd-static bzip2-static xz-static
|
||||
pkgconf libffi-dev zstd-static bzip2-static xz-static
|
||||
```
|
||||
|
||||
### Installing jemalloc
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue