Skip to content

Commit

Permalink
lazy init of releases
Browse files Browse the repository at this point in the history
  • Loading branch information
DarienRaymond committed Mar 8, 2018
1 parent 2f7c6ae commit f43f74d
Showing 1 changed file with 25 additions and 18 deletions.
43 changes: 25 additions & 18 deletions tools/build/v2ray.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,23 +18,30 @@ type releaseID struct {
Arch build.Arch
}

var releases = map[releaseID][]build.Target{
genReleaseID(build.Windows, build.Amd64): append(genRegularTarget(build.Windows, build.Amd64), getWindowsExtra(build.Amd64)...),
genReleaseID(build.Windows, build.X86): append(genRegularTarget(build.Windows, build.X86), getWindowsExtra(build.X86)...),
genReleaseID(build.MacOS, build.Amd64): append(genRegularTarget(build.MacOS, build.Amd64)),
genReleaseID(build.Linux, build.Amd64): append(genRegularTarget(build.Linux, build.Amd64)),
genReleaseID(build.Linux, build.X86): append(genRegularTarget(build.Linux, build.X86)),
genReleaseID(build.Linux, build.Arm64): append(genRegularTarget(build.Linux, build.Arm64)),
genReleaseID(build.Linux, build.Arm): append(genRegularTarget(build.Linux, build.Arm), getArmExtra()...),
genReleaseID(build.Linux, build.Mips64): append(genRegularTarget(build.Linux, build.Mips64)),
genReleaseID(build.Linux, build.Mips64LE): append(genRegularTarget(build.Linux, build.Mips64LE)),
genReleaseID(build.Linux, build.Mips): append(genRegularTarget(build.Linux, build.Mips), getMipsExtra(build.Mips)...),
genReleaseID(build.Linux, build.MipsLE): append(genRegularTarget(build.Linux, build.MipsLE), getMipsExtra(build.MipsLE)...),
genReleaseID(build.Linux, build.S390X): append(genRegularTarget(build.Linux, build.S390X)),
genReleaseID(build.OpenBSD, build.Amd64): append(genRegularTarget(build.OpenBSD, build.Amd64)),
genReleaseID(build.OpenBSD, build.X86): append(genRegularTarget(build.OpenBSD, build.X86)),
genReleaseID(build.FreeBSD, build.Amd64): append(genRegularTarget(build.FreeBSD, build.Amd64)),
genReleaseID(build.FreeBSD, build.X86): append(genRegularTarget(build.FreeBSD, build.X86)),
var releases map[releaseID][]build.Target

func getReleases() map[releaseID][]build.Target {
if releases == nil {
releases = map[releaseID][]build.Target{
genReleaseID(build.Windows, build.Amd64): append(genRegularTarget(build.Windows, build.Amd64), getWindowsExtra(build.Amd64)...),
genReleaseID(build.Windows, build.X86): append(genRegularTarget(build.Windows, build.X86), getWindowsExtra(build.X86)...),
genReleaseID(build.MacOS, build.Amd64): append(genRegularTarget(build.MacOS, build.Amd64)),
genReleaseID(build.Linux, build.Amd64): append(genRegularTarget(build.Linux, build.Amd64)),
genReleaseID(build.Linux, build.X86): append(genRegularTarget(build.Linux, build.X86)),
genReleaseID(build.Linux, build.Arm64): append(genRegularTarget(build.Linux, build.Arm64)),
genReleaseID(build.Linux, build.Arm): append(genRegularTarget(build.Linux, build.Arm), getArmExtra()...),
genReleaseID(build.Linux, build.Mips64): append(genRegularTarget(build.Linux, build.Mips64)),
genReleaseID(build.Linux, build.Mips64LE): append(genRegularTarget(build.Linux, build.Mips64LE)),
genReleaseID(build.Linux, build.Mips): append(genRegularTarget(build.Linux, build.Mips), getMipsExtra(build.Mips)...),
genReleaseID(build.Linux, build.MipsLE): append(genRegularTarget(build.Linux, build.MipsLE), getMipsExtra(build.MipsLE)...),
genReleaseID(build.Linux, build.S390X): append(genRegularTarget(build.Linux, build.S390X)),
genReleaseID(build.OpenBSD, build.Amd64): append(genRegularTarget(build.OpenBSD, build.Amd64)),
genReleaseID(build.OpenBSD, build.X86): append(genRegularTarget(build.OpenBSD, build.X86)),
genReleaseID(build.FreeBSD, build.Amd64): append(genRegularTarget(build.FreeBSD, build.Amd64)),
genReleaseID(build.FreeBSD, build.X86): append(genRegularTarget(build.FreeBSD, build.X86)),
}
}
return releases
}

func genReleaseID(goOS build.OS, goArch build.Arch) releaseID {
Expand Down Expand Up @@ -189,5 +196,5 @@ func genStdLdFlags(goOS build.OS, goArch build.Arch) []string {
}

func GetReleaseTargets(goOS build.OS, goArch build.Arch) []build.Target {
return releases[genReleaseID(goOS, goArch)]
return getReleases()[genReleaseID(goOS, goArch)]
}

0 comments on commit f43f74d

Please sign in to comment.