Allow building the Go program with Bazel

This commit is contained in:
Steve Harris 2019-05-18 20:36:16 -04:00 committed by Stanisław Barzowski
parent 1c89ed8927
commit ad72eb0fbb
11 changed files with 308 additions and 7 deletions

19
.gitignore vendored
View File

@ -1,9 +1,14 @@
*~
coverage.out
.*.swp
/tests_path.source
/linter/jsonnet-lint/jsonnet-lint
/jsonnet
/dumpstdlibast
*.so
*.prof
*.so
.*.swp
coverage.out
/bazel-bin
/bazel-genfiles
/bazel-go-jsonnet
/bazel-out
/bazel-testlogs
/dumpstdlibast
/jsonnet
/linter/jsonnet-lint/jsonnet-lint
/tests_path.source

52
BUILD.bazel Normal file
View File

@ -0,0 +1,52 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
load(
"@bazel_gazelle//:def.bzl",
"gazelle",
)
# gazelle:prefix github.com/google/go-jsonnet
gazelle(
name = "gazelle",
)
go_library(
name = "go_default_library",
srcs = [
"builtins.go",
"desugarer.go",
"doc.go",
"error_formatter.go",
"imports.go",
"interpreter.go",
"runtime_error.go",
"static_analyzer.go",
"thunks.go",
"value.go",
"vm.go",
],
importpath = "github.com/google/go-jsonnet",
visibility = ["//visibility:public"],
deps = [
"//ast:go_default_library",
"//parser:go_default_library",
],
)
go_test(
name = "go_default_test",
srcs = [
"desugarer_test.go",
"interpreter_test.go",
"jsonnet_test.go",
"main_test.go",
"static_analyzer_test.go",
],
data = glob(["testdata/**"]),
embed = [":go_default_library"],
deps = [
"//ast:go_default_library",
"//astgen:go_default_library",
"//parser:go_default_library",
"@com_github_sergi_go_diff//diffmatchpatch:go_default_library",
],
)

87
WORKSPACE Normal file
View File

@ -0,0 +1,87 @@
workspace(name = "google_jsonnet_go")
load(
"@bazel_tools//tools/build_defs/repo:http.bzl",
"http_archive",
)
# Go and Gazelle
http_archive(
name = "io_bazel_rules_go",
sha256 = "a82a352bffae6bee4e95f68a8d80a70e87f42c4741e6a448bec11998fcc82329",
urls = ["https://github.com/bazelbuild/rules_go/releases/download/0.18.5/rules_go-0.18.5.tar.gz"],
)
http_archive(
name = "bazel_gazelle",
sha256 = "3c681998538231a2d24d0c07ed5a7658cb72bfb5fd4bf9911157c0e9ac6a2687",
urls = ["https://github.com/bazelbuild/bazel-gazelle/releases/download/0.17.0/bazel-gazelle-0.17.0.tar.gz"],
)
load(
"@io_bazel_rules_go//go:deps.bzl",
"go_register_toolchains",
"go_rules_dependencies",
)
go_rules_dependencies()
go_register_toolchains()
load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies", "go_repository")
gazelle_dependencies()
go_repository(
name = "com_github_davecgh_go_spew",
importpath = "github.com/davecgh/go-spew",
tag = "v1.1.0",
)
go_repository(
name = "com_github_fatih_color",
importpath = "github.com/fatih/color",
tag = "v1.7.0",
)
go_repository(
name = "com_github_mattn_go_colorable",
importpath = "github.com/mattn/go-colorable",
tag = "v0.1.1",
)
go_repository(
name = "com_github_mattn_go_isatty",
importpath = "github.com/mattn/go-isatty",
tag = "v0.0.7",
)
go_repository(
name = "com_github_pmezard_go_difflib",
importpath = "github.com/pmezard/go-difflib",
tag = "v1.0.0",
)
go_repository(
name = "com_github_sergi_go_diff",
importpath = "github.com/sergi/go-diff",
tag = "v1.0.0",
)
go_repository(
name = "com_github_stretchr_objx",
importpath = "github.com/stretchr/objx",
tag = "v0.1.0",
)
go_repository(
name = "com_github_stretchr_testify",
importpath = "github.com/stretchr/testify",
tag = "v1.3.0",
)
go_repository(
name = "org_golang_x_sys",
commit = "a9d3bda3a223",
importpath = "golang.org/x/sys",
)

