libiio_sys/
lib.rs

1// libiio-sys/src/lib.rs
2//
3//! Wrapper for the Linux Industrial I/O user-space library, _libiio_.
4//!
5//! Build Features can be used to select bindings for one of several versions
6//! that might be installed in the system.
7//!
8//! #### Default Features
9//!
10//! * **libiio_v0_24** Bindings for libiio v0.24
11//!
12//! #### Optional Feature
13//!
14//! Select only one feature to specify a version for libiio:
15//!
16//! * **libiio_v0_24** Bindings for libiio v0.24
17//! * **libiio_v0_23** Bindings for libiio v0.23
18//! * **libiio_v0_21** Bindings for libiio v0.21
19//! * **libiio_v0_19** Bindings for libiio v0.19
20//!
21
22#![allow(non_upper_case_globals)]
23#![allow(non_camel_case_types)]
24#![allow(non_snake_case)]
25#![allow(rustdoc::broken_intra_doc_links)]
26// Temporary
27#![allow(dead_code)]
28// Bindgen uses u128 on some rare parameters
29#![allow(improper_ctypes)]
30
31// ----- Use bindings for libiio v0.25 -----
32
33#[cfg(all(unix, feature = "libiio_v0_25", target_pointer_width = "64"))]
34include!(concat!(
35    env!("CARGO_MANIFEST_DIR"),
36    "/bindings/bindings-0.25_64.rs"
37));
38
39#[cfg(all(unix, feature = "libiio_v0_25", target_pointer_width = "32"))]
40include!(concat!(
41    env!("CARGO_MANIFEST_DIR"),
42    "/bindings/bindings-0.25_32.rs"
43));
44
45// ----- Use bindings for libiio v0.24 -----
46
47#[cfg(all(unix, feature = "libiio_v0_24", target_pointer_width = "64"))]
48include!(concat!(
49    env!("CARGO_MANIFEST_DIR"),
50    "/bindings/bindings-0.24_64.rs"
51));
52
53#[cfg(all(unix, feature = "libiio_v0_24", target_pointer_width = "32"))]
54include!(concat!(
55    env!("CARGO_MANIFEST_DIR"),
56    "/bindings/bindings-0.24_32.rs"
57));
58
59// ----- Use bindings for libiio v0.23 -----
60
61#[cfg(all(unix, feature = "libiio_v0_23", target_pointer_width = "64"))]
62include!(concat!(
63    env!("CARGO_MANIFEST_DIR"),
64    "/bindings/bindings-0.23_64.rs"
65));
66
67#[cfg(all(unix, feature = "libiio_v0_23", target_pointer_width = "32"))]
68include!(concat!(
69    env!("CARGO_MANIFEST_DIR"),
70    "/bindings/bindings-0.23_32.rs"
71));
72
73// ----- Use bindings for libiio v0.21 -----
74
75#[cfg(all(unix, feature = "libiio_v0_21", target_pointer_width = "64"))]
76include!(concat!(
77    env!("CARGO_MANIFEST_DIR"),
78    "/bindings/bindings-0.21_64.rs"
79));
80
81#[cfg(all(unix, feature = "libiio_v0_21", target_pointer_width = "32"))]
82include!(concat!(
83    env!("CARGO_MANIFEST_DIR"),
84    "/bindings/bindings-0.21_32.rs"
85));
86
87// ----- Use bindings for libiio v0.19 -----
88
89#[cfg(all(unix, feature = "libiio_v0_19", target_pointer_width = "64"))]
90include!(concat!(
91    env!("CARGO_MANIFEST_DIR"),
92    "/bindings/bindings-0.19_64.rs"
93));
94
95#[cfg(all(unix, feature = "libiio_v0_19", target_pointer_width = "32"))]
96include!(concat!(
97    env!("CARGO_MANIFEST_DIR"),
98    "/bindings/bindings-0.19_32.rs"
99));