remote ssh: Fix asset embedding in cross-compilation (#19180)

Thorsten Ball and Bennet created

This fixes the panic from the settings file not being embedded.


Release Notes:

- N/A

---------

Co-authored-by: Bennet <bennet@zed.dev>

Change summary

Cargo.lock                                    | 1 +
crates/recent_projects/src/ssh_connections.rs | 4 +++-
crates/remote_server/Cargo.toml               | 5 +++++
3 files changed, 9 insertions(+), 1 deletion(-)

Detailed changes

Cargo.lock 🔗

@@ -9153,6 +9153,7 @@ dependencies = [
  "project",
  "remote",
  "rpc",
+ "rust-embed",
  "serde",
  "serde_json",
  "settings",

crates/recent_projects/src/ssh_connections.rs 🔗

@@ -461,7 +461,7 @@ impl SshClientDelegate {
         } else if let Some(triple) = platform.triple() {
             smol::fs::create_dir_all("target/remote-server").await?;
 
-            self.update_status(Some("Installing cross.rs"), cx);
+            self.update_status(Some("Installing cross.rs for cross-compilation"), cx);
             log::info!("installing cross");
             run_cmd(Command::new("cargo").args([
                 "install",
@@ -485,6 +485,8 @@ impl SshClientDelegate {
                         "build",
                         "--package",
                         "remote_server",
+                        "--features",
+                        "debug-embed",
                         "--target-dir",
                         "target/remote_server",
                         "--target",

crates/remote_server/Cargo.toml 🔗

@@ -18,6 +18,7 @@ name = "remote_server"
 
 [features]
 default = []
+debug-embed = ["dep:rust-embed"]
 test-support = ["fs/test-support"]
 
 [dependencies]
@@ -36,6 +37,7 @@ node_runtime.workspace = true
 project.workspace = true
 remote.workspace = true
 rpc.workspace = true
+rust-embed = { workspace = true, optional = true, features = ["debug-embed"] }
 serde.workspace = true
 serde_json.workspace = true
 settings.workspace = true
@@ -61,3 +63,6 @@ serde_json.workspace = true
 [build-dependencies]
 cargo_toml.workspace = true
 toml.workspace = true
+
+[package.metadata.cargo-machete]
+ignored = ["rust-embed"]