From 37592f1df3522c27ea514a89906f87498a946bc6 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Tue, 4 Nov 2025 15:01:08 +0800 Subject: Update version to 0.1.0-dev and improve version detection --- Cargo.toml | 2 +- build.rs | 28 +++++++++++++++++----------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 464b311..f579da3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,7 @@ build = "build.rs" members = ["crates/build_helper"] [workspace.package] -version = "0.1.0" +version = "0.1.0-dev" [profile.dev] opt-level = 0 diff --git a/build.rs b/build.rs index ac5acaa..04fcd71 100644 --- a/build.rs +++ b/build.rs @@ -76,20 +76,26 @@ fn get_toolchain() -> String { } fn get_version() -> String { - let manifest_dir = env::var("CARGO_MANIFEST_DIR").unwrap(); - let manifest_path = PathBuf::from(manifest_dir).join("Cargo.toml"); - - if let Ok(contents) = std::fs::read_to_string(&manifest_path) { - if let Ok(manifest) = contents.parse::() { - if let Some(package) = manifest.get("package") { - if let Some(version) = package.get("version") { - if let Some(version_str) = version.as_str() { - return version_str.to_string(); - } + let cargo_toml_path = std::path::Path::new("Cargo.toml"); + let cargo_toml_content = match std::fs::read_to_string(cargo_toml_path) { + Ok(content) => content, + Err(_) => return "unknown".to_string(), + }; + + let cargo_toml: toml::Value = match toml::from_str(&cargo_toml_content) { + Ok(value) => value, + Err(_) => return "unknown".to_string(), + }; + + if let Some(workspace) = cargo_toml.get("workspace") { + if let Some(package) = workspace.get("package") { + if let Some(version) = package.get("version") { + if let Some(version_str) = version.as_str() { + return version_str.to_string(); } } } } - "0.1.0".to_string() + "unknown".to_string() } -- cgit