Use downloaded plist.h

This commit is contained in:
Jackson Coxson
2025-08-12 07:52:44 -06:00
parent c79fb2226a
commit 4c9977157b
5 changed files with 16 additions and 3 deletions

View File

@@ -72,6 +72,7 @@ default = ["full", "aws-lc"]
[build-dependencies]
cbindgen = "0.29.0"
ureq = "3"
[lib]
crate-type = ["staticlib"]

View File

@@ -12,10 +12,20 @@ fn main() {
)
.with_language(cbindgen::Language::C)
.with_sys_include("sys/socket.h")
.with_sys_include("plist/plist.h")
.with_include("plist.h")
.generate()
.expect("Unable to generate bindings")
.write_to_file("idevice.h");
// download plist.h
let h = ureq::get("https://raw.githubusercontent.com/libimobiledevice/libplist/refs/heads/master/include/plist/plist.h")
.call()
.expect("failed to download plist.h");
let h = h
.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");
}

View File

@@ -1,7 +1,7 @@
// Jackson Coxson
#include "idevice.h"
#include "plist/plist.h"
#include "plist.h"
#include <arpa/inet.h>
#include <stdint.h>
#include <stdio.h>
@@ -122,7 +122,7 @@ int main() {
// Get all values
plist_t all_values = NULL;
err = lockdownd_get_all_values(client, NULL, &all_values);
err = lockdownd_get_value(client, NULL, NULL, &all_values);
if (err != NULL) {
fprintf(stderr, "Failed to get all values: [%d] %s", err->code,
err->message);