diff options
author | Lukacs Berki <lberki@google.com> | 2015-02-24 10:48:38 +0000 |
---|---|---|
committer | Han-Wen Nienhuys <hanwen@google.com> | 2015-02-24 10:48:38 +0000 |
commit | 1b18ae9eb999c137e7e37fc2033514363c569d75 (patch) | |
tree | 4a83844d0c855039869b85207e49bf4e6ad1d9f1 /src/main/java/com/google/devtools/build/lib/rules | |
parent | 3f4d4e971e67dfd0956e408afb7b61352edb9827 (diff) |
Simplify the algorithm to compute top-level artifacts to build even more by creating a HIDDEN_TOP_LEVEL output group and putting the artifacts required for building runfiles there.
--
MOS_MIGRATED_REVID=87039530
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java index d85a6fa091..50654e6b67 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java @@ -19,7 +19,6 @@ import com.google.common.base.Predicate; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import com.google.devtools.build.lib.actions.Artifact; -import com.google.devtools.build.lib.analysis.AlwaysBuiltArtifactsProvider; import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode; import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder; @@ -232,7 +231,7 @@ public abstract class CcLibrary implements RuleConfiguredTargetFactory { CcLinkingOutputs linkedLibraries = info.getCcLinkingOutputsExcludingPrecompiledLibraries(); NestedSet<Artifact> artifactsToForce = - collectArtifactsToForce(ruleContext, common, info.getCcCompilationOutputs()); + collectHiddenTopLevelArtifacts(ruleContext, common, info.getCcCompilationOutputs()); NestedSetBuilder<Artifact> filesBuilder = NestedSetBuilder.stableOrder(); filesBuilder.addAll(LinkerInputs.toLibraryArtifacts(linkedLibraries.getStaticLibraries())); @@ -266,23 +265,23 @@ public abstract class CcLibrary implements RuleConfiguredTargetFactory { .add(CppRunfilesProvider.class, new CppRunfilesProvider(staticRunfiles, sharedRunfiles)) .add(ImplementedCcPublicLibrariesProvider.class, new ImplementedCcPublicLibrariesProvider(getImplementedCcPublicLibraries(ruleContext))) - .add(AlwaysBuiltArtifactsProvider.class, - new AlwaysBuiltArtifactsProvider(artifactsToForce)) - .addOutputGroup(TopLevelArtifactProvider.BASELINE_COVERAGE, - BaselineCoverageAction.getBaselineCoverageArtifacts( - ruleContext, instrumentedFilesProvider.getInstrumentedFiles())); + .addOutputGroup(TopLevelArtifactProvider.HIDDEN_TOP_LEVEL, artifactsToForce) + .addOutputGroup(TopLevelArtifactProvider.BASELINE_COVERAGE, BaselineCoverageAction + .getBaselineCoverageArtifacts(ruleContext, + instrumentedFilesProvider.getInstrumentedFiles())); } - private static NestedSet<Artifact> collectArtifactsToForce(RuleContext ruleContext, + private static NestedSet<Artifact> collectHiddenTopLevelArtifacts(RuleContext ruleContext, CcCommon common, CcCompilationOutputs ccCompilationOutputs) { // Ensure that we build all the dependencies, otherwise users may get confused. NestedSetBuilder<Artifact> artifactsToForceBuilder = NestedSetBuilder.stableOrder(); artifactsToForceBuilder.addTransitive( NestedSetBuilder.wrap(Order.STABLE_ORDER, common.getFilesToCompile(ccCompilationOutputs))); - for (AlwaysBuiltArtifactsProvider dep : - ruleContext.getPrerequisites("deps", Mode.TARGET, AlwaysBuiltArtifactsProvider.class)) { - artifactsToForceBuilder.addTransitive(dep.getArtifactsToAlwaysBuild()); + for (TopLevelArtifactProvider dep : + ruleContext.getPrerequisites("deps", Mode.TARGET, TopLevelArtifactProvider.class)) { + artifactsToForceBuilder.addTransitive( + dep.getOutputGroup(TopLevelArtifactProvider.HIDDEN_TOP_LEVEL)); } return artifactsToForceBuilder.build(); } |