aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaBinaryRule.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaTestRule.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyBinaryRule.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyLibraryRule.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyTestRule.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/RuleClass.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ExperimentalIosTestRule.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/IosApplicationRule.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/IosExtensionBinaryRule.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/IosExtensionRule.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcBinaryRule.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcBundleLibraryRule.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcImportRule.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryRule.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryRule.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcXcodeprojRule.java1
18 files changed, 28 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java
index dd09bea69b..2293beb98b 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java
@@ -699,6 +699,7 @@ public class BazelCppRuleClasses {
@Override
public RuleClass build(Builder builder, RuleDefinitionEnvironment env) {
return builder
+ .requiresConfigurationFragments(CppConfiguration.class)
.setImplicitOutputsFunction(CppRuleClasses.CC_BINARY_DEBUG_PACKAGE)
.override(attr("linkstatic", BOOLEAN).value(false))
.override(attr("stamp", TRISTATE).value(TriState.NO))
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaBinaryRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaBinaryRule.java
index f13c59b6bc..23d2a683da 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaBinaryRule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaBinaryRule.java
@@ -25,6 +25,8 @@ import com.google.devtools.build.lib.packages.Attribute;
import com.google.devtools.build.lib.packages.AttributeMap;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.packages.RuleClass.Builder;
+import com.google.devtools.build.lib.rules.java.JavaConfiguration;
+import com.google.devtools.build.lib.rules.java.Jvm;
/**
* Rule definition for the java_binary rule.
@@ -38,6 +40,7 @@ public final class BazelJavaBinaryRule implements RuleDefinition {
<code>Main.java</code>, then your name could be <code>Main</code>.
<!-- #END_BLAZE_RULE.NAME --> */
return builder
+ .requiresConfigurationFragments(JavaConfiguration.class, Jvm.class)
/* <!-- #BLAZE_RULE(java_binary).IMPLICIT_OUTPUTS -->
<ul>
<li><code><var>name</var>.jar</code>: A Java archive, containing the class files and other
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaTestRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaTestRule.java
index 1921d18a23..853a16bdab 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaTestRule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaTestRule.java
@@ -27,7 +27,9 @@ import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.packages.RuleClass.Builder;
import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType;
import com.google.devtools.build.lib.packages.TriState;
+import com.google.devtools.build.lib.rules.java.JavaConfiguration;
import com.google.devtools.build.lib.rules.java.JavaSemantics;
+import com.google.devtools.build.lib.rules.java.Jvm;
/**
* Rule definition for the java_test rule.
@@ -46,6 +48,7 @@ public final class BazelJavaTestRule implements RuleDefinition {
</ul>
<!-- #END_BLAZE_RULE.IMPLICIT_OUTPUTS --> */
return builder
+ .requiresConfigurationFragments(JavaConfiguration.class, Jvm.class)
.setImplicitOutputsFunction(BazelJavaRuleClasses.JAVA_BINARY_IMPLICIT_OUTPUTS)
.override(attr("main_class", STRING).value(JUNIT4_RUNNER))
.override(attr("stamp", TRISTATE).value(TriState.NO))
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyBinaryRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyBinaryRule.java
index d2f2c31e75..1d734edbb6 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyBinaryRule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyBinaryRule.java
@@ -19,6 +19,7 @@ import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
import com.google.devtools.build.lib.bazel.rules.BazelBaseRuleClasses;
import com.google.devtools.build.lib.bazel.rules.python.BazelPyRuleClasses.PyBinaryBaseRule;
import com.google.devtools.build.lib.packages.RuleClass;
+import com.google.devtools.build.lib.rules.python.PythonConfiguration;
/**
* Rule definition for the {@code py_binary} rule.
@@ -33,6 +34,7 @@ public final class BazelPyBinaryRule implements RuleDefinition {
<code>main.py</code>, then your name should be <code>main</code>.
<!-- #END_BLAZE_RULE.NAME --> */
return builder
+ .requiresConfigurationFragments(PythonConfiguration.class, BazelPythonConfiguration.class)
.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyLibraryRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyLibraryRule.java
index bc508960b2..42d83a0719 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyLibraryRule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyLibraryRule.java
@@ -21,6 +21,7 @@ import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
import com.google.devtools.build.lib.bazel.rules.python.BazelPyRuleClasses.PyBaseRule;
import com.google.devtools.build.lib.packages.RuleClass;
+import com.google.devtools.build.lib.rules.python.PythonConfiguration;
/**
* Rule definition for the {@code py_library} rule.
@@ -29,6 +30,7 @@ public final class BazelPyLibraryRule implements RuleDefinition {
@Override
public RuleClass build(RuleClass.Builder builder, RuleDefinitionEnvironment env) {
return builder
+ .requiresConfigurationFragments(PythonConfiguration.class)
/* <!-- #BLAZE_RULE(py_library).ATTRIBUTE(deps) -->
The list of other libraries to be linked in to the library target.
${SYNOPSIS}
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyTestRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyTestRule.java
index 38b2811c40..14e1d8e70e 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyTestRule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPyTestRule.java
@@ -25,6 +25,7 @@ import com.google.devtools.build.lib.bazel.rules.python.BazelPyRuleClasses.PyBin
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType;
import com.google.devtools.build.lib.packages.TriState;
+import com.google.devtools.build.lib.rules.python.PythonConfiguration;
/**
* Rule definition for the py_test rule.
@@ -33,6 +34,7 @@ public final class BazelPyTestRule implements RuleDefinition {
@Override
public RuleClass build(RuleClass.Builder builder, RuleDefinitionEnvironment env) {
return builder
+ .requiresConfigurationFragments(PythonConfiguration.class, BazelPythonConfiguration.class)
.override(attr("testonly", BOOLEAN).value(true)
.nonconfigurable("policy decision: should be consistent across configurations"))
/* <!-- #BLAZE_RULE(py_test).ATTRIBUTE(stamp) -->
diff --git a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
index e2bd958b48..2a48d87f42 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
@@ -1176,7 +1176,7 @@ public final class RuleClass {
*/
public boolean isLegalConfigurationFragment(Class<?> configurationFragment) {
// For now, we allow all rules that don't declare allowed fragments to access any fragment.
- // TODO(bazel-team): Declare fragment dependencies for all rules and remove this.
+ // TODO(bazel-team): All built-in rules declare fragments, but Skylark rules don't.
if (requiredConfigurationFragments.isEmpty()) {
return true;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
index 91eb7960c5..fa24bbbd87 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
@@ -314,6 +314,7 @@ public final class AndroidRuleClasses {
@Override
public RuleClass build(Builder builder, RuleDefinitionEnvironment environment) {
return builder
+ .requiresConfigurationFragments(AndroidConfiguration.class)
.setUndocumented()
// This is the Proguard that comes from the --proguard_top attribute.
.add(attr(":proguard", LABEL).cfg(HOST).value(PROGUARD).exec())
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ExperimentalIosTestRule.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ExperimentalIosTestRule.java
index 7bf6ec2993..8e1cbe57b1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ExperimentalIosTestRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ExperimentalIosTestRule.java
@@ -31,6 +31,7 @@ import com.google.devtools.build.lib.packages.ImplicitOutputsFunction;
import com.google.devtools.build.lib.packages.Rule;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType;
+import com.google.devtools.build.lib.rules.java.J2ObjcConfiguration;
import com.google.devtools.build.lib.syntax.Label;
import com.google.devtools.build.lib.util.FileType;
@@ -47,6 +48,7 @@ public final class ExperimentalIosTestRule implements RuleDefinition {
@Override
public RuleClass build(RuleClass.Builder builder, final RuleDefinitionEnvironment env) {
return builder
+ .requiresConfigurationFragments(ObjcConfiguration.class, J2ObjcConfiguration.class)
/*<!-- #BLAZE_RULE(experimental_ios_test).IMPLICIT_OUTPUTS -->
<ul>
<li><code><var>name</var>.ipa</code>: the test bundle as an
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/IosApplicationRule.java b/src/main/java/com/google/devtools/build/lib/rules/objc/IosApplicationRule.java
index 37a08c4530..b6074ce8f1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/IosApplicationRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/IosApplicationRule.java
@@ -35,6 +35,7 @@ public class IosApplicationRule implements RuleDefinition {
@Override
public RuleClass build(Builder builder, RuleDefinitionEnvironment env) {
return builder
+ .requiresConfigurationFragments(ObjcConfiguration.class)
/*<!-- #BLAZE_RULE(ios_application).IMPLICIT_OUTPUTS -->
<ul>
<li><code><var>name</var>.ipa</code>: the application bundle as an <code>.ipa</code>
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/IosExtensionBinaryRule.java b/src/main/java/com/google/devtools/build/lib/rules/objc/IosExtensionBinaryRule.java
index f5bbdeefe8..767e885aa4 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/IosExtensionBinaryRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/IosExtensionBinaryRule.java
@@ -19,6 +19,7 @@ import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.packages.RuleClass.Builder;
+import com.google.devtools.build.lib.rules.java.J2ObjcConfiguration;
/**
* Rule definition for ios_extension_binary.
@@ -27,6 +28,7 @@ public class IosExtensionBinaryRule implements RuleDefinition {
@Override
public RuleClass build(Builder builder, RuleDefinitionEnvironment env) {
return builder
+ .requiresConfigurationFragments(ObjcConfiguration.class, J2ObjcConfiguration.class)
/*<!-- #BLAZE_RULE(ios_extension_binary).IMPLICIT_OUTPUTS -->
<ul>
<li><code><var>name</var>.xcodeproj/project.pbxproj</code>: An Xcode project file which
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/IosExtensionRule.java b/src/main/java/com/google/devtools/build/lib/rules/objc/IosExtensionRule.java
index 76d6290561..6f677c7d6a 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/IosExtensionRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/IosExtensionRule.java
@@ -31,6 +31,7 @@ public class IosExtensionRule implements RuleDefinition {
@Override
public RuleClass build(Builder builder, RuleDefinitionEnvironment env) {
return builder
+ .requiresConfigurationFragments(ObjcConfiguration.class)
/*<!-- #BLAZE_RULE(ios_extension).IMPLICIT_OUTPUTS -->
<ul>
<li><code><var>name</var>.ipa</code>: the extension bundle as an <code>.ipa</code>
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcBinaryRule.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcBinaryRule.java
index 1b1fb62953..411cb60186 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcBinaryRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcBinaryRule.java
@@ -25,6 +25,7 @@ import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
import com.google.devtools.build.lib.packages.ImplicitOutputsFunction;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.packages.RuleClass.Builder;
+import com.google.devtools.build.lib.rules.java.J2ObjcConfiguration;
/**
* Rule definition for objc_binary.
@@ -35,6 +36,7 @@ public class ObjcBinaryRule implements RuleDefinition {
@Override
public RuleClass build(Builder builder, RuleDefinitionEnvironment env) {
return builder
+ .requiresConfigurationFragments(ObjcConfiguration.class, J2ObjcConfiguration.class)
/*<!-- #BLAZE_RULE(objc_binary).IMPLICIT_OUTPUTS -->
<ul>
<li><code><var>name</var>.ipa</code>: the application bundle as an <code>.ipa</code>
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcBundleLibraryRule.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcBundleLibraryRule.java
index 48df49cb29..515bd97ec9 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcBundleLibraryRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcBundleLibraryRule.java
@@ -27,6 +27,7 @@ public class ObjcBundleLibraryRule implements RuleDefinition {
@Override
public RuleClass build(Builder builder, RuleDefinitionEnvironment env) {
return builder
+ .requiresConfigurationFragments(ObjcConfiguration.class)
/*<!-- #BLAZE_RULE(objc_bundle_library).IMPLICIT_OUTPUTS -->
<ul>
<li><code><var>name</var>.xcodeproj/project.pbxproj</code>: An Xcode project file which
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcImportRule.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcImportRule.java
index 43cdb234f4..5187a27af6 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcImportRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcImportRule.java
@@ -31,6 +31,7 @@ public class ObjcImportRule implements RuleDefinition {
@Override
public RuleClass build(Builder builder, RuleDefinitionEnvironment environment) {
return builder
+ .requiresConfigurationFragments(ObjcConfiguration.class)
/*<!-- #BLAZE_RULE(objc_import).IMPLICIT_OUTPUTS -->
<ul>
<li><code><var>name</var>.xcodeproj/project.pbxproj</code>: An Xcode project file which
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryRule.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryRule.java
index 56f235bd90..62a72c4de0 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryRule.java
@@ -28,6 +28,7 @@ public class ObjcLibraryRule implements RuleDefinition {
@Override
public RuleClass build(Builder builder, RuleDefinitionEnvironment env) {
return builder
+ .requiresConfigurationFragments(ObjcConfiguration.class)
/*<!-- #BLAZE_RULE(objc_library).IMPLICIT_OUTPUTS -->
<ul>
<li><code><var>name</var>.xcodeproj/project.pbxproj</code>: An Xcode project file which
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryRule.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryRule.java
index c46dcbe76a..273a65baba 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibraryRule.java
@@ -46,6 +46,7 @@ public class ObjcProtoLibraryRule implements RuleDefinition {
@Override
public RuleClass build(Builder builder, final RuleDefinitionEnvironment env) {
return builder
+ .requiresConfigurationFragments(ObjcConfiguration.class)
/* <!-- #BLAZE_RULE(objc_proto_library).ATTRIBUTE(deps) -->
The directly depended upon proto_library rules.
${SYNOPSIS}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcXcodeprojRule.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcXcodeprojRule.java
index 8814b23433..395806e7ba 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcXcodeprojRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcXcodeprojRule.java
@@ -31,6 +31,7 @@ public class ObjcXcodeprojRule implements RuleDefinition {
@Override
public RuleClass build(Builder builder, RuleDefinitionEnvironment env) {
return builder
+ .requiresConfigurationFragments(ObjcConfiguration.class)
/*<!-- #BLAZE_RULE(objc_xcodeproj).IMPLICIT_OUTPUTS -->
<ul>
<li><code><var>name</var>.xcodeproj/project.pbxproj</code>: A combined Xcode project file