summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorMason Reed <mason@vector35.com>2024-10-25 10:30:01 -0400
committerMason Reed <mason@vector35.com>2024-10-25 10:30:05 -0400
commitf97c60b5f77c4b9b668ff0b5fd292b41521c72fd (patch)
tree73925f97b61356033e97f5100fb42173f3eb1dbe /plugins
parent5229159a85c720743c9f792be2a40edb225ca957 (diff)
Prevent building test artifacts on cmake builds
For some reason the linker is looking in the target directory of external rust plugins?
Diffstat (limited to 'plugins')
-rw-r--r--plugins/warp/CMakeLists.txt4
-rw-r--r--plugins/warp/Cargo.toml4
-rw-r--r--plugins/warp/build.rs57
3 files changed, 37 insertions, 28 deletions
diff --git a/plugins/warp/CMakeLists.txt b/plugins/warp/CMakeLists.txt
index acfbf41e..9a144270 100644
--- a/plugins/warp/CMakeLists.txt
+++ b/plugins/warp/CMakeLists.txt
@@ -33,7 +33,9 @@ if(FORCE_COLORED_OUTPUT)
set(CARGO_OPTS ${CARGO_OPTS} --color always)
endif()
-set(CARGO_FEATURES "")
+# NOTE: --no-default-features is set to disable building artifacts used for testing
+# NOTE: the linker is looking in the target dir and linking on it apparently.
+set(CARGO_FEATURES "--no-default-features")
set(OUTPUT_FILE_NAME ${CMAKE_SHARED_LIBRARY_PREFIX}${PROJECT_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
set(OUTPUT_PDB_NAME ${CMAKE_SHARED_LIBRARY_PREFIX}${PROJECT_NAME}.pdb)
set(OUTPUT_FILE_PATH ${BN_CORE_PLUGIN_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}${PROJECT_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
diff --git a/plugins/warp/Cargo.toml b/plugins/warp/Cargo.toml
index 5527eca3..cf13e34d 100644
--- a/plugins/warp/Cargo.toml
+++ b/plugins/warp/Cargo.toml
@@ -23,6 +23,10 @@ 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 fe4d31f8..ac4a413e 100644
--- a/plugins/warp/build.rs
+++ b/plugins/warp/build.rs
@@ -31,37 +31,40 @@ fn main() {
);
}
- // 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) {
- for entry in entries {
- let entry = entry.unwrap();
- let path = entry.path();
- if path.is_file() {
- let file_name = path.file_name().unwrap();
- let dest_path = out_dir_path.join(file_name);
- std::fs::copy(&path, &dest_path).expect("failed to copy binary to OUT_DIR");
+ #[cfg(feature = "build_artifacts")]
+ {
+ // 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) {
+ for entry in entries {
+ let entry = entry.unwrap();
+ let path = entry.path();
+ if path.is_file() {
+ let file_name = path.file_name().unwrap();
+ let dest_path = out_dir_path.join(file_name);
+ std::fs::copy(&path, &dest_path).expect("failed to copy binary to OUT_DIR");
+ }
}
}
- }
- // Compile all .c files in fixtures/src directory for unit tests.
- let src_dir: PathBuf = "fixtures/src".into();
- if let Ok(entries) = std::fs::read_dir(src_dir) {
- for entry in entries {
- let entry = entry.unwrap();
- let path = entry.path();
- match path.extension().map(|s| s.to_str().unwrap()) {
- Some("c") => {
- cc::Build::new()
- .file(&path)
- .compile(path.file_stem().unwrap().to_str().unwrap());
+ // Compile all .c files in fixtures/src directory for unit tests.
+ let src_dir: PathBuf = "fixtures/src".into();
+ if let Ok(entries) = std::fs::read_dir(src_dir) {
+ for entry in entries {
+ let entry = entry.unwrap();
+ let path = entry.path();
+ match path.extension().map(|s| s.to_str().unwrap()) {
+ Some("c") => {
+ cc::Build::new()
+ .file(&path)
+ .compile(path.file_stem().unwrap().to_str().unwrap());
+ }
+ Some("rs") => {
+ compile_rust(path);
+ }
+ _ => {}
}
- Some("rs") => {
- compile_rust(path);
- }
- _ => {}
}
- }
+ }
}
}