From a511e45d30c05b9c050ca80094b918dba954ee38 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Wed, 25 Mar 2026 08:15:42 -0400 Subject: [PATCH] Rust wrapper: build.rs improvements per code review --- wrapper/rust/wolfssl-wolfcrypt/build.rs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/wrapper/rust/wolfssl-wolfcrypt/build.rs b/wrapper/rust/wolfssl-wolfcrypt/build.rs index 28c817295a..76ed9a4c91 100644 --- a/wrapper/rust/wolfssl-wolfcrypt/build.rs +++ b/wrapper/rust/wolfssl-wolfcrypt/build.rs @@ -43,7 +43,13 @@ fn wolfssl_repo_lib_dir() -> Result { /// Otherwise falls back to the repo root if it exists (for in-tree host builds). fn wolfssl_include_dir() -> Result> { if let Ok(prefix) = env::var("WOLFSSL_PREFIX") { - Ok(Some(format!("{}/include", prefix))) + let include_dir = format!("{}/include", prefix); + let wolfssl_dir = Path::new(&include_dir).join("wolfssl"); + if !wolfssl_dir.is_dir() { + eprintln!("cargo:warning=WOLFSSL_PREFIX is set but {} does not exist", wolfssl_dir.display()); + return Ok(None); + } + Ok(Some(include_dir)) } else { let base = wolfssl_repo_base_dir()?; let base_path = Path::new(&base); @@ -65,10 +71,13 @@ fn wolfssl_include_dir() -> Result> { fn wolfssl_lib_dir() -> Result> { if let Ok(prefix) = env::var("WOLFSSL_PREFIX") { Ok(Some(format!("{}/lib", prefix))) - } else if Path::new(&wolfssl_repo_lib_dir()?).exists() { - Ok(Some(wolfssl_repo_lib_dir()?)) } else { - Ok(None) + let repo_lib_dir = wolfssl_repo_lib_dir()?; + if Path::new(&repo_lib_dir).exists() { + Ok(Some(repo_lib_dir)) + } else { + Ok(None) + } } }