rules

package
v0.5.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 12, 2017 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Overview

Package rules provides Bazel rule generation for Go build targets.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SortLabels added in v0.5.1

func SortLabels(f *bf.File)

SortLabels sorts lists of strings in "srcs" and "deps" attributes of Go rules using the same order as buildifier. Buildifier also sorts string lists, but not those involved with "select" expressions. TODO(jayconrod): remove this when bazelbuild/buildtools#122 is fixed.

Types

type Generator

type Generator interface {
	// Generate generates a syntax tree of a BUILD file for "pkg". The file
	// contains rules for each non-empty target in "pkg". It also contains
	// "load" statements necessary for the rule constructors. If this is the
	// top-level package in the repository, the file will contain a
	// "go_prefix" rule. This is a convenience method for the other methods
	// in this interface.
	Generate(pkg *packages.Package) *bf.File

	// GeneratePrefix generates a go_prefix rule. This should be in the
	// top-level build file for the repository.
	GeneratePrefix() bf.Expr

	// GenerateRules generates a list of rules for targets in "pkg".
	GenerateRules(pkg *packages.Package) []bf.Expr

	// GenerateLoad generates a load statement for the symbols referenced
	// in "stmts". Returns nil if rules is empty.
	GenerateLoad(stmts []bf.Expr) bf.Expr
}

Generator generates Bazel build rules for Go build targets

func NewGenerator

func NewGenerator(c *config.Config, r resolve.Resolver, l resolve.Labeler, buildRel string, oldFile *bf.File) Generator

NewGenerator returns a new instance of Generator. "buildRel" is a slash-separated path to the directory containing the build file being generated, relative to the repository root. "oldFile" is the existing build file. May be nil.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL