From 241a1dfabf9aad9dc740f90bed7d5dbd4275e617 Mon Sep 17 00:00:00 2001 From: Eric Seidel Date: Thu, 6 Apr 2023 10:14:49 -0700 Subject: [PATCH] Autogenerate include/updater.h every time we build. (#3) Turns out this was way easier than I thought. https://github.com/shorebirdtech/shorebird/issues/121 Docs: https://github.com/eqrion/cbindgen/blob/master/docs.md#buildrs --- library/Cargo.toml | 4 ++++ library/build.rs | 13 +++++++++++++ cbindgen.toml => library/cbindgen.toml | 0 3 files changed, 17 insertions(+) create mode 100644 library/build.rs rename cbindgen.toml => library/cbindgen.toml (100%) diff --git a/library/Cargo.toml b/library/Cargo.toml index a3d00b2..3a82912 100644 --- a/library/Cargo.toml +++ b/library/Cargo.toml @@ -48,3 +48,7 @@ log-panics = { version = "2", features = ["with-backtrace"]} [dev-dependencies] tempdir = "0.3.7" + +# https://github.com/eqrion/cbindgen/blob/master/docs.md#buildrs +[build-dependencies] +cbindgen = "0.24.0" diff --git a/library/build.rs b/library/build.rs new file mode 100644 index 0000000..f1f5ea6 --- /dev/null +++ b/library/build.rs @@ -0,0 +1,13 @@ +extern crate cbindgen; + +use std::env; + +// See https://github.com/eqrion/cbindgen/blob/master/docs.md#buildrs +fn main() { + let crate_dir = env::var("CARGO_MANIFEST_DIR").unwrap(); + + // Should this write to the out dir (target) instead? + cbindgen::generate(crate_dir) + .expect("Unable to generate bindings") + .write_to_file("include/updater.h"); +} diff --git a/cbindgen.toml b/library/cbindgen.toml similarity index 100% rename from cbindgen.toml rename to library/cbindgen.toml