- Database v8 migration: tags, pinned, avg_startup_ms columns - Security scanning with CVE matching and batch scan - Bundled library extraction and vulnerability reports - Desktop notification system for security alerts - Backup/restore system for AppImage configurations - i18n framework with gettext support - Runtime analysis and Wayland compatibility detection - AppStream metadata and Flatpak-style build support - File watcher module for live directory monitoring - Preferences panel with GSettings integration - CLI interface for headless operation - Detail view: tabbed layout with ViewSwitcher in title bar, health score, sandbox controls, changelog links - Library view: sort dropdown, context menu enhancements - Dashboard: system status, disk usage, launch history - Security report page with scan and export - Packaging: meson build, PKGBUILD, metainfo
45 lines
1.2 KiB
Rust
45 lines
1.2 KiB
Rust
use std::path::PathBuf;
|
|
use std::process::Command;
|
|
|
|
fn main() {
|
|
// Compile GResources
|
|
glib_build_tools::compile_resources(
|
|
&["data"],
|
|
"data/resources.gresource.xml",
|
|
"driftwood.gresource",
|
|
);
|
|
|
|
// Compile GSettings schema for development builds
|
|
let out_dir = PathBuf::from(std::env::var("OUT_DIR").unwrap());
|
|
let schema_dir = out_dir.join("gschemas");
|
|
std::fs::create_dir_all(&schema_dir).expect("Failed to create schema dir");
|
|
|
|
std::fs::copy(
|
|
"data/app.driftwood.Driftwood.gschema.xml",
|
|
schema_dir.join("app.driftwood.Driftwood.gschema.xml"),
|
|
)
|
|
.expect("Failed to copy schema");
|
|
|
|
let status = Command::new("glib-compile-schemas")
|
|
.arg(&schema_dir)
|
|
.status()
|
|
.expect("Failed to run glib-compile-schemas");
|
|
|
|
if !status.success() {
|
|
panic!("glib-compile-schemas failed");
|
|
}
|
|
|
|
println!(
|
|
"cargo::rustc-env=GSETTINGS_SCHEMA_DIR={}",
|
|
schema_dir.display()
|
|
);
|
|
|
|
// Set LOCALEDIR for i18n support (development builds use a local path)
|
|
let locale_dir = out_dir.join("locale");
|
|
std::fs::create_dir_all(&locale_dir).ok();
|
|
println!(
|
|
"cargo::rustc-env=LOCALEDIR={}",
|
|
locale_dir.display()
|
|
);
|
|
}
|