aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java
diff options
context:
space:
mode:
authorGravatar Cal Peyser <cpeyser@google.com>2016-08-17 19:11:59 +0000
committerGravatar Philipp Wollermann <philwo@google.com>2016-08-18 08:31:02 +0000
commit6f3e05cb3acaa9a2f15ae3a8e9ab626263d2aff6 (patch)
tree5592dc3a208d8ce27e0b5775b36ad0d965180aaf /src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java
parent4e9be54b134165e8df51b749f78a66bd592944a6 (diff)
Implement the fully link action in the OSX crosstool.
-- MOS_MIGRATED_REVID=130547971
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java29
1 files changed, 5 insertions, 24 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java
index 102b018802..4da2ff3eab 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java
@@ -85,7 +85,6 @@ import com.google.devtools.build.lib.rules.apple.Platform;
import com.google.devtools.build.lib.rules.apple.Platform.PlatformType;
import com.google.devtools.build.lib.rules.cpp.CppModuleMap;
import com.google.devtools.build.lib.rules.cpp.CppModuleMapAction;
-import com.google.devtools.build.lib.rules.cpp.LinkerInputs;
import com.google.devtools.build.lib.rules.objc.XcodeProvider.Builder;
import com.google.devtools.build.lib.rules.test.InstrumentedFilesCollector;
import com.google.devtools.build.lib.rules.test.InstrumentedFilesCollector.InstrumentationSpec;
@@ -1019,8 +1018,8 @@ public final class CompilationSupport {
throws InterruptedException {
Artifact outputArchive =
ruleContext.getImplicitOutputArtifact(CompilationSupport.FULLY_LINKED_LIB);
- ImmutableList<Artifact> objcLibraries = objcLibraries(objcProvider);
- ImmutableList<Artifact> ccLibraries = ccLibraries(objcProvider);
+ ImmutableList<Artifact> objcLibraries = objcProvider.getObjcLibraries();
+ ImmutableList<Artifact> ccLibraries = objcProvider.getCcLibraries();
ruleContext.registerAction(ObjcRuleClasses.spawnAppleEnvActionBuilder(
appleConfiguration, appleConfiguration.getSingleArchPlatform())
.setMnemonic("ObjcLink")
@@ -1214,8 +1213,8 @@ public final class CompilationSupport {
? intermediateArtifacts.unstrippedSingleArchitectureBinary()
: intermediateArtifacts.strippedSingleArchitectureBinary();
- ImmutableList<Artifact> objcLibraries = objcLibraries(objcProvider);
- ImmutableList<Artifact> ccLibraries = ccLibraries(objcProvider);
+ ImmutableList<Artifact> objcLibraries = objcProvider.getObjcLibraries();
+ ImmutableList<Artifact> ccLibraries = objcProvider.getCcLibraries();
ImmutableList<Artifact> bazelBuiltLibraries = Iterables.isEmpty(prunedJ2ObjcArchives)
? objcLibraries : substituteJ2ObjcPrunedLibraries(objcProvider);
CommandLine commandLine =
@@ -1274,24 +1273,6 @@ public final class CompilationSupport {
}
}
- private ImmutableList<Artifact> objcLibraries(ObjcProvider objcProvider) {
- ImmutableList.Builder<Artifact> objcLibraryBuilder = ImmutableList.builder();
- // JRE libraries must be ordered after all regular objc libraries.
- NestedSet<Artifact> jreLibs = objcProvider.get(ObjcProvider.JRE_LIBRARY);
- objcLibraryBuilder.addAll(Iterables.filter(
- objcProvider.get(LIBRARY), Predicates.not(Predicates.in(jreLibs.toSet()))));
- objcLibraryBuilder.addAll(jreLibs);
- return objcLibraryBuilder.build();
- }
-
- private ImmutableList<Artifact> ccLibraries(ObjcProvider objcProvider) {
- ImmutableList.Builder<Artifact> ccLibraryBuilder = ImmutableList.builder();
- for (LinkerInputs.LibraryToLink libraryToLink : objcProvider.get(ObjcProvider.CC_LIBRARY)) {
- ccLibraryBuilder.add(libraryToLink.getArtifact());
- }
- return ccLibraryBuilder.build();
- }
-
private ImmutableList<Artifact> j2objcPrunedLibraries(ObjcProvider objcProvider) {
ImmutableList.Builder<Artifact> j2objcPrunedLibraryBuilder = ImmutableList.builder();
for (Artifact j2objcLibrary : objcProvider.get(ObjcProvider.J2OBJC_LIBRARY)) {
@@ -1318,7 +1299,7 @@ public final class CompilationSupport {
ImmutableList.Builder<Artifact> libraries = new ImmutableList.Builder<>();
Set<Artifact> unprunedJ2ObjcLibs = objcProvider.get(ObjcProvider.J2OBJC_LIBRARY).toSet();
- for (Artifact library : objcLibraries(objcProvider)) {
+ for (Artifact library : objcProvider.getObjcLibraries()) {
// If we match an unpruned J2ObjC library, add the pruned version of the J2ObjC static library
// instead.
if (unprunedJ2ObjcLibs.contains(library)) {