diff options
Diffstat (limited to 'src/rust/build.rs')
-rw-r--r-- | src/rust/build.rs | 63 |
1 files changed, 37 insertions, 26 deletions
diff --git a/src/rust/build.rs b/src/rust/build.rs index b943aa5535..123d5c0682 100644 --- a/src/rust/build.rs +++ b/src/rust/build.rs @@ -10,14 +10,12 @@ use std::collections::HashMap; use std::env; use std::fs::File; -use std::io::prelude::*; use std::io; +use std::io::prelude::*; use std::path::PathBuf; /// Wrapper around a key-value map. -struct Config( - HashMap<String,String> -); +struct Config(HashMap<String, String>); /// Locate a config.rust file generated by autoconf, starting in the OUT_DIR /// location provided by cargo and recursing up the directory tree. Note that @@ -31,9 +29,9 @@ fn find_cfg() -> io::Result<String> { return Ok(path.to_str().unwrap().to_owned()); } path.pop(); // remove config.rust - if ! path.pop() { // can't remove last part of directory - return Err(io::Error::new(io::ErrorKind::NotFound, - "No config.rust")); + if !path.pop() { + // can't remove last part of directory + return Err(io::Error::new(io::ErrorKind::NotFound, "No config.rust")); } } } @@ -55,12 +53,11 @@ impl Config { } let idx = match s.find("=") { None => { - return Err(io::Error::new(io::ErrorKind::InvalidData, - "missing =")); - }, - Some(x) => x + return Err(io::Error::new(io::ErrorKind::InvalidData, "missing =")); + } + Some(x) => x, }; - let (var,eq_val) = s.split_at(idx); + let (var, eq_val) = s.split_at(idx); let val = &eq_val[1..]; map.insert(var.to_owned(), val.to_owned()); } @@ -70,34 +67,34 @@ impl Config { /// Return a reference to the value whose key is 'key'. /// /// Panics if 'key' is not found in the configuration. - fn get(&self, key : &str) -> &str { + fn get(&self, key: &str) -> &str { self.0.get(key).unwrap() } /// Add a dependency on a static C library that is part of Tor, by name. - fn component(&self, s : &str) { + fn component(&self, s: &str) { println!("cargo:rustc-link-lib=static={}", s); } /// Add a dependency on a native library that is not part of Tor, by name. - fn dependency(&self, s : &str) { + fn dependency(&self, s: &str) { println!("cargo:rustc-link-lib={}", s); } /// Add a link path, relative to Tor's build directory. - fn link_relpath(&self, s : &str) { + fn link_relpath(&self, s: &str) { let builddir = self.get("BUILDDIR"); println!("cargo:rustc-link-search=native={}/{}", builddir, s); } /// Add an absolute link path. - fn link_path(&self, s : &str) { + fn link_path(&self, s: &str) { println!("cargo:rustc-link-search=native={}", s); } /// Parse the CFLAGS in s, looking for -l and -L items, and adding /// rust configuration as appropriate. - fn from_cflags(&self, s : &str) { + fn from_cflags(&self, s: &str) { let mut next_is_lib = false; let mut next_is_path = false; for ent in self.get(s).split_whitespace() { @@ -138,8 +135,7 @@ pub fn main() { cfg.from_cflags("TOR_LDFLAGS_openssl"); cfg.from_cflags("TOR_LDFLAGS_libevent"); - cfg.link_relpath("src/common"); - cfg.link_relpath("src/ext/keccak-tiny"); + cfg.link_relpath("src/lib"); cfg.link_relpath("src/ext/keccak-tiny"); cfg.link_relpath("src/ext/ed25519/ref10"); cfg.link_relpath("src/ext/ed25519/donna"); @@ -149,11 +145,25 @@ pub fn main() { // will have dependencies on all the other rust packages that // tor uses. We must be careful with factoring and dependencies // moving forward! - cfg.component("or-crypto-testing"); - cfg.component("or-ctime-testing"); - cfg.component("or-testing"); - cfg.component("or-event-testing"); - cfg.component("or-ctime-testing"); + cfg.component("tor-crypt-ops-testing"); + cfg.component("tor-sandbox-testing"); + cfg.component("tor-encoding-testing"); + cfg.component("tor-fs-testing"); + cfg.component("tor-time-testing"); + cfg.component("tor-net-testing"); + cfg.component("tor-thread-testing"); + cfg.component("tor-memarea-testing"); + cfg.component("tor-log-testing"); + cfg.component("tor-lock-testing"); + cfg.component("tor-fdio-testing"); + cfg.component("tor-container-testing"); + cfg.component("tor-smartlist-core-testing"); + cfg.component("tor-string-testing"); + cfg.component("tor-malloc"); + cfg.component("tor-wallclock"); + cfg.component("tor-err-testing"); + cfg.component("tor-intmath-testing"); + cfg.component("tor-ctime-testing"); cfg.component("curve25519_donna"); cfg.component("keccak-tiny"); cfg.component("ed25519_ref10"); @@ -162,6 +172,7 @@ pub fn main() { cfg.from_cflags("TOR_ZLIB_LIBS"); cfg.from_cflags("TOR_LIB_MATH"); + cfg.from_cflags("NSS_LIBS"); cfg.from_cflags("TOR_OPENSSL_LIBS"); cfg.from_cflags("TOR_LIBEVENT_LIBS"); cfg.from_cflags("TOR_LIB_WS32"); @@ -171,7 +182,7 @@ pub fn main() { cfg.from_cflags("TOR_LZMA_LIBS"); cfg.from_cflags("TOR_ZSTD_LIBS"); cfg.from_cflags("LIBS"); - }, + } _ => { panic!("No configuration in build.rs for package {}", package); } |