Update CI and release workflows to include native dependency setup and adjust CLI binary build features

- Added a step to set up native dependencies using `cargo xtask setup` in both CI and release workflows.
- Updated the build commands for CLI binaries to include `heif` and `ffmpeg` features, ensuring the binaries are built with the necessary capabilities.
- Modified `Cargo.toml` files for `sd-cli`, `sd-server`, and `tauri` to define `heif` and `ffmpeg` features separately, improving modularity and clarity in dependency management.
This commit is contained in:
Jamie Pine 2025-12-10 14:05:24 -08:00
parent 09d60fc7f8
commit 4525eda7de
5 changed files with 23 additions and 5 deletions

View File

@ -219,8 +219,11 @@ jobs:
token: ${{ secrets.GITHUB_TOKEN }}
target: ${{ matrix.settings.target }}
- name: Setup native dependencies
run: cargo xtask setup
- name: Build CLI binaries
run: cargo build --release --bin sd-cli --bin sd-daemon --target ${{ matrix.settings.target }}
run: cargo build --release --bin sd-cli --bin sd-daemon --features heif,ffmpeg --target ${{ matrix.settings.target }}
- name: Prepare binaries (Unix)
if: runner.os != 'Windows'

View File

@ -53,9 +53,12 @@ jobs:
sudo apt-get update
sudo apt-get install -y gcc-aarch64-linux-gnu
- name: Setup native dependencies
run: cargo xtask setup
- name: Build CLI binaries
run: |
cargo build --release --bin sd-cli --bin sd-daemon --target ${{ matrix.target }}
cargo build --release --bin sd-cli --bin sd-daemon --features heif,ffmpeg --target ${{ matrix.target }}
env:
# Set linker for cross-compilation
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc

View File

@ -3,6 +3,11 @@ edition = "2021"
name = "sd-cli"
version = "2.0.0-pre.1"
[features]
default = []
heif = ["sd-core/heif"]
ffmpeg = ["sd-core/ffmpeg"]
[dependencies]
anyhow = "1"
bincode = { version = "2.0.0-rc.3", features = ["serde"] }
@ -16,7 +21,7 @@ inquire = "0.7"
qr2term = "0.3"
ratatui = "0.26"
reqwest = { version = "0.12", features = ["json"] }
sd-core = { path = "../../core", features = ["cli", "heif", "ffmpeg"] }
sd-core = { path = "../../core", features = ["cli"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
tokio = { version = "1", features = ["full"] }

View File

@ -3,9 +3,14 @@ name = "sd-server"
version = "2.0.0-pre.1"
edition = "2021"
[features]
default = []
heif = ["sd-core/heif"]
ffmpeg = ["sd-core/ffmpeg"]
[dependencies]
# Spacedrive core
sd-core = { path = "../../core", features = ["ffmpeg", "heif"] }
sd-core = { path = "../../core" }
# HTTP server
axum = "0.7"

View File

@ -24,7 +24,7 @@ tauri-plugin-os = "2.0"
# Core bridge
sd-tauri-core = { path = "../sd-tauri-core" }
sd-core = { path = "../../../core", features = ["heif", "ffmpeg"] }
sd-core = { path = "../../../core" }
# Async runtime
tokio = { version = "1.40", features = ["full"] }
@ -48,3 +48,5 @@ parking_lot = "0.12"
[features]
default = ["custom-protocol"]
custom-protocol = ["tauri/custom-protocol"]
heif = ["sd-core/heif"]
ffmpeg = ["sd-core/ffmpeg"]