From 6c2f499b21e36c59d7da5e8b2e6c9b1804a36c64 Mon Sep 17 00:00:00 2001 From: Googler Date: Tue, 3 Apr 2018 12:48:14 -0700 Subject: 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 --- .../java/com/google/devtools/build/lib/rules/cpp/CcCommon.java | 1 + .../java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java | 1 + .../build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java | 7 ++++++- 3 files changed, 8 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3