From d0ebb147d16e1f48162a2c2dbcb8e741ac352896 Mon Sep 17 00:00:00 2001 From: hulxv Date: Fri, 22 Nov 2024 16:39:22 +0200 Subject: [PATCH] fix: missing `build.rs` --- .../crates/metacall-bindings/.gitignore | 1 + .../crates/metacall-bindings/build.rs | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 source/ports/rs_port2/crates/metacall-bindings/build.rs diff --git a/source/ports/rs_port2/crates/metacall-bindings/.gitignore b/source/ports/rs_port2/crates/metacall-bindings/.gitignore index ea8c4bf7f..a2e690e56 100644 --- a/source/ports/rs_port2/crates/metacall-bindings/.gitignore +++ b/source/ports/rs_port2/crates/metacall-bindings/.gitignore @@ -1 +1,2 @@ /target +!build.rs \ No newline at end of file diff --git a/source/ports/rs_port2/crates/metacall-bindings/build.rs b/source/ports/rs_port2/crates/metacall-bindings/build.rs new file mode 100644 index 000000000..0915869e7 --- /dev/null +++ b/source/ports/rs_port2/crates/metacall-bindings/build.rs @@ -0,0 +1,29 @@ +use std::env; + +fn main() { + // When running tests from CMake + if let Ok(val) = env::var("PROJECT_OUTPUT_DIR") { + // Link search path to build folder + println!("cargo:rustc-link-search=native={val}"); + + // Link against correct version of metacall + match env::var("CMAKE_BUILD_TYPE") { + Ok(val) => { + if val == "Debug" { + // Try to link the debug version when running tests + println!("cargo:rustc-link-lib=dylib=metacalld"); + } else { + println!("cargo:rustc-link-lib=dylib=metacall"); + } + } + Err(_) => { + println!("cargo:rustc-link-lib=dylib=metacall"); + } + } + } else { + // When building from Cargo + println!("cargo:rustc-link-lib=dylib=metacall") + } +} + +