mirror of
https://github.com/logos-messaging/libchat.git
synced 2026-05-12 13:09:29 +00:00
Replace the direct use of `conversations::Context` with `client::ChatClient`, which is the intended public API for library consumers. Remove `MessageEnvelope` and the username-keyed session model. The envelope was never part of the wire protocol — sender identity was only tracked in the CLI's local state. Chats are now keyed by conversation ID; add `/nickname` as the user-facing replacement for named sessions. Add a logos-delivery (Waku) transport alongside the existing file transport. The active transport is selected at compile time: set `LOGOS_DELIVERY_LIB_DIR` to link liblogosdelivery, otherwise the file transport is used. Add logos-delivery as a Nix flake input and expose `.#logos-delivery` so the library can be built with `nix build` and referenced by `LOGOS_DELIVERY_LIB_DIR`. CI: rename `c-ffi-smoketest` to `smoketest`; add logos-delivery build step and a `--smoketest` invocation of chat-cli to verify startup.
21 lines
812 B
Rust
21 lines
812 B
Rust
fn main() {
|
|
println!("cargo::rustc-check-cfg=cfg(logos_delivery)");
|
|
println!("cargo:rerun-if-env-changed=LOGOS_DELIVERY_LIB_DIR");
|
|
|
|
let Ok(lib_dir) = std::env::var("LOGOS_DELIVERY_LIB_DIR") else {
|
|
return;
|
|
};
|
|
|
|
println!("cargo:rustc-cfg=logos_delivery");
|
|
println!("cargo:rustc-link-search=native={lib_dir}");
|
|
println!("cargo:rustc-link-lib=dylib=logosdelivery");
|
|
|
|
// Set rpath so the binary finds the shared library at runtime.
|
|
let target_os = std::env::var("CARGO_CFG_TARGET_OS").unwrap_or_default();
|
|
match target_os.as_str() {
|
|
"macos" => println!("cargo:rustc-link-arg=-Wl,-rpath,{lib_dir}"),
|
|
"linux" => println!("cargo:rustc-link-arg=-Wl,-rpath,{lib_dir}"),
|
|
other => panic!("unsupported OS for logos-delivery transport: {other}"),
|
|
}
|
|
}
|