aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2018-04-03 12:48:14 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-03 12:49:36 -0700
commit6c2f499b21e36c59d7da5e8b2e6c9b1804a36c64 (patch)
tree6fd9f8a8130fc5d9faa128f74cba99b40c6a811d
parentdb0b36404771204ab7e6f776ba704e7af7aff463 (diff)
Also add blaze-bin directory for "includes" attribute
This fixes cc_library rules for third-party packages using generated headers in blaze-bin. RELNOTES: None. PiperOrigin-RevId: 191485462
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java1
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java1
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java7
3 files changed, 8 insertions, 1 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 dbca6e6571..29654dece5 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
@@ -591,6 +591,7 @@ public final class CcCommon {
}
result.add(includesPath);
result.add(ruleContext.getConfiguration().getGenfilesFragment().getRelative(includesPath));
+ result.add(ruleContext.getConfiguration().getBinFragment().getRelative(includesPath));
}
return result;
}
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java
index 25ef4feea1..0db2c639ee 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java
@@ -448,6 +448,7 @@ public class CcCommonTest extends BuildViewTestCase {
.addAll(noIncludes.get(CcCompilationContextInfo.PROVIDER).getSystemIncludeDirs())
.add(PathFragment.create(includesRoot))
.add(targetConfig.getGenfilesFragment().getRelative(includesRoot))
+ .add(targetConfig.getBinFragment().getRelative(includesRoot))
.build();
assertThat(foo.get(CcCompilationContextInfo.PROVIDER).getSystemIncludeDirs())
.containsExactlyElementsIn(expected);
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java
index 3f36df1acf..18a11f389e 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java
@@ -1007,6 +1007,7 @@ public class CcLibraryConfiguredTargetTest extends BuildViewTestCase {
ConfiguredTarget target = getConfiguredTarget("//foo");
CppCompileAction action = getCppCompileAction(target);
String genfilesDir = getConfiguration(target).getGenfilesFragment().toString();
+ String binDir = getConfiguration(target).getBinFragment().toString();
// Local include paths come first.
assertContainsSublist(
action.getCompilerOptions(),
@@ -1016,9 +1017,13 @@ public class CcLibraryConfiguredTargetTest extends BuildViewTestCase {
"-isystem",
genfilesDir + "/foo/foo",
"-isystem",
+ binDir + "/foo/foo",
+ "-isystem",
"foo/bar",
"-isystem",
- genfilesDir + "/foo/bar"));
+ genfilesDir + "/foo/bar",
+ "-isystem",
+ binDir + "/foo/bar"));
}
@Test