Tools for building and distributing Go executables
target := gobuild.Target{
Source: "./example/payload",
OutputName: fmt.Sprintf("payload-%s-%s-%s",
gobuild.PlaceholderVersion,
gobuild.PlaceholderOS,
gobuild.PlaceholderArch),
OutputPath: "./output",
CleanOutput: true,
ExtraLdFlags: "-s -w",
VersionPath: "main.Version",
HashPath: "main.Hash",
Compress: gobuild.CompressZip,
Platforms: gobuild.PlatformCommon,
}
err := target.Build()
if err != nil {
panic(err)
}
{
"Go": "",
"Source": "./example/payload",
"OutputName": "payload-{Version}-{OS}-{Arch}",
"OutputPath": "./output",
"CleanOutput": true,
"Cgo": false,
"ExtraFlags": null,
"ExtraLdFlags": "-s -w",
"VersionPath": "main.Version",
"HashPath": "main.Hash",
"Compress": "auto",
"PlatformShortcut": "common",
"Platforms": [
{
"Arch": "riscv",
"OS": "linux"
}
]
}
target, err := gobuild.GetTargetFromJson("./config.json")
if err != nil {
panic(err)
}
err = target.Build()
if err != nil {
panic(err)
}
target = gobuild.Target{
Platforms: []gobuild.Platform{
{OS: gobuild.OSLinux, Arch: gobuild.ArchAmd64, CC: "gcc"},
{OS: gobuild.OSWindows, Arch: gobuild.ArchAmd64, CC: "x86_64-w64-mingw32-gcc"},
},
}