From feed478ca1422102b9bc8205d92f7c988f5b4826 Mon Sep 17 00:00:00 2001 From: Kristina Chodorow Date: Tue, 14 Apr 2015 13:27:50 +0000 Subject: Use fully qualified paths for C++ includes This fixes https://github.com/google/bazel/issues/66. -- MOS_MIGRATED_REVID=91083724 --- .../java/com/google/devtools/build/lib/rules/cpp/CcCommon.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java') 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 377da77fa2..d847353cbb 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 @@ -526,14 +526,14 @@ public final class CcCommon { List result = new ArrayList<>(); // The package directory of the rule contributes includes. Note that this also covers all // non-subpackage sub-directories. - PathFragment rulePackage = ruleContext.getLabel().getPackageFragment(); + PathFragment rulePackage = ruleContext.getLabel().getPackageIdentifier().getPathFragment(); result.add(rulePackage); // Gather up all the dirs from the rule's srcs as well as any of the srcs outputs. if (hasAttribute("srcs", Type.LABEL_LIST)) { for (FileProvider src : ruleContext.getPrerequisites("srcs", Mode.TARGET, FileProvider.class)) { - PathFragment packageDir = src.getLabel().getPackageFragment(); + PathFragment packageDir = src.getLabel().getPackageIdentifier().getPathFragment(); for (Artifact a : src.getFilesToBuild()) { result.add(packageDir); // Attempt to gather subdirectories that might contain include files. @@ -544,7 +544,8 @@ public final class CcCommon { // Add in any 'includes' attribute values as relative path fragments if (ruleContext.getRule().isAttributeValueExplicitlySpecified("includes")) { - PathFragment packageFragment = ruleContext.getLabel().getPackageFragment(); + PathFragment packageFragment = ruleContext.getLabel().getPackageIdentifier() + .getPathFragment(); // For now, anything with an 'includes' needs a blanket declaration result.add(packageFragment.getRelative("**")); } @@ -570,7 +571,7 @@ public final class CcCommon { private List getIncludeDirsFromIncludesAttribute() { List result = new ArrayList<>(); - PathFragment packageFragment = ruleContext.getLabel().getPackageFragment(); + PathFragment packageFragment = ruleContext.getLabel().getPackageIdentifier().getPathFragment(); for (String includesAttr : ruleContext.attributes().get("includes", Type.STRING_LIST)) { includesAttr = ruleContext.expandMakeVariables("includes", includesAttr); if (includesAttr.startsWith("/")) { -- cgit v1.2.3