diff options
author | asteinb <asteinb@google.com> | 2018-05-24 06:26:14 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-05-24 06:27:27 -0700 |
commit | 268dfbd070bfd20ae721cd2518f30f52f9b21024 (patch) | |
tree | c93f7510fcbc56d28d46a5488c7cdb00dbb3df86 /src/main/java/com/google/devtools/build/lib/skylarkbuildapi/FileProviderApi.java | |
parent | 2cb2ac6e9402ffa27f32880f52c13be60c631ff6 (diff) |
Expose FileProvider in skylarkbuildapi
The Android data Skylark API includes references to FileProvider. To move that
API to the skylarkbuildapi, we must first move this provider.
For more information about this migration, see
https://docs.google.com/document/d/1UDEpjP_qWQRYsPRvx7TOsdB8J4o5khfhzGcWplW7zzI/
RELNOTES: none
PiperOrigin-RevId: 197882296
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skylarkbuildapi/FileProviderApi.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skylarkbuildapi/FileProviderApi.java | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/FileProviderApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/FileProviderApi.java new file mode 100644 index 0000000000..da524123b2 --- /dev/null +++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/FileProviderApi.java @@ -0,0 +1,46 @@ +// Copyright 2014 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. + +package com.google.devtools.build.lib.skylarkbuildapi; + +import com.google.devtools.build.lib.collect.nestedset.NestedSet; +import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable; +import com.google.devtools.build.lib.skylarkinterface.SkylarkModule; +import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory; + +/** A representation of the concept "this builds these files". */ +@SkylarkModule( + name = "file_provider", + doc = "An interface for rules that provide files.", + category = SkylarkModuleCategory.PROVIDER) +public interface FileProviderApi { + + /** + * Returns the set of files that are the "output" of this rule. + * + * <p>The term "output" is somewhat hazily defined; it is vaguely the set of files that are passed + * on to dependent rules that list the rule in their {@code srcs} attribute and the set of files + * that are built when a rule is mentioned on the command line. It does <b>not</b> include the + * runfiles. + * + * <p>Note that the above definition is somewhat imprecise; in particular, when a rule is + * mentioned on the command line, some other files are also built and dependent rules are free to + * filter this set of files e.g. based on their extension. + * + * <p>Also, some rules may generate files that are not listed here by way of defining other + * implicit targets, for example, deploy jars. + */ + @SkylarkCallable(name = "files_to_build", documented = false, structField = true) + NestedSet<? extends FileApi> getFilesToBuild(); +} |