summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--talpid-core/build.rs28
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))]