diff --git a/solvers/minion/build.rs b/solvers/minion/build.rs index 51a150775..8674b5c74 100755 --- a/solvers/minion/build.rs +++ b/solvers/minion/build.rs @@ -10,10 +10,25 @@ use std::process::Command; fn main() { println!("cargo:rustc-rerun-if-changed=vendor"); println!("cargo:rerun-if-changed=build.rs"); + + // must be ./ to be recognised as relative path + // from project root + println!("cargo:rustc-link-search=all=./solvers/minion/vendor/build/"); + println!("cargo:rustc-link-lib=static=minion"); + + // also need to (dynamically) link to c++ stdlib + // https://flames-of-code.netlify.app/blog/rust-and-cmake-cplusplus/ + let target = env::var("TARGET").unwrap(); + if target.contains("apple") { + println!("cargo:rustc-link-lib=dylib=c++"); + } else if target.contains("linux") { + println!("cargo:rustc-link-lib=dylib=stdc++"); + } else { + unimplemented!(); + } + build(); bind(); - println!("cargo:rustc-link-lib=libminion"); - println!("cargo:rustc-link-search=vendor/build"); } fn build() { diff --git a/solvers/minion/vendor b/solvers/minion/vendor index e47b4e8ef..d3670f589 160000 --- a/solvers/minion/vendor +++ b/solvers/minion/vendor @@ -1 +1 @@ -Subproject commit e47b4e8eff1a54181c28e11bc137b0009f0a894a +Subproject commit d3670f589f9fa104ddfcb818ca554ade2336b698