From d32974dc181ff227988c5a08a96ef22b3733e03d Mon Sep 17 00:00:00 2001 From: dijunkun Date: Tue, 28 Jul 2026 17:58:39 +0800 Subject: [PATCH] ci: add Linux capture build dependencies --- .github/workflows/build.yml | 17 +++++++++++++++++ docker/linux-build/Dockerfile | 4 +++- docker/linux-build/README.md | 3 ++- docker/linux-build/verify-build-image.sh | 12 +++++++++++- 4 files changed, 33 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a2bb8fe..f89cd1f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -103,6 +103,23 @@ jobs: - name: Verify Linux build image run: verify-crossdesk-build-image + - name: Ensure Wayland build dependencies + shell: bash + run: | + if pkg-config --exists dbus-1 libdrm libpipewire-0.3 libspa-0.2; then + exit 0 + fi + + apt-get update + apt-get install -y --no-install-recommends \ + libdbus-1-dev \ + libdrm-dev \ + libpipewire-0.3-dev \ + libspa-0.2-dev + rm -rf /var/lib/apt/lists/* + + pkg-config --exists dbus-1 libdrm libpipewire-0.3 libspa-0.2 + - name: Build CrossDesk env: CUDA_PATH: /usr/local/cuda diff --git a/docker/linux-build/Dockerfile b/docker/linux-build/Dockerfile index e10c342..a545dd2 100644 --- a/docker/linux-build/Dockerfile +++ b/docker/linux-build/Dockerfile @@ -52,9 +52,11 @@ RUN apt-get update \ libfreetype6-dev \ libgl1-mesa-dev \ libmount-dev \ + libpipewire-0.3-dev \ libpulse-dev \ libreadline-dev \ libsndio-dev \ + libspa-0.2-dev \ libssl-dev \ libtool \ libx11-dev \ @@ -134,7 +136,7 @@ COPY submodules/minirtc/thirdparty ./submodules/minirtc/thirdparty # CrossDesk's exact dependency graph. Source files are intentionally excluded # from the Docker context; source-only changes therefore reuse this layer. RUN xmake repo -u --root \ - && xmake f -m release --USE_CUDA=true --root -y \ + && xmake f -m release --USE_CUDA=true --USE_WAYLAND=true --root -y \ && rm -rf /data/.xmake/cache /tmp/crossdesk-dependencies \ && mkdir -p /workspace diff --git a/docker/linux-build/README.md b/docker/linux-build/README.md index a7d5a0d..6a08774 100644 --- a/docker/linux-build/README.md +++ b/docker/linux-build/README.md @@ -1,7 +1,8 @@ # CrossDesk Linux 构建镜像 这个目录维护 CrossDesk 专用的 Ubuntu 22.04 构建环境。镜像包含 xmake、 -Rust、Linux 开发库以及根据项目 `xmake.lua` 提前编译好的依赖。 +Rust、Linux 开发库(包括 D-Bus、DRM、PipeWire 和 SPA)以及根据项目 +`xmake.lua` 提前编译好的依赖。 ## 发布方式 diff --git a/docker/linux-build/verify-build-image.sh b/docker/linux-build/verify-build-image.sh index c5a20b2..d7adc29 100644 --- a/docker/linux-build/verify-build-image.sh +++ b/docker/linux-build/verify-build-image.sh @@ -30,7 +30,17 @@ rustc --version | grep -F "rustc ${EXPECTED_RUST_VERSION}" >/dev/null cargo --version >/dev/null cmake --version >/dev/null g++ --version >/dev/null -pkg-config --exists xft +for pkg_config_package in \ + dbus-1 \ + libdrm \ + libpipewire-0.3 \ + libspa-0.2 \ + xft; do + if ! pkg-config --exists "${pkg_config_package}"; then + echo "Required pkg-config package is missing: ${pkg_config_package}" >&2 + exit 1 + fi +done for package_path in \ "s/slint" \