diff options
Diffstat (limited to 'hidapi-sys/build.rs')
-rw-r--r-- | hidapi-sys/build.rs | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/hidapi-sys/build.rs b/hidapi-sys/build.rs deleted file mode 100644 index 4a392c6..0000000 --- a/hidapi-sys/build.rs +++ /dev/null @@ -1,93 +0,0 @@ -extern crate cc; -extern crate pkg_config; - -use std::env; -use std::io; -use std::path::PathBuf; -use std::process::Command; - -fn main() { - if env::var("CARGO_FEATURE_BUILD").is_err() { - return; - } - - fetch().expect("failed to checkout hidapi sources, internet connection and git are needed"); - build().expect("failed to build hidapi sources"); - - println!("cargo:rustc-link-search=native={}", output().to_string_lossy()); -} - -fn output() -> PathBuf { - PathBuf::from(env::var("OUT_DIR").unwrap()) -} - -fn source() -> PathBuf { - if let Ok(path) = env::var("HIDAPI_PATH") { - path.into() - } - else { - output().join("hidapi") - } -} - -fn fetch() -> io::Result<()> { - if env::var("HIDAPI_PATH").is_ok() { - return Ok(()); - } - - Command::new("git") - .current_dir(&output()) - .arg("clone") - .arg("https://github.com/signal11/hidapi.git") - .arg("hidapi") - .status()?; - - Ok(()) -} - -#[cfg(target_os = "linux")] -fn build() -> io::Result<()> { - let mut build = cc::Build::new(); - - build.file(source().join("libusb/hid.c")); - build.include(source().join("hidapi")); - build.static_flag(true); - - for path in pkg_config::find_library("libusb-1.0").unwrap().include_paths { - build.include(path.to_str().unwrap()); - } - - build.compile("libhidapi-libusb.a"); - - Ok(()) -} - -#[cfg(target_os = "macos")] -fn build() -> io::Result<()> { - let mut build = cc::Build::new(); - - build.file(source().join("libusb/hid.c")); - build.include(source().join("hidapi")); - build.static_flag(true); - - for path in pkg_config::find_library("libusb-1.0").unwrap().include_paths { - build.include(path.to_str().unwrap()); - } - - build.compile("libhidapi.a"); - - Ok(()) -} - -#[cfg(target_os = "windows")] -fn build() -> io::Result<()> { - let mut build = cc::Build::new(); - - build.file(source().join("windows/hid.c")); - build.include(source().join("hidapi")); - build.static_flag(true); - - build.compile("libhidapi.a"); - - Ok(()) -} |