diff --git a/Cargo.toml b/Cargo.toml index 03502d33..84a35ede 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,7 +33,7 @@ repository = "https://github.com/tinyhumansai/tinydesktop" tinydesktop-bus = { path = "crates/tinydesktop-bus" } # Native typed Jev transport used by the desktop-control policy. Vendored as a # pinned submodule so provider validation and retry behavior are reproducible. -tinyjevclient = { path = "vendor/tinyjevclient/crates/tinyjevclient" } +tinyjevclient = "=0.2.1" # The desktop automation engine this module wraps: accessibility-tree # observation, ref allocation, and the command implementations behind every # member of the bus interface. Vendored as the `vendor/agent-desktop` submodule @@ -47,13 +47,14 @@ agent-desktop-linux = { path = "vendor/agent-desktop/crates/linux" } # TinyBus defines the message types, interface macro, and frozen module ABI # used by the generated integration. Socket and CLI features are unnecessary # here. -tinybus = { path = "vendor/tinybus/crates/tinybus", version = "0.1.2", default-features = false, features = [ +tinybus = { version = "=0.1.2", default-features = false, features = [ "macros", "modules", ] } # The module-side SDK owns the isolated runtime and exports the ABI entrypoints # required by TinyBus's dynamic loader. -tinybus-module = { path = "vendor/tinybus/crates/tinybus-module", version = "0.1.2" } +tinybus-module = "=0.1.2" + # Derive macros for the crate-wide error type in `crates/tinydesktop/src/error/`. # Every dependency entry should carry a comment like this one saying why it is # here. @@ -103,3 +104,8 @@ private_intra_doc_links = "warn" lto = "thin" codegen-units = 1 strip = "debuginfo" + +[patch.crates-io] +tinybus = { path = "vendor/tinybus/crates/tinybus" } +tinybus-module = { path = "vendor/tinybus/crates/tinybus-module" } +tinyjevclient = { path = "vendor/tinyjevclient/crates/tinyjevclient" } diff --git a/crates/tinydesktop/Cargo.toml b/crates/tinydesktop/Cargo.toml index e0f0b01b..9773cd4f 100644 --- a/crates/tinydesktop/Cargo.toml +++ b/crates/tinydesktop/Cargo.toml @@ -59,6 +59,8 @@ serde_json = { workspace = true } [features] default = [] +linked = ["static-link"] +static-link = [] [lints] workspace = true diff --git a/crates/tinydesktop/src/lib.rs b/crates/tinydesktop/src/lib.rs index 5358164e..7734eb63 100644 --- a/crates/tinydesktop/src/lib.rs +++ b/crates/tinydesktop/src/lib.rs @@ -96,6 +96,10 @@ mod desktop; mod error; mod tinybus_module; +/// Constructs this module for registration with an in-process TinyBus host. +#[cfg(feature = "static-link")] +pub use tinybus_module::linked_module; + pub use desktop::Desktop; pub use error::{Error, Result}; diff --git a/crates/tinydesktop/src/tinybus_module/mod.rs b/crates/tinydesktop/src/tinybus_module/mod.rs index 82262bef..e5ea1985 100644 --- a/crates/tinydesktop/src/tinybus_module/mod.rs +++ b/crates/tinydesktop/src/tinybus_module/mod.rs @@ -44,7 +44,7 @@ async fn setup(connection: Connection, config: Value) -> TinyBusResult<()> { Ok(()) } -tinybus_module::module_export! { +tinybus_module::module_export_optional_static! { setup = setup, config = serde_json::Value, // Two: one to run a blocking command on, and one to keep answering on diff --git a/vendor/tinybus b/vendor/tinybus index 6ee8258c..433d9ed0 160000 --- a/vendor/tinybus +++ b/vendor/tinybus @@ -1 +1 @@ -Subproject commit 6ee8258c03eb442aca8225d328d3c8e7c5489af6 +Subproject commit 433d9ed088597d21c48706e397b149fff04855cd