diff --git a/tests/expectations/both/expand_dep.c b/tests/expectations/both/expand_dep.c new file mode 100644 index 0000000..4012289 --- /dev/null +++ b/tests/expectations/both/expand_dep.c @@ -0,0 +1,11 @@ +#include +#include +#include +#include + +typedef struct dep_struct { + uint32_t x; + double y; +} dep_struct; + +uint32_t get_x(const dep_struct *dep_struct); diff --git a/tests/expectations/both/expand_dep.compat.c b/tests/expectations/both/expand_dep.compat.c new file mode 100644 index 0000000..056089e --- /dev/null +++ b/tests/expectations/both/expand_dep.compat.c @@ -0,0 +1,19 @@ +#include +#include +#include +#include + +typedef struct dep_struct { + uint32_t x; + double y; +} dep_struct; + +#ifdef __cplusplus +extern "C" { +#endif // __cplusplus + +uint32_t get_x(const dep_struct *dep_struct); + +#ifdef __cplusplus +} // extern "C" +#endif // __cplusplus diff --git a/tests/expectations/expand_dep.c b/tests/expectations/expand_dep.c new file mode 100644 index 0000000..3d2cf8e --- /dev/null +++ b/tests/expectations/expand_dep.c @@ -0,0 +1,11 @@ +#include +#include +#include +#include + +typedef struct { + uint32_t x; + double y; +} dep_struct; + +uint32_t get_x(const dep_struct *dep_struct); diff --git a/tests/expectations/expand_dep.compat.c b/tests/expectations/expand_dep.compat.c new file mode 100644 index 0000000..4dc7fb3 --- /dev/null +++ b/tests/expectations/expand_dep.compat.c @@ -0,0 +1,19 @@ +#include +#include +#include +#include + +typedef struct { + uint32_t x; + double y; +} dep_struct; + +#ifdef __cplusplus +extern "C" { +#endif // __cplusplus + +uint32_t get_x(const dep_struct *dep_struct); + +#ifdef __cplusplus +} // extern "C" +#endif // __cplusplus diff --git a/tests/expectations/expand_dep.cpp b/tests/expectations/expand_dep.cpp new file mode 100644 index 0000000..f03f098 --- /dev/null +++ b/tests/expectations/expand_dep.cpp @@ -0,0 +1,15 @@ +#include +#include +#include +#include + +struct dep_struct { + uint32_t x; + double y; +}; + +extern "C" { + +uint32_t get_x(const dep_struct *dep_struct); + +} // extern "C" diff --git a/tests/expectations/tag/expand_dep.c b/tests/expectations/tag/expand_dep.c new file mode 100644 index 0000000..45fcba6 --- /dev/null +++ b/tests/expectations/tag/expand_dep.c @@ -0,0 +1,11 @@ +#include +#include +#include +#include + +struct dep_struct { + uint32_t x; + double y; +}; + +uint32_t get_x(const struct dep_struct *dep_struct); diff --git a/tests/expectations/tag/expand_dep.compat.c b/tests/expectations/tag/expand_dep.compat.c new file mode 100644 index 0000000..344af64 --- /dev/null +++ b/tests/expectations/tag/expand_dep.compat.c @@ -0,0 +1,19 @@ +#include +#include +#include +#include + +struct dep_struct { + uint32_t x; + double y; +}; + +#ifdef __cplusplus +extern "C" { +#endif // __cplusplus + +uint32_t get_x(const struct dep_struct *dep_struct); + +#ifdef __cplusplus +} // extern "C" +#endif // __cplusplus diff --git a/tests/rust/expand_dep/Cargo.lock b/tests/rust/expand_dep/Cargo.lock new file mode 100644 index 0000000..0de81e9 --- /dev/null +++ b/tests/rust/expand_dep/Cargo.lock @@ -0,0 +1,13 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +[[package]] +name = "dep" +version = "0.1.0" + +[[package]] +name = "expand-dep" +version = "0.1.0" +dependencies = [ + "dep 0.1.0", +] + diff --git a/tests/rust/expand_dep/Cargo.toml b/tests/rust/expand_dep/Cargo.toml new file mode 100644 index 0000000..40e3e8b --- /dev/null +++ b/tests/rust/expand_dep/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "expand-dep" +version = "0.1.0" +authors = ["cbindgen"] +edition = "2018" + +[dependencies] +dep = { path = "dep" } diff --git a/tests/rust/expand_dep/cbindgen.toml b/tests/rust/expand_dep/cbindgen.toml new file mode 100644 index 0000000..b6e180a --- /dev/null +++ b/tests/rust/expand_dep/cbindgen.toml @@ -0,0 +1,6 @@ +[parse] +parse_deps = true +include = ["dep"] + +[parse.expand] +crates = ["expand-dep"] diff --git a/tests/rust/expand_dep/dep/Cargo.toml b/tests/rust/expand_dep/dep/Cargo.toml new file mode 100644 index 0000000..1cc8d62 --- /dev/null +++ b/tests/rust/expand_dep/dep/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "dep" +version = "0.1.0" +authors = ["cbindgen"] +edition = "2018" + +[dependencies] diff --git a/tests/rust/expand_dep/dep/src/lib.rs b/tests/rust/expand_dep/dep/src/lib.rs new file mode 100644 index 0000000..7253c57 --- /dev/null +++ b/tests/rust/expand_dep/dep/src/lib.rs @@ -0,0 +1,5 @@ +#[repr(C)] +pub struct dep_struct { + pub x: u32, + pub y: f64, +} diff --git a/tests/rust/expand_dep/src/lib.rs b/tests/rust/expand_dep/src/lib.rs new file mode 100644 index 0000000..639678d --- /dev/null +++ b/tests/rust/expand_dep/src/lib.rs @@ -0,0 +1,6 @@ +use dep::dep_struct; + +#[no_mangle] +pub unsafe extern "C" fn get_x(dep_struct: *const dep_struct) -> u32 { + dep_struct.read().x +}