16
ast/BUILD.bazel Normal file
View File

@ -0,0 +1,16 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = [
"ast.go",
"clone.go",
"fodder.go",
"identifier_set.go",
"location.go",
"stdast.go",
"util.go",
],
importpath = "github.com/google/go-jsonnet/ast",
visibility = ["//visibility:public"],
)

23
c-bindings/BUILD.bazel Normal file
View File

@ -0,0 +1,23 @@
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
go_library(
name = "go_default_library",
srcs = [
"c-bindings.go",
"internal.h",
"json.cpp",
"json.h",
"libjsonnet.cpp",
],
cgo = True,
copts = ["-std=c++11 -Wall"],
importpath = "github.com/google/go-jsonnet/c-bindings",
visibility = ["//visibility:private"],
deps = ["//:go_default_library"],
)
go_binary(
name = "c-bindings",
embed = [":go_default_library"],
visibility = ["//visibility:public"],
)

View File

@ -0,0 +1,18 @@
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
go_library(
name = "go_default_library",
srcs = ["dumpstdlibast.go"],
importpath = "github.com/google/go-jsonnet/cmd/dumpstdlibast",
visibility = ["//visibility:private"],
deps = [
"//:go_default_library",
"//dump:go_default_library",
],
)
go_binary(
name = "dumpstdlibast",
embed = [":go_default_library"],
visibility = ["//visibility:public"],
)

24
cmd/jsonnet/BUILD.bazel Normal file
View File

@ -0,0 +1,24 @@
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
go_library(
name = "go_default_library",
srcs = ["cmd.go"],
importpath = "github.com/google/go-jsonnet/cmd/jsonnet",
visibility = ["//visibility:private"],
deps = [
"//:go_default_library",
"@com_github_fatih_color//:go_default_library",
],
)
go_binary(
name = "jsonnet",
embed = [":go_default_library"],
visibility = ["//visibility:public"],
)
go_test(
name = "go_default_test",
srcs = ["cmd_test.go"],
embed = [":go_default_library"],
)

18
dump/BUILD.bazel Normal file
View File

@ -0,0 +1,18 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
go_library(
name = "go_default_library",
srcs = [
"dump.go",
"pointermap.go",
"utils.go",
],
importpath = "github.com/google/go-jsonnet/dump",
visibility = ["//visibility:public"],
)
go_test(
name = "go_default_test",
srcs = ["dump_test.go"],
embed = [":go_default_library"],
)

15
linter/BUILD.bazel Normal file
View File

@ -0,0 +1,15 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = [
"find_variables.go",
"linter.go",
],
importpath = "github.com/google/go-jsonnet/linter",
visibility = ["//visibility:public"],
deps = [
"//ast:go_default_library",
"//parser:go_default_library",
],
)

View File

@ -0,0 +1,18 @@
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
go_library(
name = "go_default_library",
srcs = ["cmd.go"],
importpath = "github.com/google/go-jsonnet/linter/jsonnet-lint",
visibility = ["//visibility:private"],
deps = [
"//:go_default_library",
"//linter:go_default_library",
],
)
go_binary(
name = "jsonnet-lint",
embed = [":go_default_library"],
visibility = ["//visibility:public"],
)

25
parser/BUILD.bazel Normal file
View File

@ -0,0 +1,25 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
go_library(
name = "go_default_library",
srcs = [
"context.go",
"lexer.go",
"literalfield_set.go",
"parser.go",
"static_error.go",
],
importpath = "github.com/google/go-jsonnet/parser",
visibility = ["//visibility:public"],
deps = ["//ast:go_default_library"],
)
go_test(
name = "go_default_test",
srcs = [
"lexer_test.go",
"parser_test.go",
],
embed = [":go_default_library"],
deps = ["//ast:go_default_library"],
)