diff options
author | Manuel Klimek <klimek@google.com> | 2016-02-04 10:30:08 +0000 |
---|---|---|
committer | David Chen <dzc@google.com> | 2016-02-04 18:13:38 +0000 |
commit | 7ce3a4c734c004c325ac5f7c01b2a40b501e612c (patch) | |
tree | b4c02b7ef6cf18d70e5f7db83d21572ecf65d13e | |
parent | 4134802747a8d3102c605109b33eacbe3537848d (diff) |
Add additional inputs as compilation prerequisites. Tools that build
with --compilation_prerequisites_only do rely on all prerequisites being
available.
RELNOTES: Make C++ modules compatible with tools using --compilation_prerequisites_only
--
MOS_MIGRATED_REVID=113829249
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java | 1 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java | 21 |
2 files changed, 21 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 029a178611..f17766cb18 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 @@ -433,6 +433,7 @@ public final class CcCommon { } } prerequisites.addTransitive(context.getDeclaredIncludeSrcs()); + prerequisites.addTransitive(context.getAdditionalInputs()); return prerequisites.build(); } 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 5d8c0fce4c..8f5f91eb33 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 @@ -263,6 +263,25 @@ public class CcLibraryConfiguredTargetTest extends BuildViewTestCase { } @Test + public void testBuildHeaderModulesAsPrerequisites() throws Exception { + AnalysisMock.get() + .ccSupport() + .setupCrosstool(mockToolsConfig, MockCcSupport.HEADER_MODULES_FEATURE_CONFIGURATION); + useConfiguration(); + ConfiguredTarget x = + scratchConfiguredTarget( + "foo", + "x", + "package(features = ['header_modules'])", + "cc_library(name = 'x', srcs = ['x.cc'], deps = [':y'])", + "cc_library(name = 'y', hdrs = ['y.h'])"); + assertThat( + ActionsTestUtil.baseNamesOf( + getOutputGroup(x, OutputGroupProvider.COMPILATION_PREREQUISITES))) + .isEqualTo("y.h y.pic.pcm y.cppmap stl.cppmap crosstool.cppmap x.cppmap x.cc"); + } + + @Test public void testDisablingHeaderModulesWhenDependingOnModuleBuildTransitively() throws Exception { AnalysisMock.get() .ccSupport() @@ -666,7 +685,7 @@ public class CcLibraryConfiguredTargetTest extends BuildViewTestCase { assertThat(artifactsToStrings(getFilesToBuild(hello))) .doesNotContain("src precompiled/missing.a"); } - + @Test public void testAllowDuplicateNonCompiledSources() throws Exception { ConfiguredTarget x = |