2026-02-23 15:58:29 +01:00
|
|
|
{ lib, stdenv, rust-bin, makeRustPlatform, perl, pkg-config, cmake,
|
|
|
|
|
darwin ? null }:
|
|
|
|
|
|
|
|
|
|
let
|
|
|
|
|
rustToolchain = rust-bin.fromRustupToolchainFile ../vendor/libchat/rust_toolchain.toml;
|
|
|
|
|
rPlatform = makeRustPlatform {
|
|
|
|
|
cargo = rustToolchain;
|
|
|
|
|
rustc = rustToolchain;
|
|
|
|
|
};
|
|
|
|
|
in rPlatform.buildRustPackage {
|
2026-02-23 20:21:55 +01:00
|
|
|
pname = "libchat";
|
2026-02-23 15:58:29 +01:00
|
|
|
version = "0.1.0";
|
|
|
|
|
src = ../vendor/libchat;
|
|
|
|
|
|
|
|
|
|
cargoLock = {
|
|
|
|
|
lockFile = ../vendor/libchat/Cargo.lock;
|
|
|
|
|
outputHashes = {
|
|
|
|
|
"chat-proto-0.1.0" = "sha256-aCl80VOIkd/GK3gnmRuFoSAvPBfeE/FKCaNlLt5AbUU=";
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
nativeBuildInputs = [ perl pkg-config cmake ];
|
|
|
|
|
buildInputs = lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
|
|
|
|
|
Security
|
|
|
|
|
SystemConfiguration
|
|
|
|
|
]);
|
|
|
|
|
doCheck = false;
|
|
|
|
|
|
|
|
|
|
installPhase = ''
|
|
|
|
|
runHook preInstall
|
|
|
|
|
mkdir -p $out/lib
|
2026-02-23 20:21:55 +01:00
|
|
|
cp target/*/release/liblibchat.so $out/lib/ 2>/dev/null || true
|
|
|
|
|
cp target/*/release/liblibchat.dylib $out/lib/ 2>/dev/null || true
|
|
|
|
|
cp target/*/release/liblibchat.a $out/lib/ 2>/dev/null || true
|
2026-02-23 15:58:29 +01:00
|
|
|
# fallback: non-cross build path
|
2026-02-23 20:21:55 +01:00
|
|
|
cp target/release/liblibchat.so $out/lib/ 2>/dev/null || true
|
|
|
|
|
cp target/release/liblibchat.dylib $out/lib/ 2>/dev/null || true
|
|
|
|
|
cp target/release/liblibchat.a $out/lib/ 2>/dev/null || true
|
2026-02-23 15:58:29 +01:00
|
|
|
runHook postInstall
|
|
|
|
|
'';
|
|
|
|
|
}
|