17.36. go

重要

不应该为 Go libs 创建 port, 更多信息请参见 Go Libraries

可能的参数:(无), N.NN, N.NN-devel, modules, no_targets, run

设置用于构建Go软件的默认值和目标。会添加对 Go 编译器 port 的构建依赖, port 维护者可以设置所需的版本。 默认情况下,构建是在 GOPATH 模式下进行的。如果 Go 软件使用了模块,可以通过 modules 参数来开启模块感知模式。no_targets 将设置像 GO_ENVGO_BUILDFLAGS 这样的构建环境,但跳过创建解压和构建目标。run 也会在 Go 编译器 port 上添加一个运行依赖项。

构建过程是由几个变量控制的:

GO_MODULE

go.mod 中的 module 指令指定的应用程序模块的名称。在大多数情况下, 这是使用 Go 模块的 port 唯一需要的变量。

GO_PKGNAME

在 GOPATH 模式下构建的 Go 包的名称。这是将在 ${GOPATH}/src 中创建的目录。 如果没有明确设置, 并且存在 GH_SUBDIRGL_SUBDIR,则 GO_PKGNAME 将被推断出来。在模块感知模式下进行联编时不需要这个参数。

GO_TARGET

要构建的包。默认值是 ${GO_PKGNAME}GO_TARGET 也可以是 package:path 形式的元组,其中 path 可以是一个简单的文件名, 也可以是以 ${PREFIX} 开始的完整路径。

GO_TESTTARGET

要测试的包。默认值是 ./...(当前包和所有子包)。

CGO_CFLAGS

额外的 CFLAGS 值,将由 go 传递给 C 编译器。

CGO_LDFLAGS

额外的 LDFLAGS 值,将由 go 传递给 C 编译器。

GO_BUILDFLAGS

传递给 go build 的附加构建参数。

GO_TESTFLAGS

传递给 go test 的额外构建参数。

请参阅构建 Go 应用程序以了解使用实例。

最后更新于

FreeBSD 中文社区