diff options
| -rw-r--r-- | Cargo.toml | 3 | ||||
| -rw-r--r-- | build.rs | 23 | ||||
| -rw-r--r-- | src/lib.rs | 2 | 
3 files changed, 27 insertions, 1 deletions
@@ -10,3 +10,6 @@ license = "LGPL-3.0"  links = "nitrokey"  build = "build.rs"  readme = "README.md" + +[build-dependencies] +cc = "1.0" @@ -1,3 +1,24 @@ +extern crate cc; + +use std::path::Path; +  fn main() { -    println!("cargo:rustc-link-lib=nitrokey"); +    let sources = [ +        "DeviceCommunicationExceptions.cpp", +        "NK_C_API.cc", +        "NitrokeyManager.cc", +        "command_id.cc", +        "device.cc", +        "log.cc", +        "misc.cc", +    ]; +    let library_dir = Path::new("libnitrokey-3.3"); + +    cc::Build::new() +        .cpp(true) +        .include(library_dir.join("libnitrokey")) +        .files(sources.iter().map(|s| library_dir.join(s))) +        .compile("libnitrokey.a"); + +    println!("cargo:rustc-link-lib=hidapi-libusb");  } @@ -14,6 +14,8 @@ mod tests {      #[test]      fn login_auto() {          unsafe { +            // logout required due to https://github.com/Nitrokey/libnitrokey/pull/115 +            NK_logout();              assert_eq!(0, NK_login_auto());          }      }  | 
