aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/build_rules/go/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'tools/build_rules/go/README.md')
-rw-r--r--tools/build_rules/go/README.md292
1 files changed, 0 insertions, 292 deletions
diff --git a/tools/build_rules/go/README.md b/tools/build_rules/go/README.md
deleted file mode 100644
index 535c2a487a..0000000000
--- a/tools/build_rules/go/README.md
+++ /dev/null
@@ -1,292 +0,0 @@
-# Go rules
-
-<div class="toc">
- <h2>Rules</h2>
- <ul>
- <li><a href="#go_prefix">go_prefix</a></li>
- <li><a href="#go_library">go_library</a></li>
- <li><a href="#go_binary">go_binary</a></li>
- <li><a href="#go_test">go_test</a></li>
- </ul>
-</div>
-
-## Overview
-
-The rules should be considered experimental. They support:
-
-* libraries
-* binaries
-* tests
-* vendoring
-
-They currently do not support (in order of importance):
-
-* `//+build` tags
-* auto generated BUILD files.
-* C/C++ interoperation (cgo, swig etc.)
-* race detector
-* coverage
-* test sharding
-
-## Setup
-
-* Decide on the name of your package, eg. `github.com/joe/project`
-* Add the following to your WORKSPACE file:
-
- ```python
- load("@bazel_tools//tools/build_rules/go:def.bzl", "go_repositories")
-
- go_repositories()
- ```
-
-* Add a `BUILD` file to the top of your workspace, declaring the name of your
- workspace using `go_prefix`. It is strongly recommended that the prefix is not
- empty.
-
- ```python
- load("@bazel_tools//tools/build_rules/go:def.bzl", "go_prefix")
-
- go_prefix("github.com/joe/project")
- ```
-
-* For a library `github.com/joe/project/lib`, create `lib/BUILD`, containing
-
- ```python
- load("@bazel_tools//tools/build_rules/go:def.bzl", "go_library")
-
- go_library(
- name = "go_default_library",
- srcs = ["file.go"]
- )
- ```
-
-* Inside your project, you can use this library by declaring a dependency
-
- ```python
- go_binary(
- ...
- deps = ["//lib:go_default_library"]
- )
- ```
-
-* In this case, import the library as `github.com/joe/project/lib`.
-* For vendored libraries, you may depend on
- `//lib/vendor/github.com/user/project:go_default_library`. Vendored
- libraries should have BUILD files like normal libraries.
-* To declare a test,
-
- ```python
- go_test(
- name = "mytest",
- srcs = ["file_test.go"],
- library = ":go_default_library"
- )
- ```
-
-## FAQ
-
-### Can I still use the `go` tool?
-
-Yes, this setup was deliberately chosen to be compatible with the `go`
-tool. Make sure your workspace appears under
-
-```sh
-$GOROOT/src/github.com/joe/project/
-```
-
-eg.
-
-```sh
-mkdir -p $GOROOT/src/github.com/joe/
-ln -s my/bazel/workspace $GOROOT/src/github.com/joe/project
-```
-
-and it should work.
-
-## Disclaimer
-
-These rules are not supported by Google's Go team.
-
-<a name="go_prefix"></a>
-## go\_prefix
-
-```python
-go_prefix(prefix)
-```
-
-<table class="table table-condensed table-bordered table-params">
- <colgroup>
- <col class="col-param" />
- <col class="param-description" />
- </colgroup>
- <thead>
- <tr>
- <th colspan="2">Attributes</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><code>prefix</code></td>
- <td>
- <code>String, required</code>
- <p>Global prefix used to fully quality all Go targets.</p>
- <p>
- In Go, imports are always fully qualified with a URL, eg.
- <code>github.com/user/project</code>. Hence, a label <code>//foo:bar
- </code> from within a Bazel workspace must be referred to as
- <code>github.com/user/project/foo/bar</code>. To make this work, each
- rule must know the repository's URL. This is achieved, by having all
- go rules depend on a globally unique target that has a
- <code>go_prefix</code> transitive info provider.
- </p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<a name="go_library"></a>
-## go\_library
-
-```python
-go_library(name, srcs, deps, data)
-```
-<table class="table table-condensed table-bordered table-params">
- <colgroup>
- <col class="col-param" />
- <col class="param-description" />
- </colgroup>
- <thead>
- <tr>
- <th colspan="2">Attributes</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><code>name</code></td>
- <td>
- <code>Name, required</code>
- <p>A unique name for this rule.</p>
- </td>
- </tr>
- <tr>
- <td><code>srcs</code></td>
- <td>
- <code>List of labels, required</code>
- <p>List of Go <code>.go</code> source files used to build the
- library</p>
- </td>
- </tr>
- <tr>
- <td><code>deps</code></td>
- <td>
- <code>List of labels, optional</code>
- <p>List of other libraries to linked to this library target</p>
- </td>
- </tr>
- <tr>
- <td><code>data</code></td>
- <td>
- <code>List of labels, optional</code>
- <p>List of files needed by this rule at runtime.</p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<a name="go_binary"></a>
-## go\_binary
-
-```python
-go_binary(name, srcs, deps, data)
-```
-<table class="table table-condensed table-bordered table-params">
- <colgroup>
- <col class="col-param" />
- <col class="param-description" />
- </colgroup>
- <thead>
- <tr>
- <th colspan="2">Attributes</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><code>name</code></td>
- <td>
- <code>Name, required</code>
- <p>A unique name for this rule.</p>
- </td>
- </tr>
- <tr>
- <td><code>srcs</code></td>
- <td>
- <code>List of labels, required</code>
- <p>List of Go <code>.go</code> source files used to build the
- binary</p>
- </td>
- </tr>
- <tr>
- <td><code>deps</code></td>
- <td>
- <code>List of labels, optional</code>
- <p>List of other libraries to linked to this binary target</p>
- </td>
- </tr>
- <tr>
- <td><code>data</code></td>
- <td>
- <code>List of labels, optional</code>
- <p>List of files needed by this rule at runtime.</p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<a name="go_test"></a>
-## go\_test
-
-```python
-go_test(name, srcs, deps, data)
-```
-<table class="table table-condensed table-bordered table-params">
- <colgroup>
- <col class="col-param" />
- <col class="param-description" />
- </colgroup>
- <thead>
- <tr>
- <th colspan="2">Attributes</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><code>name</code></td>
- <td>
- <code>Name, required</code>
- <p>A unique name for this rule.</p>
- </td>
- </tr>
- <tr>
- <td><code>srcs</code></td>
- <td>
- <code>List of labels, required</code>
- <p>List of Go <code>.go</code> source files used to build the
- test</p>
- </td>
- </tr>
- <tr>
- <td><code>deps</code></td>
- <td>
- <code>List of labels, optional</code>
- <p>List of other libraries to linked to this test target</p>
- </td>
- </tr>
- <tr>
- <td><code>data</code></td>
- <td>
- <code>List of labels, optional</code>
- <p>List of files needed by this rule at runtime.</p>
- </td>
- </tr>
- </tbody>
-</table>