diff options
author | Janak Ramakrishnan <janakr@google.com> | 2016-04-13 20:32:22 +0000 |
---|---|---|
committer | Damien Martin-Guillerez <dmarting@google.com> | 2016-04-14 07:38:29 +0000 |
commit | f0a18846461d4b7ecc76c36a659ff1e37f93d7dc (patch) | |
tree | c6f9828a06f62c60af8109c3865cfcaac7b8db72 /src/main | |
parent | 04d46abcf4d0a0a4054372a3da9b8e76c573aee5 (diff) |
RELNOTES[INC]: Bazel warns if a cc rule's includes attribute points out of third_party.
I'm confused that Bazel has the concept of third_party, but as long as it does, let's exploit it.
--
MOS_MIGRATED_REVID=119779306
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/packages/RuleClass.java | 2 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java | 11 |
2 files changed, 12 insertions, 1 deletions
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 ed2ad3064c..18e69a270d 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 @@ -105,7 +105,7 @@ public final class RuleClass { public static final Function<? super Rule, Map<String, Label>> NO_EXTERNAL_BINDINGS = Functions.<Map<String, Label>>constant(ImmutableMap.<String, Label>of()); - private static final PathFragment THIRD_PARTY_PREFIX = new PathFragment("third_party"); + public static final PathFragment THIRD_PARTY_PREFIX = new PathFragment("third_party"); /** * A constraint for the package name of the Rule instances. diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java index 69763d4513..979c64599a 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java @@ -28,6 +28,7 @@ import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.packages.BuildType; +import com.google.devtools.build.lib.packages.RuleClass; import com.google.devtools.build.lib.rules.apple.Platform; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration; import com.google.devtools.build.lib.rules.cpp.CppConfiguration.DynamicMode; @@ -427,6 +428,16 @@ public final class CcCommon { + packageFragment + "'. This will be an error in the future"); // TODO(janakr): Add a link to a page explaining the problem and fixes? + } else if (!packageFragment.startsWith(RuleClass.THIRD_PARTY_PREFIX)) { + ruleContext.attributeWarning( + "includes", + "'" + + includesAttr + + "' resolves to '" + + includesPath + + "' not in '" + + RuleClass.THIRD_PARTY_PREFIX + + "'. This will be an error in the future"); } result.add(includesPath); result.add(ruleContext.getConfiguration().getGenfilesFragment().getRelative(includesPath)); |