diff options
Diffstat (limited to 'src')
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 |