summaryrefslogtreecommitdiff
path: root/codec2-sys
diff options
context:
space:
mode:
Diffstat (limited to 'codec2-sys')
-rw-r--r--codec2-sys/Cargo.toml11
-rw-r--r--codec2-sys/build.rs20
-rw-r--r--codec2-sys/src/lib.rs13
-rw-r--r--codec2-sys/src/wrapper.h1
4 files changed, 45 insertions, 0 deletions
diff --git a/codec2-sys/Cargo.toml b/codec2-sys/Cargo.toml
new file mode 100644
index 0000000..7950644
--- /dev/null
+++ b/codec2-sys/Cargo.toml
@@ -0,0 +1,11 @@
+[package]
+name = "codec2-sys"
+description = "System bindings for codec2"
+version = "1.0.0"
+edition = "2021"
+repository = "https://github.com/yuvadm/codec2.rs"
+license = "LGPL-2.1"
+readme = "README.md"
+
+[build-dependencies]
+bindgen = "0.60.1"
diff --git a/codec2-sys/build.rs b/codec2-sys/build.rs
new file mode 100644
index 0000000..9fbac37
--- /dev/null
+++ b/codec2-sys/build.rs
@@ -0,0 +1,20 @@
+extern crate bindgen;
+
+use std::env;
+use std::path::PathBuf;
+
+fn main() {
+ println!("cargo:rustc-link-search=/usr/lib");
+ println!("cargo:rustc-link-lib=codec2");
+ println!("cargo:rerun-if-changed=src/wrapper.h");
+ let bindings = bindgen::Builder::default()
+ .header("src/wrapper.h")
+ .parse_callbacks(Box::new(bindgen::CargoCallbacks))
+ .generate()
+ .expect("Unable to generate bindings");
+
+ let out_path = PathBuf::from(env::var("OUT_DIR").unwrap());
+ bindings
+ .write_to_file(out_path.join("bindings.rs"))
+ .expect("Couldn't write bindings!");
+}
diff --git a/codec2-sys/src/lib.rs b/codec2-sys/src/lib.rs
new file mode 100644
index 0000000..1a1db18
--- /dev/null
+++ b/codec2-sys/src/lib.rs
@@ -0,0 +1,13 @@
+include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn it_works() {
+ let _c : CODEC2;
+ let result = 2 + 2;
+ assert_eq!(result, 4);
+ }
+}
diff --git a/codec2-sys/src/wrapper.h b/codec2-sys/src/wrapper.h
new file mode 100644
index 0000000..ae333d5
--- /dev/null
+++ b/codec2-sys/src/wrapper.h
@@ -0,0 +1 @@
+#include <codec2/codec2.h>