|
1 | 1 | fn main() {
|
2 | 2 | #[cfg(feature = "testing")]
|
3 | 3 | {
|
4 |
| - let cmake_dir = std::env::var("CMAKE_CURRENT_BINARY_DIR").unwrap(); |
5 |
| - println!("cargo:rustc-link-search={}/../lib", cmake_dir); |
6 |
| - // c and rust code merged :O |
7 |
| - println!("cargo:rustc-link-lib=bitbox_merged"); |
8 |
| - println!( |
9 |
| - "cargo:rerun-if-changed={}/../lib/libbitbox_merged.a", |
10 |
| - cmake_dir |
11 |
| - ); |
| 4 | + if let Ok(cmake_dir) = std::env::var("CMAKE_CURRENT_BINARY_DIR") { |
| 5 | + println!("cargo:rustc-link-search={}/../lib", cmake_dir); |
| 6 | + // c and rust code merged :O |
| 7 | + println!("cargo:rustc-link-lib=bitbox_merged"); |
| 8 | + println!( |
| 9 | + "cargo:rerun-if-changed={}/../lib/libbitbox_merged.a", |
| 10 | + cmake_dir |
| 11 | + ); |
12 | 12 |
|
13 |
| - // external libs |
14 |
| - println!("cargo:rustc-link-lib=wallycore"); |
15 |
| - println!("cargo:rustc-link-lib=secp256k1"); |
16 |
| - println!("cargo:rustc-link-lib=ctaes"); |
17 |
| - println!("cargo:rustc-link-lib=fatfs"); |
18 |
| - println!("cargo:rustc-link-lib=sd-mock"); |
| 13 | + // external libs |
| 14 | + println!("cargo:rustc-link-lib=wallycore"); |
| 15 | + println!("cargo:rustc-link-lib=secp256k1"); |
| 16 | + println!("cargo:rustc-link-lib=ctaes"); |
| 17 | + println!("cargo:rustc-link-lib=fatfs"); |
| 18 | + println!("cargo:rustc-link-lib=sd-mock"); |
19 | 19 |
|
20 |
| - // system libs |
21 |
| - println!("cargo:rustc-link-lib=cmocka"); |
| 20 | + // system libs |
| 21 | + println!("cargo:rustc-link-lib=cmocka"); |
| 22 | + } else { |
| 23 | + // This is useful in case project is built by tool that doesn't need to link the final |
| 24 | + // target, like rust-analyzer and clippy. |
| 25 | + eprintln!("Missing env variable CMAKE_CURRENT_BINARY_DIR, linking will fail"); |
| 26 | + } |
22 | 27 | }
|
23 | 28 | }
|
0 commit comments