8.4 KiB
从源码构建
克隆仓库后,构建和打包命令均在仓库根目录执行。构建依赖与参数以 Xmake 配置 和 CI 工作流 为准。1.4.3 仅为本地构建示例版本号;调整时请同步修改配置命令与打包参数,避免程序内版本号与安装包不一致。
构建依赖
- Git、Xmake 及下文对应平台的编译工具链。
- 构建脚本通过 Xmake 管理 CMake 3.x(≥ 3.21、< 4.0)、Rust 1.92.0 等依赖;首次构建需要下载工具与源码。具体约束见 Slint 包配置。
Windows
安装 Visual Studio 2022 的“使用 C++ 的桌面开发”工作负载及 Windows SDK,并安装 Xmake。在开发者 PowerShell 中执行:
git clone --recurse-submodules https://github.com/kunkundi/crossdesk.git
cd crossdesk
xmake f -c -p windows -a x64 -m release --CROSSDESK_VERSION=1.4.3 --USE_CUDA=false -y
xmake b -vy crossdesk
xmake r crossdesk
安装包还使用 NSIS,需将仓库中的 nsProcess.dll 放入 NSIS 的 Plugins/x86-unicode 目录,并确保 makensis 在 PATH 中。完成 Release 编译后运行:
.\apps\desktop\scripts\windows\pkg_x64.ps1 1.4.3
完整流程见 Windows 脚本 和 CI 工作流。手动部署时需保留运行库及两个服务辅助程序,见 Windows 服务说明。
macOS
安装 Xcode 及其命令行工具、Xmake,然后执行:
git clone --recurse-submodules https://github.com/kunkundi/crossdesk.git
cd crossdesk
xmake f -c -m release --target_minver=14.0 --CROSSDESK_VERSION=1.4.3 --USE_CUDA=false -y
xmake b -vy crossdesk
xmake r crossdesk
当前 CI 对 Intel 与 Apple Silicon 均设置 macOS 14.0 为最低目标版本,使用的 Xcode/SDK 版本见 CI 工作流。打包时按本机架构执行一个脚本:
# Apple Silicon
./apps/desktop/scripts/macos/pkg_arm64.sh 1.4.3
# Intel
./apps/desktop/scripts/macos/pkg_x64.sh 1.4.3
打包脚本会生成包含 Slint 运行库的 .app 和 .pkg。屏幕录制、辅助功能授权与应用路径及签名有关;测试被控能力时请使用固定路径下的应用包。
Linux
Linux 构建支持 Ubuntu 20.04 及以上版本的 amd64 和 arm64。发布安装包以 Ubuntu 20.04/glibc 2.31 为兼容基线。以下依赖命令以 Ubuntu 20.04 为例;其他发行版或较新版本需按其软件源调整包名和工具链,复现 CI 可使用下文的构建镜像。先安装基础编译依赖:
sudo apt-get update
sudo apt-get install -y \
git curl unzip build-essential gcc-10 g++-10 python3-pip \
pkg-config binutils dpkg-dev \
libx11-dev libxext-dev libxrender-dev libxft-dev libxrandr-dev \
libxinerama-dev libxcursor-dev libxi-dev libxfixes-dev libxv-dev \
libxtst-dev libxcb-randr0-dev libxcb-xtest0-dev libxcb-xinerama0-dev \
libxcb-shape0-dev libxcb-xkb-dev libxcb-xfixes0-dev libxcb-shm0-dev \
libasound2-dev libsndio-dev libpulse-dev \
libgl1-mesa-dev
Ubuntu 20.04 自带的 CMake 3.16 不满足要求,Xmake 会下载符合上述范围的 CMake 3.x,无需手动替换系统 CMake。
Ubuntu 20.04 默认的 GCC 9 缺少 Slint C++ API 所需的部分 C++20 标准库, 因此上述命令同时安装并在后续配置中指定 GCC 10。
下载子模块并编译 Release 版本:
git clone --recurse-submodules https://github.com/kunkundi/crossdesk.git
cd crossdesk
# 已经克隆过仓库时执行这一行
git submodule update --init --recursive
xmake f -c -m release --CROSSDESK_VERSION=1.4.3 --USE_CUDA=false --toolchain=gcc-10 -y
xmake b -vy crossdesk
这里应使用 --toolchain=gcc-10,以确保 CrossDesk 及 xmake 在配置阶段构建的
libyuv 等第三方包都使用 GCC 10。只指定 --cc/--cxx 时,依赖安装可能仍回退到
系统默认的 /bin/cc 和 /bin/c++。-c 会清除旧配置,切换编译器时必须保留。
amd64 构建结果位于 build/linux/x86_64/release/crossdesk,arm64 构建结果位于 build/linux/arm64/release/crossdesk。
启用 Wayland 和 DRM 时,再安装 D-Bus、DRM 及 PipeWire 开发依赖。Ubuntu 20.04 使用仓库提供的 PipeWire 头文件 SDK;Ubuntu 22.04 及以上可改用系统的 libpipewire-0.3-dev 和 libspa-0.2-dev 包:
sudo apt-get install -y libdbus-1-dev libdrm-dev
# 已安装系统 PipeWire 0.3 开发包时跳过这一行
sudo ./docker/linux-build/install-pipewire-sdk.sh
xmake f -c -m release --USE_WAYLAND=true --USE_DRM=true --USE_CUDA=false \
--CROSSDESK_VERSION=1.4.3 --toolchain=gcc-10 -y
xmake b -vy crossdesk
生成 Debian 安装包(必须在对应架构上先完成 Release 编译):
# amd64
./apps/desktop/scripts/linux/pkg_amd64.sh 1.4.3
# arm64
./apps/desktop/scripts/linux/pkg_arm64.sh 1.4.3
打包脚本会将 Slint 共享运行库安装到软件包私有目录 /usr/lib/crossdesk,无需用户另外安装 libslint_cpp.so。
PipeWire 不属于强制运行时依赖:程序在运行时检测宿主系统的 PipeWire 0.3,
没有该运行库时仍可使用 X11(以及构建时启用的 DRM)捕获。
通用编译选项
--USE_CUDA=true/false: 启用 CUDA 硬件编解码,默认不启用
--USE_WAYLAND=true/false: 在 Linux 上启用 Wayland/PipeWire 捕获,默认不启用
--USE_DRM=true/false: 在 Linux 上启用 DRM 捕获,默认不启用
--CROSSDESK_PORTABLE=true/false: 构建便携版本,默认不启用
--CROSSDESK_VERSION=xxx: 指定 CrossDesk 的版本
# 示例
xmake f --CROSSDESK_VERSION=1.4.3 --USE_CUDA=true
运行:
xmake r crossdesk
无 CUDA 环境下的开发支持
对于未安装 CUDA 环境的 Linux 开发者,如果希望编译后的成果物拥有硬件编解码能力,这里提供了预配置的 Ubuntu 20.04 兼容构建镜像。该镜像内置必要的构建依赖,可生成兼容 glibc 2.31 的单一 Linux 安装包。
镜像版本和 amd64 / arm64 差异见 构建镜像说明。以下 CUDA 示例适用于 amd64 镜像;进入容器、下载工程后执行:
export CUDA_PATH=/usr/local/cuda
export XMAKE_GLOBALDIR=/data
xmake f --root -c -m release --CROSSDESK_VERSION=1.4.3 --USE_CUDA=true --toolchain=gcc-10 -y
xmake b --root -vy crossdesk
对于未安装 CUDA 环境的 Windows 开发者,执行下面的命令安装 CUDA 编译环境:
xmake require -vy "cuda 12.6.3"
安装完成后执行:
xmake require --info "cuda 12.6.3"
在输出中查找 installdir 字段。
使用 installdir 指向的 CUDA 安装目录。将 CUDA_PATH 加入系统环境变量,或在终端中输入:
$env:CUDA_PATH = "C:\path\to\cuda_installdir"
重新执行:
xmake f --USE_CUDA=true
xmake b -vy crossdesk
运行时连接问题
“未连接服务器”可能由网络、服务器配置或证书信任引起,不应只通过安装另一份客户端来排查。请按 常见问题 和 自托管证书说明 检查。
关于 Xmake
安装 Xmake
使用 curl:
curl -fsSL https://xmake.io/shget.text | bash
使用 wget:
wget https://xmake.io/shget.text -O - | bash
使用 powershell:
irm https://xmake.io/psget.text | iex
编译选项
# 切换到 Debug;Release 构建将 debug 替换为 release
xmake f -m debug
# 可选编译参数
-r :重新构建目标
-v :显示详细的构建日志
-y :自动确认提示
# 示例
xmake b -vy crossdesk
运行选项
# 使用调试器启动当前构建;不会自动切换为 Debug 编译模式
xmake r -d crossdesk
更多使用方法可参考 Xmake 官方文档。
iOS / iPadOS
原生客户端使用独立 Xcode 工程,要求 iOS 16+ 的 arm64 真机。构建与音视频、文件传输验证步骤见 iOS 开发说明。当前 CI 导出未签名应用,真机安装需要自行签名。
更新界面截图
README 的桌面图片直接由当前 Slint UI 渲染,复现方式见 截图说明。