Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions bin/chat-cli/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,15 @@ A terminal chat application built on top of libchat. End-to-end encrypted messag

## Building

[logos-delivery](https://github.com/logos-messaging/logos-delivery) is exposed as a Nix package.
Build it once, then point `LOGOS_DELIVERY_LIB_DIR` at the result:
`chat-cli` links the native [logos-delivery](https://github.com/logos-messaging/logos-delivery)
library. The dev shell builds it and sets `LOGOS_DELIVERY_LIB_DIR` for you:

```bash
nix develop
cargo build --release -p chat-cli
```

Or build the library yourself and point `LOGOS_DELIVERY_LIB_DIR` at it:

```bash
nix build .#logos-delivery
Expand Down
8 changes: 8 additions & 0 deletions extensions/logos-delivery-rust/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,11 @@ fn resolve_lib_dir(dir: &str) -> Option<PathBuf> {
let manifest = std::env::var("CARGO_MANIFEST_DIR").ok()?;
Path::new(&find_flake_root(&manifest)?).join(path)
};
// Re-run once the lib appears, so build order (nix build vs. cargo) is free.
println!("cargo:rerun-if-changed={}", anchored.display());
if let Some(parent) = anchored.parent() {
println!("cargo:rerun-if-changed={}", parent.display());
}
anchored.canonicalize().ok()
}

Expand Down Expand Up @@ -149,8 +154,11 @@ fn nix_build_logos_delivery() -> Option<String> {

println!("cargo:rerun-if-changed={flake_root}/flake.lock");

// Enable flakes inline so the fallback works without global nix.conf setup.
let output = Command::new("nix")
.args([
"--extra-experimental-features",
"nix-command flakes",
"build",
".#logos-delivery",
"--no-link",
Expand Down
Loading