libftd3xx_ffi/
lib.rs

1//! Rust FFI bindings to the [FTDI d3xx drivers](https://ftdichip.com/drivers/d3xx-drivers/).
2//!
3//! See the [Programming Guide](https://ftdichip.com/document/programming-guides/) for more
4//! documentation.
5//!
6//! [Github Repository](https://github.com/ftdi-rs/libftd3xx-ffi/)
7#![allow(non_upper_case_globals)]
8#![allow(non_camel_case_types)]
9#![allow(non_snake_case)]
10#![allow(clippy::too_many_arguments)]
11#![allow(clippy::upper_case_acronyms)]
12#![allow(clippy::useless_transmute)]
13
14pub mod prelude;
15
16cfg_if::cfg_if! {
17    if #[cfg(feature = "bindgen")] {
18        include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
19    } else if #[cfg(all(target_os = "linux", target_arch = "x86_64"))] {
20        include!("bindings_linux_x64.rs");
21    } else if #[cfg(all(target_os = "linux", target_arch = "x86"))] {
22        include!("bindings_linux_x86.rs");
23    } else if #[cfg(all(target_os = "windows", target_arch = "x86_64"))] {
24        include!("bindings_windows_x64.rs");
25    } else if #[cfg(all(target_os = "windows", target_arch = "x86"))] {
26        include!("bindings_windows_x86.rs");
27    } else if #[cfg(all(target_os = "linux", target_arch = "arm"))] {
28        include!("bindings_linux_armv6.rs");
29    } else if #[cfg(all(target_os = "linux", target_arch = "aarch64"))] {
30        include!("bindings_linux_armv8.rs");
31    } else if #[cfg(all(target_os = "macos", target_arch = "x86_64"))] {
32        include!("bindings_macos_x64.rs");
33    } else if #[cfg(all(target_os = "macos", target_arch = "aarch64"))] {
34        include!("bindings_macos_aarch64.rs");
35    } else {
36        std::compile_error!("pre-generated bindings are not avaliable for your target");
37    }
38}