aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--BUILD4
-rw-r--r--WORKSPACE11
-rw-r--r--examples/go/bin/BUILD14
-rw-r--r--examples/go/bin/bin.go14
-rw-r--r--examples/go/lib/BUILD20
-rw-r--r--examples/go/lib/lib.go6
-rw-r--r--examples/go/lib/lib_test.go11
-rw-r--r--examples/go/vendor/github_com/user/vendored/BUILD12
-rw-r--r--examples/go/vendor/github_com/user/vendored/vendored.go6
9 files changed, 98 insertions, 0 deletions
diff --git a/BUILD b/BUILD
index d34269b456..2e1495fca6 100644
--- a/BUILD
+++ b/BUILD
@@ -9,3 +9,7 @@ filegroup(
name = "dummy",
visibility = ["//visibility:public"],
)
+
+load("/tools/build_rules/go/def", "go_prefix")
+
+go_prefix("github.com/bazelbuild/bazel")
diff --git a/WORKSPACE b/WORKSPACE
index fc9cb01d95..6c6c8d8bd5 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -80,3 +80,14 @@ new_http_archive(
sha256 = "87494218eea2441a7a24b40f227330877dbba75c5fa9014ac6188711baed53f6",
build_file = "tools/build_defs/sass/sassc.BUILD",
)
+
+bind(name = "go_prefix",
+ actual = "//:go_prefix",
+)
+
+new_http_archive(
+ name= "golang-linux-amd64",
+ url = "https://storage.googleapis.com/golang/go1.5.1.linux-amd64.tar.gz",
+ build_file = "tools/build_rules/go/toolchain/BUILD.go-toolchain",
+ sha256 = "2593132ca490b9ee17509d65ee2cd078441ff544899f6afb97a03d08c25524e7"
+)
diff --git a/examples/go/bin/BUILD b/examples/go/bin/BUILD
new file mode 100644
index 0000000000..d6676c401a
--- /dev/null
+++ b/examples/go/bin/BUILD
@@ -0,0 +1,14 @@
+package(
+ default_visibility = ["//visibility:public"],
+)
+
+load("/tools/build_rules/go/def", "go_binary")
+
+go_binary(
+ name = "bin",
+ srcs = ["bin.go"],
+ deps = [
+ "//examples/go/lib:go_default_library",
+ "//examples/go/vendor/github_com/user/vendored:go_default_library",
+ ],
+)
diff --git a/examples/go/bin/bin.go b/examples/go/bin/bin.go
new file mode 100644
index 0000000000..b0c5917145
--- /dev/null
+++ b/examples/go/bin/bin.go
@@ -0,0 +1,14 @@
+package main
+
+import (
+ "fmt"
+
+ "github_com/user/vendored"
+
+ "github.com/bazelbuild/bazel/examples/go/lib"
+)
+
+func main() {
+ fmt.Println("meaning: ", lib.Meaning())
+ fmt.Println("vendored: ", vendored.Vendored())
+}
diff --git a/examples/go/lib/BUILD b/examples/go/lib/BUILD
new file mode 100644
index 0000000000..ac982b1145
--- /dev/null
+++ b/examples/go/lib/BUILD
@@ -0,0 +1,20 @@
+package(
+ default_visibility = ["//visibility:public"],
+)
+
+load("/tools/build_rules/go/def", "go_library", "go_test")
+
+go_library(
+ name = "go_default_library",
+ srcs = [
+ "lib.go",
+ ],
+)
+
+go_test(
+ name = "lib_test",
+ srcs = [
+ "lib_test.go",
+ ],
+ library = ":go_default_library",
+)
diff --git a/examples/go/lib/lib.go b/examples/go/lib/lib.go
new file mode 100644
index 0000000000..f97e3aefce
--- /dev/null
+++ b/examples/go/lib/lib.go
@@ -0,0 +1,6 @@
+package lib
+
+// Meaning calculates the meaning of Life, the Universe and Everything.
+func Meaning() int {
+ return 42
+}
diff --git a/examples/go/lib/lib_test.go b/examples/go/lib/lib_test.go
new file mode 100644
index 0000000000..e8a9f1b707
--- /dev/null
+++ b/examples/go/lib/lib_test.go
@@ -0,0 +1,11 @@
+package lib
+
+import (
+ "testing"
+)
+
+func TestMeaning(t *testing.T) {
+ if m := Meaning(); m != 42 {
+ t.Errorf("got %d, want 42", m)
+ }
+}
diff --git a/examples/go/vendor/github_com/user/vendored/BUILD b/examples/go/vendor/github_com/user/vendored/BUILD
new file mode 100644
index 0000000000..7fa0283e99
--- /dev/null
+++ b/examples/go/vendor/github_com/user/vendored/BUILD
@@ -0,0 +1,12 @@
+package(
+ default_visibility = ["//visibility:public"],
+)
+
+load("/tools/build_rules/go/def", "go_library")
+
+go_library(
+ name = "go_default_library",
+ srcs = [
+ "vendored.go",
+ ],
+)
diff --git a/examples/go/vendor/github_com/user/vendored/vendored.go b/examples/go/vendor/github_com/user/vendored/vendored.go
new file mode 100644
index 0000000000..1e9ee6e785
--- /dev/null
+++ b/examples/go/vendor/github_com/user/vendored/vendored.go
@@ -0,0 +1,6 @@
+package vendored
+
+// Vendored returns a string.
+func Vendored() string {
+ return "I was vendored"
+}