Cargo out directory has changed, fix load-driver to match.

Change-Id: Ica108d8ae3ab0ed38a0b3cba0981c2732286fcd0
diff --git a/src/lib.rs b/src/lib.rs
index c253cd5..715a583 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -39,7 +39,7 @@
 use clap::{App, AppSettings, Arg, SubCommand};
 use cross::{pkg_config_path, run_configure, run_pkg_config};
 use device::{enable_networking, netaddr, netls, scp_to_device, ssh, start_emulator, stop_emulator};
-use sdk::{clang_linker_path, sysroot_path, target_gen_dir};
+use sdk::{clang_linker_path, cargo_out_dir, sysroot_path, target_gen_dir};
 pub use sdk::TargetOptions;
 use std::fs;
 use std::path::PathBuf;
@@ -220,7 +220,7 @@
     let cwd = std::env::current_dir()?;
     let package =
         cwd.file_name().ok_or("No current directory")?.to_str().ok_or("Invalid current directory")?;
-    let filename = PathBuf::from(format!("target/x86_64-unknown-fuchsia/debug/lib{}.so", package));
+    let filename = cargo_out_dir(target_options)?.join(format!("lib{}.so", package));
     let destination_path = copy_to_target(&filename, verbose, target_options)?;
     let command_string = format!("dm add-driver:{}", destination_path);
     if verbose {
diff --git a/src/sdk.rs b/src/sdk.rs
index f7e336f..8753d1a 100644
--- a/src/sdk.rs
+++ b/src/sdk.rs
@@ -85,6 +85,12 @@
     Ok(target_out_dir.join("gen"))
 }
 
+pub fn cargo_out_dir(options: &TargetOptions) -> Result<PathBuf> {
+    let fuchsia_root = fuchsia_root(options)?;
+    let target_triple = format!("{}-unknown-fuchsia", options.target_cpu_linker);
+    Ok(fuchsia_root.join("garnet").join("target").join(target_triple).join("debug"))
+}
+
 pub fn strip_tool_path(target_options: &TargetOptions) -> Result<PathBuf> {
     Ok(toolchain_path(target_options)?.join("bin/llvm-objcopy"))
 }