package work

import "cmd/go/internal/work"

Index

Variables

var BuildToolchain toolchain = noToolchain{}
var CmdBuild = &base.Command{
	UsageLine: "build [-o output] [-i] [build flags] [packages]",
	Short:     "compile packages and dependencies",
	Long:      "" /* 4303 byte string literal not displayed */,
}
var CmdInstall = &base.Command{
	UsageLine: "install [build flags] [packages]",
	Short:     "compile and install packages and dependencies",
	Long:      "" /* 258 byte string literal not displayed */,
}
var ExecCmd []string

ExecCmd is the command to use to run user binaries. Normally it is empty, meaning run the binaries directly. If cross-compiling and running on a remote system or simulator, it is typically go_GOOS_GOARCH_exec, with the target GOOS and GOARCH substituted. The -exec flag overrides these defaults.

var GccgoName, GccgoBin string

Functions

func AddBuildFlags

func AddBuildFlags(cmd *base.Command)

addBuildFlags adds the flags common to the build, clean, get, install, list, run, and test commands.

func BuildInstallFunc

func BuildInstallFunc(b *Builder, a *Action) (err error)

BuildInstallFunc is the action for installing a single package or executable.

func BuildModeInit

func BuildModeInit()

func FindExecCmd

func FindExecCmd() []string

FindExecCmd derives the value of ExecCmd to use. It returns that value and leaves ExecCmd set for direct use.

func InstallPackages

func InstallPackages(args []string, forGet bool)

func InstrumentInit

func InstrumentInit()

Types

type Action

type Action struct {
	Package    *load.Package                 // the package this action works on
	Deps       []*Action                     // actions that must happen before this one
	Func       func(*Builder, *Action) error // the action itself (nil = no-op)
	IgnoreFail bool                          // whether to run f even if dependencies fail
	TestOutput *bytes.Buffer                 // test output buffer
	Args       []string                      // additional args for runProgram

	// Generated files, directories.
	Link   bool   // target is executable, not just package
	Pkgdir string // the -I or -L argument to use when importing this package
	Objdir string // directory for intermediate objects
	Objpkg string // the intermediate package .a file created during the action
	Target string // goal of the action: the created package or executable

	Failed bool // whether the action failed
	// contains filtered or unexported fields
}

An Action represents a single action in the action graph.

func ActionList

func ActionList(root *Action) []*Action

ActionList returns the list of actions in the dag rooted at root as visited in a depth-first post-order traversal.

type BuildMode

type BuildMode int

BuildMode specifies the build mode: are we just building things or also installing the results?

const (
	ModeBuild BuildMode = iota
	ModeInstall
)

type Builder

type Builder struct {
	WorkDir string // the temporary work directory (ends in filepath.Separator)

	Print func(args ...interface{}) (int, error)
	// contains filtered or unexported fields
}

A Builder holds global state about a build. It does not hold per-package state, because we build packages in parallel, and the builder is shared.

func (*Builder) Action

func (b *Builder) Action(mode BuildMode, depMode BuildMode, p *load.Package) *Action

Action returns the action for applying the given operation (mode) to the package. depMode is the action to use when building dependencies. action never looks for p in a shared library, but may find p's dependencies in a shared library if buildLinkshared is true.

func (*Builder) CFlags

func (b *Builder) CFlags(p *load.Package) (cppflags, cflags, cxxflags, fflags, ldflags []string)

CFlags returns the flags to use when invoking the C, C++ or Fortran compilers, or cgo.

func (*Builder) Do

func (b *Builder) Do(root *Action)

do runs the action graph rooted at root.

func (*Builder) GccCmd

func (b *Builder) GccCmd(objdir string) []string

gccCmd returns a gcc command line prefix defaultCC is defined in zdefaultcc.go, written by cmd/dist.

func (*Builder) GxxCmd

func (b *Builder) GxxCmd(objdir string) []string

gxxCmd returns a g++ command line prefix defaultCXX is defined in zdefaultcc.go, written by cmd/dist.

func (*Builder) Init

func (b *Builder) Init()

func (*Builder) Mkdir

func (b *Builder) Mkdir(dir string) error

mkdir makes the named directory.

func (*Builder) PkgconfigCmd

func (b *Builder) PkgconfigCmd() string

PkgconfigCmd returns a pkg-config binary name defaultPkgConfig is defined in zdefaultcc.go, written by cmd/dist.

func (*Builder) Showcmd

func (b *Builder) Showcmd(dir string, format string, args ...interface{})

showcmd prints the given command to standard output for the implementation of -n or -x.

Source Files

build.go

Version
v1.9.3
Published
Jan 22, 2018
Platform
linux/amd64
Imports
26 packages
Last checked
4 seconds ago

Tools for package owners.