diff options
author | 2016-08-17 19:11:59 +0000 | |
---|---|---|
committer | 2016-08-18 08:31:02 +0000 | |
commit | 6f3e05cb3acaa9a2f15ae3a8e9ab626263d2aff6 (patch) | |
tree | 5592dc3a208d8ce27e0b5775b36ad0d965180aaf /src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java | |
parent | 4e9be54b134165e8df51b749f78a66bd592944a6 (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.java | 29 |
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)) { |