summaryrefslogtreecommitdiff
path: root/build.rs
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2025-11-04 15:01:08 +0800
committer魏曹先生 <1992414357@qq.com>2025-11-04 15:01:08 +0800
commit37592f1df3522c27ea514a89906f87498a946bc6 (patch)
treec77389cf1d7a529580b774a5bff27493a6311ee9 /build.rs
parentf6655e6708f444f4ff8df3f25e17db80f410667b (diff)
Update version to 0.1.0-dev and improve version detection
Diffstat (limited to 'build.rs')
-rw-r--r--build.rs28
1 files changed, 17 insertions, 11 deletions
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::<toml::Value>() {
- 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()
}