建议:go/build:添加API以选择cgo标志

epggiuax  于 6个月前  发布在  Go
关注(0)|答案(5)|浏览(53)

虽然大多数Go程序员使用go工具,但还有其他构建系统,如Bazel。为了构建现有的Go代码,这些构建系统必须以与go工具相同的方式分析构建约束。对于大多数目的,可以通过调用go/build.*Context.MatchFile来实现。然而,有一个情况没有被该API处理:使用cgo的文件中的#cgo指令。在特殊的注解ad中出现一个#cgo directive,看起来像#cgo,是一个可选的构建约束、一个标志名、一个冒号和一个标志列表。像Bazel这样的构建工具需要一种机制,将使用cgo的文件返回适用于当前环境的任何#cgo标志。目前,这些工具必须通过自己重新创建构建约束评估过程来实现这一点。go/build包已经包含了为go工具执行此操作的代码,但它没有以可用的形式暴露;它只作为创建go/build.Package的一部分暴露,但这假设了go工具使用的目录布局,而不是Bazel。
我建议我们向go/build添加一个新的导出方法,类似于现有的saveCgo方法。

z8dt9xmd

z8dt9xmd2#

此建议已添加到建议项目中的活动列,并将在每周的建议审查会议上进行审查。
— rsc 建议审查组

u3r8eeie

u3r8eeie3#

等待@matloob确定API提案。

xghobddn

xghobddn4#

让我们将此暂停,以便更新API提案。

zz2j4svz

zz2j4svz5#

已挂起

— rsc提案审查组

相关问题