diff options
| -rw-r--r-- | talpid-core/build.rs | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/talpid-core/build.rs b/talpid-core/build.rs index 7cf5b9475a..7b433cf28f 100644 --- a/talpid-core/build.rs +++ b/talpid-core/build.rs @@ -4,8 +4,21 @@ mod win { use std::path::PathBuf; static WINFW_BUILD_DIR: &'static str = "..\\windows\\winfw\\bin"; + static WINDNS_BUILD_DIR: &'static str = "..\\windows\\windns\\bin"; pub fn default_winfw_output_dir() -> PathBuf { + manifest_dir() + .join(WINFW_BUILD_DIR) + .join(&target_platform_dir()) + } + + pub fn default_windns_output_dir() -> PathBuf { + manifest_dir() + .join(WINDNS_BUILD_DIR) + .join(&target_platform_dir()) + } + + fn target_platform_dir() -> PathBuf { let target = env::var("TARGET").expect("TARGET env var not set"); let target_dir = match target.as_str() { @@ -13,8 +26,7 @@ mod win { "x86_64-pc-windows-msvc" => format!("x64-{}", get_build_mode()), _ => panic!("uncrecognized target: {}", target), }; - - manifest_dir().join(WINFW_BUILD_DIR).join(&target_dir) + target_dir.into() } fn manifest_dir() -> PathBuf { @@ -52,6 +64,18 @@ fn main() { .expect("failed to construct path for winfw include directory") ); println!("cargo:rustc-link-lib=dylib=winfw"); + + let windns_dir = env::var_os("WINDNS_INCLUDE_DIR") + .map(PathBuf::from) + .unwrap_or_else(default_windns_output_dir); + println!( + "cargo:rustc-link-search={}", + windns_dir + .to_str() + .expect("failed to construct path for windns include directory") + ); + + println!("cargo:rustc-link-lib=dylib=windns"); } #[cfg(not(windows))] |
