aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
authorGravatar Janak Ramakrishnan <janakr@google.com>2016-04-13 20:32:22 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-04-14 07:38:29 +0000
commitf0a18846461d4b7ecc76c36a659ff1e37f93d7dc (patch)
treec6f9828a06f62c60af8109c3865cfcaac7b8db72 /src/main
parent04d46abcf4d0a0a4054372a3da9b8e76c573aee5 (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.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java11
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));