build: Simplify/correct Windows version tagging (fixes #6471) (#6472)

This commit is contained in:
Jakob Borg 2020-03-29 16:51:50 +02:00 committed by GitHub
parent 1c47fae206
commit 38bd90e6f2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -631,20 +631,27 @@ func buildSnap(target target) {
func shouldBuildSyso(dir string) (string, error) {
type M map[string]interface{}
major, minor, patch, build := semanticVersion()
version := getVersion()
version = strings.TrimPrefix(version, "v")
major, minor, patch := semanticVersion()
bs, err := json.Marshal(M{
"FixedFileInfo": M{
"FileVersion": M{
"Major": major,
"Minor": minor,
"Patch": patch,
"Build": build,
},
"ProductVersion": M{
"Major": major,
"Minor": minor,
"Patch": patch,
},
},
"StringFileInfo": M{
"FileDescription": "Open Source Continuous File Synchronization",
"LegalCopyright": "The Syncthing Authors",
"ProductVersion": getVersion(),
"FileVersion": version,
"ProductVersion": version,
"ProductName": "Syncthing",
},
"IconPath": "assets/logo.ico",
@ -864,22 +871,18 @@ func getVersion() string {
return "unknown-dev"
}
func semanticVersion() (major, minor, patch, build int) {
r := regexp.MustCompile(`v(?P<Major>\d+)\.(?P<Minor>\d+).(?P<Patch>\d+).*\+(?P<CommitsAhead>\d+)`)
func semanticVersion() (major, minor, patch int) {
r := regexp.MustCompile(`v(\d+)\.(\d+).(\d+)`)
matches := r.FindStringSubmatch(getVersion())
if len(matches) != 5 {
return 0, 0, 0, 0
if len(matches) != 4 {
return 0, 0, 0
}
var ints [4]int
for i := 1; i < 5; i++ {
value, err := strconv.Atoi(matches[i])
if err != nil {
return 0, 0, 0, 0
var ints [3]int
for i, s := range matches[1:] {
ints[i], _ = strconv.Atoi(s)
}
ints[i-1] = value
}
return ints[0], ints[1], ints[2], ints[3]
return ints[0], ints[1], ints[2]
}
func getBranchSuffix() string {