From 0e4f12f0bf766905865e8f420c23376e6e4b21ae Mon Sep 17 00:00:00 2001 From: Jackson Coxson Date: Tue, 12 Aug 2025 08:05:02 -0600 Subject: [PATCH] Append plist.h to idevice header --- ffi/build.rs | 10 +++++----- ffi/src/lib.rs | 4 ++++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/ffi/build.rs b/ffi/build.rs index bbf09be..e92a349 100644 --- a/ffi/build.rs +++ b/ffi/build.rs @@ -1,6 +1,6 @@ // Jackson Coxson -use std::env; +use std::{env, fs::OpenOptions, io::Write}; fn main() { let crate_dir = env::var("CARGO_MANIFEST_DIR").unwrap(); @@ -12,7 +12,6 @@ fn main() { ) .with_language(cbindgen::Language::C) .with_sys_include("sys/socket.h") - .with_include("plist.h") .generate() .expect("Unable to generate bindings") .write_to_file("idevice.h"); @@ -25,7 +24,8 @@ fn main() { .into_body() .read_to_string() .expect("failed to get string content"); - std::fs::write("plist.h", h).expect("failed to save to string"); - - println!("cargo:rustc-link-arg=-lplist-2.0"); + let mut f = OpenOptions::new().append(true).open("idevice.h").unwrap(); + f.write_all(b"\n\n\n").unwrap(); + f.write_all(&h.into_bytes()) + .expect("failed to append plist.h"); } diff --git a/ffi/src/lib.rs b/ffi/src/lib.rs index 04ed09f..65c32ab 100644 --- a/ffi/src/lib.rs +++ b/ffi/src/lib.rs @@ -73,6 +73,10 @@ pub struct ReadWriteOpaque { pub struct IdeviceHandle(pub Idevice); pub struct IdeviceSocketHandle(IdeviceSocket); +/// Stub to avoid header problems +#[allow(non_camel_case_types)] +pub type plist_t = *mut std::ffi::c_void; + // https://github.com/mozilla/cbindgen/issues/539 #[allow(non_camel_case_types, unused)] struct sockaddr;