From 8885afb751fbb7eb00b9cc15b265a106114eddc7 Mon Sep 17 00:00:00 2001 From: Mason Reed Date: Wed, 30 Oct 2024 14:36:54 -0400 Subject: WARP: Make build script less scuffed --- plugins/warp/CMakeLists.txt | 10 +++++----- plugins/warp/Cargo.toml | 4 ---- plugins/warp/build.rs | 28 ++++++++++++++-------------- plugins/warp/src/lib.rs | 2 -- 4 files changed, 19 insertions(+), 25 deletions(-) (limited to 'plugins') 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 = OnceLock::new(); -- cgit v1.3.1