pleasew build error
Jwinf opened this issue · 1 comments
It appears that you have not added the shell plugin to your project, so the sh_binary
and related rules are not defined.
TLDR: run plz init plugin shell
This should set everything up for you. Alternatively, you can do what it does manually, if you want more control.
Essentially, you need to create a BUILD
file, that defines each plugin you wish to use in your project. The init command creates a plugins/BUILD
file, although you can change this as long as you edit your .plzconfig
to suit.
In your case, to this file, you would add
plugin_repo(
name = "shell",
revision = "v0.2.0",
plugin = "shell-rules",
owner = "please-build",
)
See https://github.com/please-build for the list of options of other plugins that are offered by the please devs. Of course, you can also use rules that other people have made as well, where the owner
is the username, plugin
is the repo name, revision
is the branch or release name and name
is the name you want to locally refer to the plugin as.
Finally, you will need to edit your .plzconfig
file to add the lines
[parse]
preloadsubincludes = ///shell//build_defs:shell
[Plugin "shell"]
Target = //plugins:shell
Here, the Target=
line defines where to find the plugin definition, formatted as a please file path. If you place your plugin rules somewhere else, you will need to adjust this line.
The preloadsubincludes=
line is optional, but if you leave this out, you will have to add subinclude("///shell//build_defs:shell")
to every file that uses the shell rules. Sometimes this is useful if you have name clashes between different plugins.