mirror of
https://github.com/herdrdev/herdr.git
synced 2026-09-26 08:01:15 +00:00
78 lines
1.8 KiB
Nix
78 lines
1.8 KiB
Nix
{
|
|
lib,
|
|
rustPlatform,
|
|
callPackage,
|
|
runCommand,
|
|
zig_0_15,
|
|
zstd,
|
|
pkg-config,
|
|
git,
|
|
}:
|
|
|
|
let
|
|
manifest = lib.importTOML ../Cargo.toml;
|
|
zigDeps = callPackage ../vendor/libghostty-vt/build.zig.zon.nix {
|
|
name = "herdr-libghostty-vt-zig-cache";
|
|
inherit zstd;
|
|
linkFarm = name: entries:
|
|
runCommand name { } ''
|
|
mkdir -p $out
|
|
${lib.concatMapStringsSep "\n" (entry: ''
|
|
cp -rL ${entry.path} $out/${entry.name}
|
|
'') entries}
|
|
'';
|
|
};
|
|
in
|
|
rustPlatform.buildRustPackage {
|
|
pname = "herdr";
|
|
version = manifest.package.version;
|
|
|
|
src = lib.fileset.toSource {
|
|
root = ./..;
|
|
fileset = lib.fileset.intersection (lib.fileset.fromSource (lib.sources.cleanSource ./..)) (
|
|
lib.fileset.unions [
|
|
../assets
|
|
../src
|
|
../vendor/libghostty-vt
|
|
../vendor/libghostty-vt.vendor.json
|
|
../build.rs
|
|
../Cargo.lock
|
|
../Cargo.toml
|
|
]
|
|
);
|
|
};
|
|
|
|
cargoHash = "sha256-YseT5O69ld88SoZYPgMR/qz7djfKCdyuJkOGkHdv97A=";
|
|
cargoDepsName = "herdr";
|
|
|
|
nativeBuildInputs = [
|
|
git
|
|
pkg-config
|
|
];
|
|
|
|
env = {
|
|
LIBGHOSTTY_VT_OPTIMIZE = "ReleaseFast";
|
|
LIBGHOSTTY_VT_SIMD = "true";
|
|
LIBGHOSTTY_VT_ZIG_SYSTEM_DIR = zigDeps;
|
|
ZIG = lib.getExe zig_0_15;
|
|
};
|
|
|
|
preBuild = ''
|
|
export ZIG_GLOBAL_CACHE_DIR="$TMPDIR/zig-global-cache"
|
|
export ZIG_LOCAL_CACHE_DIR="$TMPDIR/zig-local-cache"
|
|
'';
|
|
|
|
# Rust tests are covered by the normal CI workflow. The Nix check is
|
|
# intentionally build-only so it validates packaging inputs without
|
|
# duplicating the full Rust test suite.
|
|
doCheck = false;
|
|
|
|
meta = {
|
|
description = "Terminal workspace manager for AI coding agents";
|
|
homepage = "https://herdr.dev";
|
|
license = lib.licenses.agpl3Plus;
|
|
mainProgram = "herdr";
|
|
platforms = lib.platforms.linux ++ lib.platforms.darwin;
|
|
};
|
|
}
|