summaryrefslogtreecommitdiff
path: root/plugins/warp/demo
diff options
context:
space:
mode:
authorMason Reed <mason@vector35.com>2025-10-22 02:09:10 -0400
committerMason Reed <mason@vector35.com>2025-10-22 14:51:07 -0400
commit551738c693b52b8c383eab629fbc9d81d04d4c4b (patch)
treec2da8e1ebc3f69715ec8710f89f1c23241d4ac10 /plugins/warp/demo
parent5ae046509bb7c5c0a5c338793ebc3902820ac9e7 (diff)
Add more plugins to free
Adds WARP, DWARF Import and Objective-C plugins to free
Diffstat (limited to 'plugins/warp/demo')
-rw-r--r--plugins/warp/demo/Cargo.toml45
-rw-r--r--plugins/warp/demo/build.rs29
2 files changed, 74 insertions, 0 deletions
diff --git a/plugins/warp/demo/Cargo.toml b/plugins/warp/demo/Cargo.toml
new file mode 100644
index 00000000..8e1070e3
--- /dev/null
+++ b/plugins/warp/demo/Cargo.toml
@@ -0,0 +1,45 @@
+[package]
+name = "warp_ninja-static"
+version = "0.1.0"
+edition = "2021"
+license = "Apache-2.0"
+
+[lib]
+crate-type = ["lib", "staticlib"]
+path = "../src/lib.rs"
+
+[features]
+demo = []
+
+[dependencies]
+binaryninja = { workspace = true, features = ["rayon", "demo"] }
+binaryninjacore-sys.workspace = true
+warp = { git = "https://github.com/Vector35/warp/", tag = "1.0.0" }
+log = "0.4"
+itertools = "0.14.0"
+dashmap = { version = "6.1", features = ["rayon"]}
+rayon = "1.10"
+arboard = "3.4"
+walkdir = "2.5"
+serde = { version = "1.0", features = ["derive"] }
+serde_json = "1.0"
+uuid = { version = "1.12.0", features = ["v4", "serde"] }
+thiserror = "2.0"
+ar = { git = "https://github.com/mdsteele/rust-ar" }
+tempdir = "0.3.7"
+regex = "1.11"
+directories = "6.0"
+compact_str = { version = "0.9.0", features = ["serde"] }
+base64 = "0.22"
+serde_qs = "0.15"
+
+# For reports
+minijinja = "2.10.2"
+minijinja-embed = "2.10.2"
+
+[build-dependencies]
+minijinja-embed = "2.10.2"
+
+[dev-dependencies]
+criterion = "0.6"
+insta = { version = "1.42", features = ["yaml"] }
diff --git a/plugins/warp/demo/build.rs b/plugins/warp/demo/build.rs
new file mode 100644
index 00000000..d0912f90
--- /dev/null
+++ b/plugins/warp/demo/build.rs
@@ -0,0 +1,29 @@
+fn main() {
+ let link_path = std::env::var_os("DEP_BINARYNINJACORE_PATH")
+ .expect("DEP_BINARYNINJACORE_PATH not specified");
+
+ println!("cargo::rustc-link-lib=dylib=binaryninjacore");
+ println!("cargo::rustc-link-search={}", link_path.to_str().unwrap());
+
+ #[cfg(not(target_os = "windows"))]
+ {
+ println!(
+ "cargo::rustc-link-arg=-Wl,-rpath,{0},-L{0}",
+ link_path.to_string_lossy()
+ );
+ }
+
+ #[cfg(target_os = "macos")]
+ {
+ let crate_name = std::env::var("CARGO_PKG_NAME").expect("CARGO_PKG_NAME not set");
+ let lib_name = crate_name.replace('-', "_");
+ println!(
+ "cargo::rustc-link-arg=-Wl,-install_name,@rpath/lib{}.dylib",
+ lib_name
+ );
+ }
+
+ println!("cargo::rerun-if-changed=../src/templates");
+ // Templates used for rendering reports.
+ minijinja_embed::embed_templates!("../src/templates");
+}