diff options
author | 2016-02-25 13:12:00 +0000 | |
---|---|---|
committer | 2016-02-25 14:16:46 +0000 | |
commit | 7ed934b52e09891a13cae5454f3f0cf8203461a9 (patch) | |
tree | 4f9a83c2110d55c9523408c9713242625f77cd45 /src/main/java/com/google/devtools/build | |
parent | c944ac270677cb052753ed6521cbd659e2b5a5eb (diff) |
Make process_headers_in_dependencies work for cc_binary und cc_test targets.
--
MOS_MIGRATED_REVID=115550466
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java index b8c0727bee..4df20e40ac 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java @@ -608,6 +608,7 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { cppConfiguration.isLipoContextCollector(), cppConfiguration.processHeadersInDependencies(), CppHelper.usePic(ruleContext, false)); + NestedSet<Artifact> artifactsToForce = collectHiddenTopLevelArtifacts(ruleContext); builder .setFilesToBuild(filesToBuild) .add(CppCompilationContext.class, cppCompilationContext) @@ -630,11 +631,23 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { .addOutputGroup( OutputGroupProvider.TEMP_FILES, getTemps(cppConfiguration, ccCompilationOutputs)) .addOutputGroup(OutputGroupProvider.FILES_TO_COMPILE, filesToCompile) + .addOutputGroup(OutputGroupProvider.HIDDEN_TOP_LEVEL, artifactsToForce) .addOutputGroup( OutputGroupProvider.COMPILATION_PREREQUISITES, CcCommon.collectCompilationPrerequisites(ruleContext, cppCompilationContext)); } + private static NestedSet<Artifact> collectHiddenTopLevelArtifacts(RuleContext ruleContext) { + // Ensure that we build all the dependencies, otherwise users may get confused. + NestedSetBuilder<Artifact> artifactsToForceBuilder = NestedSetBuilder.stableOrder(); + for (OutputGroupProvider dep : + ruleContext.getPrerequisites("deps", Mode.TARGET, OutputGroupProvider.class)) { + artifactsToForceBuilder.addTransitive( + dep.getOutputGroup(OutputGroupProvider.HIDDEN_TOP_LEVEL)); + } + return artifactsToForceBuilder.build(); + } + private static NestedSet<Artifact> collectExecutionDynamicLibraryArtifacts( RuleContext ruleContext, List<LibraryToLink> executionDynamicLibraries) { |