aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib
diff options
context:
space:
mode:
authorGravatar Ulf Adams <ulfjack@google.com>2015-07-29 14:19:25 +0000
committerGravatar Lukacs Berki <lberki@google.com>2015-07-29 16:03:12 +0000
commitc68faf184631759724386aa53747bcdff03f5ed7 (patch)
tree9c7e590f9175b1fa1ff25efa8ea6f122ce812bcb /src/main/java/com/google/devtools/build/lib
parentbad588aebf2d1f2028fa85635720dc34fd7dbb37 (diff)
Move a method from CcCommon to CcBinary that is only called from there.
-- MOS_MIGRATED_REVID=99372555
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java71
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java63
2 files changed, 68 insertions, 66 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 bff7edf667..76081e2e09 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
@@ -45,6 +45,7 @@ import com.google.devtools.build.lib.rules.cpp.Link.LinkStaticness;
import com.google.devtools.build.lib.rules.cpp.Link.LinkTargetType;
import com.google.devtools.build.lib.rules.cpp.LinkerInputs.LibraryToLink;
import com.google.devtools.build.lib.rules.test.BaselineCoverageAction;
+import com.google.devtools.build.lib.rules.test.InstrumentedFilesProvider;
import com.google.devtools.build.lib.syntax.Label;
import com.google.devtools.build.lib.util.FileType;
import com.google.devtools.build.lib.util.FileTypeSet;
@@ -272,9 +273,9 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory {
}
RuleConfiguredTargetBuilder ruleBuilder = new RuleConfiguredTargetBuilder(ruleContext);
- common.addTransitiveInfoProviders(
- ruleBuilder, filesToBuild, ccCompilationOutputs, cppCompilationContext, linkingOutputs,
- dwoArtifacts, transitiveLipoInfo);
+ addTransitiveInfoProviders(
+ ruleContext, common, ruleBuilder, filesToBuild, ccCompilationOutputs, cppCompilationContext,
+ linkingOutputs, dwoArtifacts, transitiveLipoInfo);
Map<Artifact, IncludeScannable> scannableMap = new LinkedHashMap<>();
if (cppConfiguration.isLipoContextCollector()) {
@@ -604,4 +605,68 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory {
return NestedSetBuilder.emptySet(Order.STABLE_ORDER);
}
}
+
+ private static void addTransitiveInfoProviders(
+ RuleContext ruleContext,
+ CcCommon common,
+ RuleConfiguredTargetBuilder builder,
+ NestedSet<Artifact> filesToBuild,
+ CcCompilationOutputs ccCompilationOutputs,
+ CppCompilationContext cppCompilationContext,
+ CcLinkingOutputs linkingOutputs,
+ DwoArtifactsCollector dwoArtifacts,
+ TransitiveLipoInfoProvider transitiveLipoInfo) {
+ List<Artifact> instrumentedObjectFiles = new ArrayList<>();
+ instrumentedObjectFiles.addAll(ccCompilationOutputs.getObjectFiles(false));
+ instrumentedObjectFiles.addAll(ccCompilationOutputs.getObjectFiles(true));
+ builder
+ .setFilesToBuild(filesToBuild)
+ .add(CppCompilationContext.class, cppCompilationContext)
+ .add(TransitiveLipoInfoProvider.class, transitiveLipoInfo)
+ .add(CcExecutionDynamicLibrariesProvider.class,
+ new CcExecutionDynamicLibrariesProvider(collectExecutionDynamicLibraryArtifacts(
+ ruleContext, linkingOutputs.getExecutionDynamicLibraries())))
+ .add(CcNativeLibraryProvider.class, new CcNativeLibraryProvider(
+ collectTransitiveCcNativeLibraries(ruleContext, linkingOutputs.getDynamicLibraries())))
+ .add(InstrumentedFilesProvider.class, common.getInstrumentedFilesProvider(
+ instrumentedObjectFiles))
+ .add(CppDebugFileProvider.class, new CppDebugFileProvider(
+ dwoArtifacts.getDwoArtifacts(), dwoArtifacts.getPicDwoArtifacts()))
+ .addOutputGroup(OutputGroupProvider.TEMP_FILES, common.getTemps(ccCompilationOutputs))
+ .addOutputGroup(OutputGroupProvider.FILES_TO_COMPILE,
+ NestedSetBuilder.wrap(Order.STABLE_ORDER,
+ common.getFilesToCompile(ccCompilationOutputs)))
+ .addOutputGroup(OutputGroupProvider.COMPILATION_PREREQUISITES,
+ CcCommon.collectCompilationPrerequisites(ruleContext, cppCompilationContext));
+ }
+
+ private static NestedSet<Artifact> collectExecutionDynamicLibraryArtifacts(
+ RuleContext ruleContext,
+ List<LibraryToLink> executionDynamicLibraries) {
+ Iterable<Artifact> artifacts = LinkerInputs.toLibraryArtifacts(executionDynamicLibraries);
+ if (!Iterables.isEmpty(artifacts)) {
+ return NestedSetBuilder.wrap(Order.STABLE_ORDER, artifacts);
+ }
+
+ Iterable<CcExecutionDynamicLibrariesProvider> deps = ruleContext
+ .getPrerequisites("deps", Mode.TARGET, CcExecutionDynamicLibrariesProvider.class);
+
+ NestedSetBuilder<Artifact> builder = NestedSetBuilder.stableOrder();
+ for (CcExecutionDynamicLibrariesProvider dep : deps) {
+ builder.addTransitive(dep.getExecutionDynamicLibraryArtifacts());
+ }
+ return builder.build();
+ }
+
+ private static NestedSet<LinkerInput> collectTransitiveCcNativeLibraries(
+ RuleContext ruleContext,
+ List<? extends LinkerInput> dynamicLibraries) {
+ NestedSetBuilder<LinkerInput> builder = NestedSetBuilder.linkOrder();
+ builder.addAll(dynamicLibraries);
+ for (CcNativeLibraryProvider dep :
+ ruleContext.getPrerequisites("deps", Mode.TARGET, CcNativeLibraryProvider.class)) {
+ builder.addTransitive(dep.getTransitiveCcNativeLibraries());
+ }
+ return builder.build();
+ }
}
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 c4c49af695..a19e05feed 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
@@ -23,9 +23,7 @@ import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.AnalysisEnvironment;
import com.google.devtools.build.lib.analysis.AnalysisUtils;
import com.google.devtools.build.lib.analysis.FileProvider;
-import com.google.devtools.build.lib.analysis.OutputGroupProvider;
import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode;
-import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
@@ -151,24 +149,6 @@ public final class CcCommon {
return ruleContext.attributes().has(name, type);
}
- private static NestedSet<Artifact> collectExecutionDynamicLibraryArtifacts(
- RuleContext ruleContext,
- List<LibraryToLink> executionDynamicLibraries) {
- Iterable<Artifact> artifacts = LinkerInputs.toLibraryArtifacts(executionDynamicLibraries);
- if (!Iterables.isEmpty(artifacts)) {
- return NestedSetBuilder.wrap(Order.STABLE_ORDER, artifacts);
- }
-
- Iterable<CcExecutionDynamicLibrariesProvider> deps = ruleContext
- .getPrerequisites("deps", Mode.TARGET, CcExecutionDynamicLibrariesProvider.class);
-
- NestedSetBuilder<Artifact> builder = NestedSetBuilder.stableOrder();
- for (CcExecutionDynamicLibrariesProvider dep : deps) {
- builder.addTransitive(dep.getExecutionDynamicLibraryArtifacts());
- }
- return builder.build();
- }
-
/**
* Collects all .dwo artifacts in this target's transitive closure.
*/
@@ -211,18 +191,6 @@ public final class CcCommon {
return new TransitiveLipoInfoProvider(scannableBuilder.build());
}
- private NestedSet<LinkerInput> collectTransitiveCcNativeLibraries(
- RuleContext ruleContext,
- List<? extends LinkerInput> dynamicLibraries) {
- NestedSetBuilder<LinkerInput> builder = NestedSetBuilder.linkOrder();
- builder.addAll(dynamicLibraries);
- for (CcNativeLibraryProvider dep :
- ruleContext.getPrerequisites("deps", Mode.TARGET, CcNativeLibraryProvider.class)) {
- builder.addTransitive(dep.getTransitiveCcNativeLibraries());
- }
- return builder.build();
- }
-
/**
* Returns a list of ({@link Artifact}, {@link Label}) pairs. Each pair represents an input
* source file and the label of the rule that generates it (or the label of the source file
@@ -724,35 +692,4 @@ public final class CcCommon {
public static FeatureConfiguration configureFeatures(RuleContext ruleContext) {
return configureFeatures(ruleContext, ImmutableSet.<String>of(), ImmutableSet.<String>of());
}
-
- public void addTransitiveInfoProviders(RuleConfiguredTargetBuilder builder,
- NestedSet<Artifact> filesToBuild,
- CcCompilationOutputs ccCompilationOutputs,
- CppCompilationContext cppCompilationContext,
- CcLinkingOutputs linkingOutputs,
- DwoArtifactsCollector dwoArtifacts,
- TransitiveLipoInfoProvider transitiveLipoInfo) {
- List<Artifact> instrumentedObjectFiles = new ArrayList<>();
- instrumentedObjectFiles.addAll(ccCompilationOutputs.getObjectFiles(false));
- instrumentedObjectFiles.addAll(ccCompilationOutputs.getObjectFiles(true));
- builder
- .setFilesToBuild(filesToBuild)
- .add(CppCompilationContext.class, cppCompilationContext)
- .add(TransitiveLipoInfoProvider.class, transitiveLipoInfo)
- .add(CcExecutionDynamicLibrariesProvider.class,
- new CcExecutionDynamicLibrariesProvider(collectExecutionDynamicLibraryArtifacts(
- ruleContext, linkingOutputs.getExecutionDynamicLibraries())))
- .add(CcNativeLibraryProvider.class, new CcNativeLibraryProvider(
- collectTransitiveCcNativeLibraries(ruleContext, linkingOutputs.getDynamicLibraries())))
- .add(InstrumentedFilesProvider.class, getInstrumentedFilesProvider(
- instrumentedObjectFiles))
- .add(CppDebugFileProvider.class, new CppDebugFileProvider(
- dwoArtifacts.getDwoArtifacts(), dwoArtifacts.getPicDwoArtifacts()))
- .addOutputGroup(OutputGroupProvider.TEMP_FILES, getTemps(ccCompilationOutputs))
- .addOutputGroup(OutputGroupProvider.FILES_TO_COMPILE,
- NestedSetBuilder.wrap(Order.STABLE_ORDER, getFilesToCompile(ccCompilationOutputs)))
- .addOutputGroup(OutputGroupProvider.COMPILATION_PREREQUISITES,
- collectCompilationPrerequisites(ruleContext, cppCompilationContext));
-
- }
}