Generate target dependent bindings for Rust
* Bindings for external/sqlite are generated
with the header file and clang flags used there.
* Saved binding files are called bindings.rs and they are
compared with build time generated bindgen.rs files
to check for any new changes in sqlite or bindgen.
* bindings.rs is a better file name used here.
libsqlite3-sys has been using bindgen.rs for its
include file. To minimize changes to libsqlite3-sys,
we named the genrule output files bindgen.rs.
* A temporary hack in genrule calls sed to change
u32 type to i32 to match current expectation.
The sed output is compared (diff -U3) with manually verified
and saved bindings.rs before use.
Any error in sed or diff will stop a make.
After manual verification, the diff -U3 output can be
applied to saved bindings.rs.
Test: make with both aosp_x86_64-eng and aosp_arm64-eng
Test: make with new rusqlite and dependent packages
Test: atest -c --include-subdirs external/rust/crates/libsqlite3-sys
Change-Id: I14838c2c08f3f966e22d3846aad980c232a2f43e
diff --git a/android/bindgen.h b/android/bindgen.h
new file mode 100644
index 0000000..b5e2c60
--- /dev/null
+++ b/android/bindgen.h
@@ -0,0 +1 @@
+#include "sqlite3.h"