summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorMason Reed <mason@vector35.com>2024-10-30 14:36:54 -0400
committerMason Reed <mason@vector35.com>2024-10-30 15:40:40 -0400
commit8885afb751fbb7eb00b9cc15b265a106114eddc7 (patch)
tree10adcc5284c366202faeb616d7ddee9ae8c5f088 /plugins
parent682848289b03f9ba8b14c5dc684306f670947216 (diff)
WARP: Make build script less scuffed
Diffstat (limited to 'plugins')
-rw-r--r--plugins/warp/CMakeLists.txt10
-rw-r--r--plugins/warp/Cargo.toml4
-rw-r--r--plugins/warp/build.rs28
-rw-r--r--plugins/warp/src/lib.rs2
4 files changed, 19 insertions, 25 deletions
diff --git a/plugins/warp/CMakeLists.txt b/plugins/warp/CMakeLists.txt
index 9a144270..5bc00fd3 100644
--- a/plugins/warp/CMakeLists.txt
+++ b/plugins/warp/CMakeLists.txt
@@ -74,10 +74,10 @@ if(APPLE)
OUTPUT ${OUTPUT_FILE_PATH}
COMMAND ${CMAKE_COMMAND} -E env
MACOSX_DEPLOYMENT_TARGET=10.14 BINARYNINJADIR=${BINJA_LIB_DIR}
- ${RUSTUP_COMMAND} clean --target=aarch64-apple-darwin ${CARGO_OPTS}
+ ${RUSTUP_COMMAND} clean --target=aarch64-apple-darwin ${CARGO_OPTS} --package binaryninjacore-sys
COMMAND ${CMAKE_COMMAND} -E env
MACOSX_DEPLOYMENT_TARGET=10.14 BINARYNINJADIR=${BINJA_LIB_DIR}
- ${RUSTUP_COMMAND} clean --target=x86_64-apple-darwin ${CARGO_OPTS}
+ ${RUSTUP_COMMAND} clean --target=x86_64-apple-darwin ${CARGO_OPTS} --package binaryninjacore-sys
COMMAND ${CMAKE_COMMAND} -E env
MACOSX_DEPLOYMENT_TARGET=10.14 BINARYNINJADIR=${BINJA_LIB_DIR}
${RUSTUP_COMMAND} build --target=aarch64-apple-darwin ${CARGO_OPTS} ${CARGO_FEATURES}
@@ -99,7 +99,7 @@ if(APPLE)
OUTPUT ${OUTPUT_FILE_PATH}
COMMAND ${CMAKE_COMMAND} -E env
MACOSX_DEPLOYMENT_TARGET=10.14 BINARYNINJADIR=${BINJA_LIB_DIR}
- ${RUSTUP_COMMAND} clean ${CARGO_OPTS}
+ ${RUSTUP_COMMAND} clean ${CARGO_OPTS} --package binaryninjacore-sys
COMMAND ${CMAKE_COMMAND} -E env
MACOSX_DEPLOYMENT_TARGET=10.14 BINARYNINJADIR=${BINJA_LIB_DIR}
${RUSTUP_COMMAND} build ${CARGO_OPTS} ${CARGO_FEATURES}
@@ -111,7 +111,7 @@ if(APPLE)
elseif(WIN32)
add_custom_command(
OUTPUT ${OUTPUT_FILE_PATH}
- COMMAND ${CMAKE_COMMAND} -E env BINARYNINJADIR=${BINJA_LIB_DIR} ${RUSTUP_COMMAND} clean ${CARGO_OPTS}
+ COMMAND ${CMAKE_COMMAND} -E env BINARYNINJADIR=${BINJA_LIB_DIR} ${RUSTUP_COMMAND} clean ${CARGO_OPTS} --package binaryninjacore-sys
COMMAND ${CMAKE_COMMAND} -E env BINARYNINJADIR=${BINJA_LIB_DIR} ${RUSTUP_COMMAND} build ${CARGO_OPTS} ${CARGO_FEATURES}
COMMAND ${CMAKE_COMMAND} -E copy ${TARGET_DIR}/${OUTPUT_FILE_NAME} ${OUTPUT_FILE_PATH}
COMMAND ${CMAKE_COMMAND} -E copy ${TARGET_DIR}/${OUTPUT_PDB_NAME} ${OUTPUT_PDB_PATH}
@@ -121,7 +121,7 @@ elseif(WIN32)
else()
add_custom_command(
OUTPUT ${OUTPUT_FILE_PATH}
- COMMAND ${CMAKE_COMMAND} -E env BINARYNINJADIR=${BINJA_LIB_DIR} ${RUSTUP_COMMAND} clean ${CARGO_OPTS}
+ COMMAND ${CMAKE_COMMAND} -E env BINARYNINJADIR=${BINJA_LIB_DIR} ${RUSTUP_COMMAND} clean ${CARGO_OPTS} --package binaryninjacore-sys
COMMAND ${CMAKE_COMMAND} -E env BINARYNINJADIR=${BINJA_LIB_DIR} ${RUSTUP_COMMAND} build ${CARGO_OPTS} ${CARGO_FEATURES}
COMMAND ${CMAKE_COMMAND} -E copy ${TARGET_DIR}/${OUTPUT_FILE_NAME} ${OUTPUT_FILE_PATH}
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
diff --git a/plugins/warp/Cargo.toml b/plugins/warp/Cargo.toml
index cf13e34d..5527eca3 100644
--- a/plugins/warp/Cargo.toml
+++ b/plugins/warp/Cargo.toml
@@ -23,10 +23,6 @@ ar = { git = "https://github.com/mdsteele/rust-ar" }
tempdir = "0.3.7"
serde_json = "1.0.132"
-[features]
-default = ["build_artifacts"]
-build_artifacts = []
-
[build-dependencies]
cc = "1.1.28"
diff --git a/plugins/warp/build.rs b/plugins/warp/build.rs
index ac4a413e..907abff5 100644
--- a/plugins/warp/build.rs
+++ b/plugins/warp/build.rs
@@ -1,6 +1,8 @@
+#![allow(unused_imports)]
use std::path::PathBuf;
use std::process::Command;
+#[cfg(test)]
fn compile_rust(file: PathBuf) -> bool {
let out_dir = std::env::var_os("OUT_DIR").unwrap();
let rustc = std::env::var_os("RUSTC").unwrap();
@@ -16,23 +18,21 @@ fn compile_rust(file: PathBuf) -> bool {
}
fn main() {
- let link_path = std::env::var_os("BINARYNINJADIR").expect("BINARYNINJADIR specified");
- let out_dir = std::env::var_os("OUT_DIR").expect("OUT_DIR specified");
- let out_dir_path = PathBuf::from(out_dir);
+ if let Some(link_path) = option_env!("BINARYNINJADIR") {
+ println!("cargo::rustc-link-lib=dylib=binaryninjacore");
+ println!("cargo::rustc-link-search={}", link_path);
- 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(not(target_os = "windows"))]
+ {
+ println!("cargo::rustc-link-arg=-Wl,-rpath,{0},-L{0}", link_path);
+ }
}
- #[cfg(feature = "build_artifacts")]
+ #[cfg(test)]
{
+ let out_dir = std::env::var("OUT_DIR").expect("OUT_DIR specified");
+ let out_dir_path = PathBuf::from(out_dir);
+
// Copy all binaries to OUT_DIR for unit tests.
let bin_dir: PathBuf = "fixtures/bin".into();
if let Ok(entries) = std::fs::read_dir(bin_dir) {
@@ -65,6 +65,6 @@ fn main() {
_ => {}
}
}
- }
+ }
}
}
diff --git a/plugins/warp/src/lib.rs b/plugins/warp/src/lib.rs
index 866f7e31..2ebacefd 100644
--- a/plugins/warp/src/lib.rs
+++ b/plugins/warp/src/lib.rs
@@ -137,12 +137,10 @@ pub fn basic_block_guid<A: Architecture, M: FunctionMutability, V: NonSSAVariant
#[cfg(test)]
mod tests {
use crate::cache::cached_function_guid;
- use crate::convert::from_bn_type;
use binaryninja::binaryview::BinaryViewExt;
use binaryninja::headless::Session;
use std::path::PathBuf;
use std::sync::OnceLock;
- use warp::r#type::guid::TypeGUID;
static INIT: OnceLock<Session> = OnceLock::new();