diff options
| author | Mason Reed <mason@vector35.com> | 2024-10-30 14:36:54 -0400 |
|---|---|---|
| committer | Mason Reed <mason@vector35.com> | 2024-10-30 15:40:40 -0400 |
| commit | 8885afb751fbb7eb00b9cc15b265a106114eddc7 (patch) | |
| tree | 10adcc5284c366202faeb616d7ddee9ae8c5f088 /plugins | |
| parent | 682848289b03f9ba8b14c5dc684306f670947216 (diff) | |
WARP: Make build script less scuffed
Diffstat (limited to 'plugins')
| -rw-r--r-- | plugins/warp/CMakeLists.txt | 10 | ||||
| -rw-r--r-- | plugins/warp/Cargo.toml | 4 | ||||
| -rw-r--r-- | plugins/warp/build.rs | 28 | ||||
| -rw-r--r-- | plugins/warp/src/lib.rs | 2 |
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(); |
