Use ctx.executable to get references to the binaries. This fixes the build of Bazel with itself. Using ctx.file instead of executable may yield a reference of the form external/blahblah/ which does not exist in the file system. Using ctx.executable does point to the right binary. -- MOS_MIGRATED_REVID=114990955
diff --git a/tools/build_rules/genproto.bzl b/tools/build_rules/genproto.bzl index 4ba5463..47715df 100644 --- a/tools/build_rules/genproto.bzl +++ b/tools/build_rules/genproto.bzl
@@ -22,9 +22,9 @@ ctx.action( command=' '.join([ - "JAR='%s'" % ctx.file._jar.path, + "JAR='%s'" % ctx.executable._jar.path, "OUTPUT='%s'" % out.path, - "PROTO_COMPILER='%s'" % ctx.file._proto_compiler.path, + "PROTO_COMPILER='%s'" % ctx.executable._proto_compiler.path, "SOURCE='%s'" % ctx.file.src.path, ctx.executable._gensrcjar.path, ]), @@ -51,11 +51,13 @@ "_proto_compiler": attr.label( default = Label("@bazel_tools//third_party:protoc"), allow_files = True, + executable = True, single_file = True, ), "_jar": attr.label( default = Label("@bazel_tools//tools/jdk:jar"), allow_files = True, + executable = True, single_file = True, ), },