aboutsummaryrefslogtreecommitdiffhomepage
path: root/examples/go/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'examples/go/README.md')
-rw-r--r--examples/go/README.md121
1 files changed, 0 insertions, 121 deletions
diff --git a/examples/go/README.md b/examples/go/README.md
deleted file mode 100644
index 69bcc4c664..0000000000
--- a/examples/go/README.md
+++ /dev/null
@@ -1,121 +0,0 @@
-
-Go rules
---------
-
-The files here demonstrate how to use the rules for Go supplied under
-`//tools/build_rules:go_rules.bzl`. The rules should be considered
-experimental. They support:
-
- * libraries
- * binaries
- * tests
-
-They currently do not support:
-
- * coverage
- * race detector
- * multiple target configurations
- * //+build tags
- * C/C++ interoperation (cgo, swig etc.)
-
-
-Testing
--------
-
-Setup a symlink to the Go installation you wish to use,
-
- ln -s /usr/lib/golang/ tools/go/go_root
-
-or
-
- ln -s $(go env GOROOT) tools/go/go_root
-
-To build something, run
-
- bazel build examples/go/...
-
-To run a test, run
-
- bazel test --test_arg=--test.v examples/go/lib1:lib1_test
-
-
-Writing BUILD rules
--------------------
-
-In the bazel model of compiling Go, each directory can hold multiple
-packages, rather than just one in the standard "go" tool. Suppose you
-have
-
- dir/f.go:
-
- package p
- func F() {}
-
-then in the BUILD file could say
-
- go_library(
- name = "q",
- srcs = ["f.go"])
-
-and you import it with its Bazel name,
-
- import "dir/p/q"
-
-this add the declared package name as namespace, i.e., it is
-equivalent to
-
- import p "dir/p/q"
-
-so you use it as follows
-
- import "dir/p/q"
- main() {
- p.F()
- }
-
-
-Writing tests
--------------
-
-For tests, you should create a separate target,
-
- go_test(
- name = "q_test",
- srcs = [ "f_test.go" ],
- deps = [ ":q" ])
-
-if the test code is in the same package as the library under test
-(e.g., because you are testing private parts of the library), you should
-use the `library` attribute,
-
- go_test(
- name = "q_test",
- srcs = [ "f_test.go" ],
- library = ":q" )
-
-This causes the test and the library under test to be compiled
-together.
-
-
-FAQ
----
-
-# Why does this not follow the external Go conventions?
-
-These rules were inspired on Google's internal Go rules, which work
-like this. For Bazel, these make more sense, because directories in
-Bazel do not correspond to single targets.
-
-
-# Do I have to specify dependencies twice?
-
-Yes, once in the BUILD file, once in the source file. Bazel does not
-examine file contents, so it cannot infer the dependencies. It is
-possible to generate the BUILD file from the Go sources through a
-separate program, though.
-
-
-Disclaimer
-----------
-
-These rules are not supported by Google's Go team.