From cfad779e0341b930acdd13dffc75afbdb41d4e8f Mon Sep 17 00:00:00 2001 From: Bradlee Speice Date: Thu, 19 Sep 2019 22:24:35 -0400 Subject: [PATCH] Start on an aeron-rs crate --- .gitmodules | 4 ++-- Cargo.toml | 16 +++++----------- aeron | 1 - aeron_driver-sys/.gitignore | 1 + aeron_driver-sys/Cargo.toml | 16 ++++++++++++++++ bindings.h => aeron_driver-sys/bindings.h | 0 build.rs => aeron_driver-sys/build.rs | 1 - aeron_driver-sys/src/lib.rs | 19 +++++++++++++++++++ src/lib.rs | 23 ++++++----------------- 9 files changed, 49 insertions(+), 32 deletions(-) delete mode 160000 aeron create mode 100644 aeron_driver-sys/.gitignore create mode 100644 aeron_driver-sys/Cargo.toml rename bindings.h => aeron_driver-sys/bindings.h (100%) rename build.rs => aeron_driver-sys/build.rs (97%) create mode 100644 aeron_driver-sys/src/lib.rs diff --git a/.gitmodules b/.gitmodules index a115462..ec150a4 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ -[submodule "aeron"] - path = aeron +[submodule "aeron_driver-sys/aeron"] + path = aeron_driver-sys/aeron url = https://github.com/real-logic/aeron diff --git a/Cargo.toml b/Cargo.toml index e2841e4..b58cdf3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,16 +1,10 @@ [package] -name = "libaeron_driver-sys" -version = "0.1.0+1.21.2" +name = "aeron-rs" +version = "0.1.0" authors = ["Bradlee Speice "] edition = "2018" -links = "aeron_driver" -build = "build.rs" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] - -[build-dependencies] -bindgen = "0.51" -cmake = "0.1" - -[features] -static = [] +aeron_driver-sys = { path = "./aeron_driver-sys" } \ No newline at end of file diff --git a/aeron b/aeron deleted file mode 160000 index f3417fd..0000000 --- a/aeron +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f3417fd5fb4002d7e3c9c8110f42c6542dee5945 diff --git a/aeron_driver-sys/.gitignore b/aeron_driver-sys/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/aeron_driver-sys/.gitignore @@ -0,0 +1 @@ +/target diff --git a/aeron_driver-sys/Cargo.toml b/aeron_driver-sys/Cargo.toml new file mode 100644 index 0000000..685e871 --- /dev/null +++ b/aeron_driver-sys/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = "aeron_driver-sys" +version = "0.1.0+1.21.2" +authors = ["Bradlee Speice "] +edition = "2018" +links = "aeron_driver" +build = "build.rs" + +[dependencies] + +[build-dependencies] +bindgen = "0.51" +cmake = "0.1" + +[features] +static = [] diff --git a/bindings.h b/aeron_driver-sys/bindings.h similarity index 100% rename from bindings.h rename to aeron_driver-sys/bindings.h diff --git a/build.rs b/aeron_driver-sys/build.rs similarity index 97% rename from build.rs rename to aeron_driver-sys/build.rs index 8f3a5ae..378adfb 100644 --- a/build.rs +++ b/aeron_driver-sys/build.rs @@ -52,7 +52,6 @@ pub fn main() { let bindings = bindgen::Builder::default() .clang_arg(&format!("-I{}", header_path.display())) .header("bindings.h") - .whitelist_function("aeron_version_.*") .generate() .expect("Unable to generate aeron_driver bindings"); diff --git a/aeron_driver-sys/src/lib.rs b/aeron_driver-sys/src/lib.rs new file mode 100644 index 0000000..ebb1484 --- /dev/null +++ b/aeron_driver-sys/src/lib.rs @@ -0,0 +1,19 @@ +#![allow(non_upper_case_globals)] +#![allow(non_camel_case_types)] +#![allow(non_snake_case)] + +include!(concat!(env!("OUT_DIR"), "/bindings.rs")); + +#[cfg(test)] +mod tests { + + #[test] + fn version_check() { + let major = unsafe { crate::aeron_version_major() }; + let minor = unsafe { crate::aeron_version_minor() }; + let patch = unsafe { crate::aeron_version_patch() }; + assert_eq!(major, 1); + assert_eq!(minor, 21); + assert_eq!(patch, 2); + } +} diff --git a/src/lib.rs b/src/lib.rs index ebb1484..3fa1fe1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,19 +1,8 @@ -#![allow(non_upper_case_globals)] -#![allow(non_camel_case_types)] -#![allow(non_snake_case)] -include!(concat!(env!("OUT_DIR"), "/bindings.rs")); - -#[cfg(test)] -mod tests { - - #[test] - fn version_check() { - let major = unsafe { crate::aeron_version_major() }; - let minor = unsafe { crate::aeron_version_minor() }; - let patch = unsafe { crate::aeron_version_patch() }; - assert_eq!(major, 1); - assert_eq!(minor, 21); - assert_eq!(patch, 2); - } +pub fn aeron_version() -> (u32, u32, u32) { + unsafe {( + aeron_driver_sys::aeron_version_major() as u32, + aeron_driver_sys::aeron_version_minor() as u32, + aeron_driver_sys::aeron_version_patch() as u32, + )} }