aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/embedded_tools.bzl
diff options
context:
space:
mode:
Diffstat (limited to 'src/embedded_tools.bzl')
-rw-r--r--src/embedded_tools.bzl50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/embedded_tools.bzl b/src/embedded_tools.bzl
new file mode 100644
index 0000000000..b36cc142cf
--- /dev/null
+++ b/src/embedded_tools.bzl
@@ -0,0 +1,50 @@
+# pylint: disable=g-bad-file-header
+# Copyright 2017 The Bazel Authors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http:#www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+"""Contains Skylark rules used to build the embedded_tools.zip."""
+
+def _embedded_tools(ctx):
+ # The list of arguments we pass to the script.
+ args_file = ctx.new_file(ctx.label.name + ".params")
+ ctx.file_action(output=args_file, content="\n".join([f.path for f in ctx.files.srcs]))
+ # Action to call the script.
+ ctx.action(
+ inputs=ctx.files.srcs,
+ outputs=[ctx.outputs.out],
+ arguments=[ctx.outputs.out.path, args_file.path],
+ progress_message="Creating embedded tools: %s" % ctx.outputs.out.short_path,
+ executable=ctx.executable.tool)
+
+embedded_tools = rule(
+ implementation=_embedded_tools,
+ attrs={
+ "srcs": attr.label_list(allow_files=True),
+ "out": attr.output(mandatory=True),
+ "tool": attr.label(executable=True, cfg="host", allow_files=True,
+ default=Label("//src:create_embedded_tools_sh"))
+ }
+)
+
+def _srcsfile(ctx):
+ ctx.file_action(
+ output=ctx.outputs.out,
+ content="\n".join([f.path for f in ctx.files.srcs]))
+
+srcsfile = rule(
+ implementation=_srcsfile,
+ attrs={
+ "srcs": attr.label_list(allow_files=True),
+ "out": attr.output(mandatory=True),
+ }
+)