Bazel go library: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Tag: Manual revert
 
(4 intermediate revisions by the same user not shown)
Line 6: Line 6:
This builds a Go library from a set of source files that are all part of the same package.
This builds a Go library from a set of source files that are all part of the same package.
=Example=
=Example=
<syntaxhighlight lang='starlark'>
<syntaxhighlight lang='go'>
load("//meta/rules:go.bzl", "go_library")
 
go_library(
    name = "somepkg",
    srcs = [
        "file1.go",
        "file2.go",
    ],
    importpath = "github.com/someorg/somemodule/pkg/somepkg",
    visibility = ["//visibility:public"], # private if this is a library that becomes part of an executable
    deps = [
        "//lib/a",
        "//lib/b",
        ...
        "@com_github_blang_semver//:semver",
    ],
)
</syntaxhighlight>
</syntaxhighlight>



Latest revision as of 03:37, 23 July 2024

External

Internal

Overview

This builds a Go library from a set of source files that are all part of the same package.

Example

load("//meta/rules:go.bzl", "go_library")

go_library(
    name = "somepkg",
    srcs = [
        "file1.go",
        "file2.go",
    ],
    importpath = "github.com/someorg/somemodule/pkg/somepkg",
    visibility = ["//visibility:public"], # private if this is a library that becomes part of an executable
    deps = [
        "//lib/a",
        "//lib/b",
        ...
        "@com_github_blang_semver//:semver",
    ],
)

Attributes

name

Required, a unique name for this target.

srcs

Optional. The list of Go source files that are compiled to create the package. Only .go and .s files are permitted, unless the cgo attribute is set.

deps

Optional. List of Go libraries this package imports directly. These may be go_library rules or compatible rules with the GoLibrary provider.

importpath

The source import path of this library. Other libraries can import this library using this path. This must either be specified in go_library or inherited from one of the libraries in embed.

visibility