Skip to content

Commit 00f5d7c

Browse files
committed
build: 修改版本号计算方式以允许SemVer
This closes #266
1 parent 88bb2f9 commit 00f5d7c

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

build.rs

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,31 @@ fn main() -> Result<()> {
5656
Ok(())
5757
}
5858

59+
fn cal_version_code(version: &str) -> Result<usize> {
60+
let manjor = version
61+
.split('.')
62+
.next()
63+
.ok_or_else(|| anyhow::anyhow!("Invalid version format"))?;
64+
let manjor: usize = manjor.parse()?;
65+
let minor = version
66+
.split('.')
67+
.nth(1)
68+
.ok_or_else(|| anyhow::anyhow!("Invalid version format"))?;
69+
let minor: usize = minor.parse()?;
70+
let patch = version
71+
.split('.')
72+
.nth(2)
73+
.ok_or_else(|| anyhow::anyhow!("Invalid version format"))?;
74+
let patch: usize = patch.parse()?;
75+
76+
// 版本号计算规则:主版本 * 100000 + 次版本 * 1000 + 修订版本
77+
Ok(manjor * 100000 + minor * 1000 + patch)
78+
}
79+
5980
fn gen_module_prop(data: &CargoConfig) -> Result<()> {
6081
let package = &data.package;
6182
let id = package.name.replace('-', "_");
62-
let version_code: usize = package.version.replace('.', "").trim().parse()?;
83+
let version_code = cal_version_code(&package.version)?;
6384
let authors = &package.authors;
6485
let mut author = String::new();
6586
for a in authors {

0 commit comments

Comments
 (0)