diff options
author | 2016-04-19 13:13:29 +0000 | |
---|---|---|
committer | 2016-04-19 13:52:13 +0000 | |
commit | 68e5335b1ec05cffcb08cef552d9d0a2c5d41397 (patch) | |
tree | f81804c1a4f4047338f91c3f7975e428d1375d93 /src/main/java/com/google/devtools/build/lib/rules | |
parent | 10993fe27a62d5a4e683a206291c1bd44a492daf (diff) |
Allow external repositories to have includes attributes that point to packages not in third_party. We don't need to police users' external repositories.
Fixes #1151
--
MOS_MIGRATED_REVID=120222222
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java | 7 |
1 files changed, 5 insertions, 2 deletions
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 f9a935a9eb..6190ad10a5 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 @@ -27,6 +27,7 @@ import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode; import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.analysis.TransitiveInfoCollection; import com.google.devtools.build.lib.cmdline.Label; +import com.google.devtools.build.lib.cmdline.PackageIdentifier; 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; @@ -398,7 +399,8 @@ public final class CcCommon { private List<PathFragment> getIncludeDirsFromIncludesAttribute() { List<PathFragment> result = new ArrayList<>(); - PathFragment packageFragment = ruleContext.getLabel().getPackageIdentifier().getPathFragment(); + PackageIdentifier packageIdentifier = ruleContext.getLabel().getPackageIdentifier(); + PathFragment packageFragment = packageIdentifier.getPathFragment(); for (String includesAttr : ruleContext.attributes().get("includes", Type.STRING_LIST)) { includesAttr = ruleContext.expandMakeVariables("includes", includesAttr); if (includesAttr.startsWith("/")) { @@ -430,7 +432,8 @@ 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)) { + } else if (packageIdentifier.getRepository().isMain() + && !includesPath.startsWith(RuleClass.THIRD_PARTY_PREFIX)) { ruleContext.attributeWarning( "includes", "'" |