C++: Rename LibraryToLinkWrapper to LibraryToLink RELNOTES:none PiperOrigin-RevId: 233719947
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCcModule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCcModule.java index f6d58e4..66fe2d8 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCcModule.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCcModule.java
@@ -26,8 +26,8 @@ import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration; import com.google.devtools.build.lib.rules.cpp.CcToolchainProvider; import com.google.devtools.build.lib.rules.cpp.CcToolchainVariables; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper.CcLinkingContext; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink.CcLinkingContext; import com.google.devtools.build.lib.skylarkbuildapi.cpp.BazelCcModuleApi; import com.google.devtools.build.lib.syntax.EvalException; import com.google.devtools.build.lib.syntax.Runtime; @@ -50,7 +50,7 @@ CcCompilationOutputs, LinkingInfo, CcLinkingContext, - LibraryToLinkWrapper, + LibraryToLink, CcToolchainVariables, CcToolchainConfigInfo> {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java index d8fd5be..7a84702 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java
@@ -49,8 +49,8 @@ import com.google.devtools.build.lib.rules.android.ZipFilterBuilder.CheckHashMismatchMode; import com.google.devtools.build.lib.rules.android.databinding.DataBindingContext; import com.google.devtools.build.lib.rules.cpp.CcInfo; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper.CcLinkingContext; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper.CcLinkingContext.LinkOptions; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink.CcLinkingContext; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink.CcLinkingContext.LinkOptions; import com.google.devtools.build.lib.rules.java.ClasspathConfiguredFragment; import com.google.devtools.build.lib.rules.java.JavaCcLinkParamsProvider; import com.google.devtools.build.lib.rules.java.JavaCommon;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/NativeLibs.java b/src/main/java/com/google/devtools/build/lib/rules/android/NativeLibs.java index 3187e82..0dbf12b 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/NativeLibs.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/NativeLibs.java
@@ -38,7 +38,7 @@ import com.google.devtools.build.lib.rules.cpp.CcToolchainProvider; import com.google.devtools.build.lib.rules.cpp.CppHelper; import com.google.devtools.build.lib.rules.cpp.CppSemantics; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink; import com.google.devtools.build.lib.rules.nativedeps.NativeDepsHelper; import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData; import com.google.devtools.build.lib.vfs.PathFragment; @@ -246,13 +246,13 @@ } private static Iterable<Artifact> filterUniqueSharedLibraries( - RuleContext ruleContext, Artifact linkedLibrary, NestedSet<LibraryToLinkWrapper> libraries) { + RuleContext ruleContext, Artifact linkedLibrary, NestedSet<LibraryToLink> libraries) { Map<String, Artifact> basenames = new HashMap<>(); Set<Artifact> artifacts = new HashSet<>(); if (linkedLibrary != null) { basenames.put(linkedLibrary.getExecPath().getBaseName(), linkedLibrary); } - for (LibraryToLinkWrapper linkerInput : libraries) { + for (LibraryToLink linkerInput : libraries) { if (linkerInput.getPicStaticLibrary() != null || linkerInput.getStaticLibrary() != null) { // This is not a shared library and will not be loaded by Android, so skip it. continue;
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 5907c07..311ac76 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
@@ -59,8 +59,8 @@ import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration; import com.google.devtools.build.lib.rules.cpp.CppConfiguration.DynamicMode; import com.google.devtools.build.lib.rules.cpp.CppConfiguration.Tool; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper.CcLinkingContext; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper.CcLinkingContext.LinkOptions; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink.CcLinkingContext; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink.CcLinkingContext.LinkOptions; import com.google.devtools.build.lib.rules.cpp.Link.LinkTargetType; import com.google.devtools.build.lib.rules.cpp.Link.LinkingMode; import com.google.devtools.build.lib.syntax.Type; @@ -154,7 +154,7 @@ RuleContext ruleContext, FeatureConfiguration featureConfiguration, CcToolchainProvider toolchain, - List<LibraryToLinkWrapper> libraries, + List<LibraryToLink> libraries, CcLinkingOutputs ccLibraryLinkingOutputs, CcCompilationContext ccCompilationContext, Link.LinkingMode linkingMode, @@ -173,7 +173,7 @@ builder.addTransitiveArtifacts(transitiveArtifacts); // Add the shared libraries to the runfiles. This adds any shared libraries that are in the // srcs of this target. - builder.addArtifacts(LibraryToLinkWrapper.getDynamicLibrariesForRuntime(true, libraries)); + builder.addArtifacts(LibraryToLink.getDynamicLibrariesForRuntime(true, libraries)); builder.addRunfiles(ruleContext, RunfilesProvider.DEFAULT_RUNFILES); // TODO(plf): Why do we need .so files produced by cc_library in data dependencies of cc_binary? // This can probably be removed safely. @@ -401,7 +401,7 @@ ImmutableList.Builder<Artifact> objectFiles = ImmutableList.builder(); objectFiles.addAll(ccCompilationOutputs.getObjectFiles(false)); - for (LibraryToLinkWrapper library : depsCcLinkingContext.getLibraries()) { + for (LibraryToLink library : depsCcLinkingContext.getLibraries()) { if (isStaticMode || (library.getDynamicLibrary() == null && library.getInterfaceLibrary() == null)) { if (library.getPicStaticLibrary() != null) { @@ -435,8 +435,7 @@ pdbFile = ruleContext.getRelatedArtifact(binary.getRootRelativePath(), ".pdb"); } - NestedSetBuilder<LibraryToLinkWrapper> extraLinkTimeLibrariesNestedSet = - NestedSetBuilder.linkOrder(); + NestedSetBuilder<LibraryToLink> extraLinkTimeLibrariesNestedSet = NestedSetBuilder.linkOrder(); NestedSetBuilder<Artifact> extraLinkTimeRuntimeLibraries = NestedSetBuilder.linkOrder(); ExtraLinkTimeLibraries extraLinkTimeLibraries = @@ -479,10 +478,10 @@ CcLauncherInfo ccLauncherInfo = ccLinkingOutputsAndCcLinkingInfo.second; - LibraryToLinkWrapper ccLinkingOutputsBinaryLibrary = ccLinkingOutputsBinary.getLibraryToLink(); + LibraryToLink ccLinkingOutputsBinaryLibrary = ccLinkingOutputsBinary.getLibraryToLink(); Iterable<Artifact> fakeLinkerInputs = fake ? ccLinkingOutputsBinary.getLinkActionInputs() : ImmutableList.<Artifact>of(); - ImmutableList.Builder<LibraryToLinkWrapper> librariesBuilder = ImmutableList.builder(); + ImmutableList.Builder<LibraryToLink> librariesBuilder = ImmutableList.builder(); if (isLinkShared(ruleContext)) { if (ccLinkingOutputsBinaryLibrary != null) { librariesBuilder.add(ccLinkingOutputsBinaryLibrary); @@ -491,15 +490,15 @@ // Also add all shared libraries from srcs. for (Artifact library : precompiledFiles.getSharedLibraries()) { Artifact symlink = common.getDynamicLibrarySymlink(library, true); - LibraryToLinkWrapper libraryToLink = - LibraryToLinkWrapper.builder() + LibraryToLink libraryToLink = + LibraryToLink.builder() .setLibraryIdentifier(CcLinkingOutputs.libraryIdentifierOf(library)) .setDynamicLibrary(symlink) .setResolvedSymlinkDynamicLibrary(library) .build(); librariesBuilder.add(libraryToLink); } - ImmutableList<LibraryToLinkWrapper> libraries = librariesBuilder.build(); + ImmutableList<LibraryToLink> libraries = librariesBuilder.build(); NestedSet<Artifact> filesToBuild = NestedSetBuilder.create(Order.STABLE_ORDER, binary); // Create the stripped binary, but don't add it to filesToBuild; it's only built when requested. @@ -539,10 +538,9 @@ // all the dynamic libraries we need at runtime. Then copy these libraries next to the binary. if (featureConfiguration.isEnabled(CppRuleClasses.COPY_DYNAMIC_LIBRARIES_TO_BINARY)) { ImmutableList.Builder<Artifact> runtimeLibraries = ImmutableList.builder(); - for (LibraryToLinkWrapper libraryToLinkWrapper : depsCcLinkingContext.getLibraries()) { + for (LibraryToLink libraryToLink : depsCcLinkingContext.getLibraries()) { Artifact library = - libraryToLinkWrapper.getDynamicLibraryForRuntimeOrNull( - /* linkingStatically= */ isStaticMode); + libraryToLink.getDynamicLibraryForRuntimeOrNull(/* linkingStatically= */ isStaticMode); if (library != null) { runtimeLibraries.add(library); } @@ -614,7 +612,7 @@ } if (!ccLinkingOutputsBinary.isEmpty()) { - LibraryToLinkWrapper libraryToLink = ccLinkingOutputsBinary.getLibraryToLink(); + LibraryToLink libraryToLink = ccLinkingOutputsBinary.getLibraryToLink(); Artifact dynamicLibraryForLinking = null; if (libraryToLink.getInterfaceLibrary() != null) { if (libraryToLink.getResolvedSymlinkInterfaceLibrary() != null) { @@ -658,7 +656,7 @@ boolean fake, Artifact binary, CcLinkingContext depsCcLinkingContext, - NestedSet<LibraryToLinkWrapper> extraLinkTimeLibraries, + NestedSet<LibraryToLink> extraLinkTimeLibraries, boolean linkCompileOutputSeparately, CppSemantics cppSemantics, LinkingMode linkingMode, @@ -690,7 +688,7 @@ if (linkCompileOutputSeparately) { if (!ccLinkingOutputs.isEmpty()) { currentCcLinkingContextBuilder.addLibraries( - NestedSetBuilder.<LibraryToLinkWrapper>linkOrder() + NestedSetBuilder.<LibraryToLink>linkOrder() .add(ccLinkingOutputs.getLibraryToLink()) .build()); } @@ -701,32 +699,32 @@ // First libraries from srcs. Shared library artifacts here are substituted with mangled symlink // artifacts generated by getDynamicLibraryLink(). This is done to minimize number of -rpath // entries during linking process. - ImmutableList.Builder<LibraryToLinkWrapper> precompiledLibraries = ImmutableList.builder(); + ImmutableList.Builder<LibraryToLink> precompiledLibraries = ImmutableList.builder(); for (Artifact library : precompiledFiles.getLibraries()) { if (Link.SHARED_LIBRARY_FILETYPES.matches(library.getFilename())) { - LibraryToLinkWrapper libraryToLinkWrapper = - LibraryToLinkWrapper.builder() + LibraryToLink libraryToLink = + LibraryToLink.builder() .setLibraryIdentifier(CcLinkingOutputs.libraryIdentifierOf(library)) .setDynamicLibrary( common.getDynamicLibrarySymlink(library, /* preserveName= */ true)) .setResolvedSymlinkDynamicLibrary(library) .build(); - precompiledLibraries.add(libraryToLinkWrapper); + precompiledLibraries.add(libraryToLink); } else if (Link.LINK_LIBRARY_FILETYPES.matches(library.getFilename())) { - LibraryToLinkWrapper libraryToLinkWrapper = - LibraryToLinkWrapper.builder() + LibraryToLink libraryToLink = + LibraryToLink.builder() .setLibraryIdentifier(CcLinkingOutputs.libraryIdentifierOf(library)) .setStaticLibrary(library) .setAlwayslink(true) .build(); - precompiledLibraries.add(libraryToLinkWrapper); + precompiledLibraries.add(libraryToLink); } else if (Link.ARCHIVE_FILETYPES.matches(library.getFilename())) { - LibraryToLinkWrapper libraryToLinkWrapper = - LibraryToLinkWrapper.builder() + LibraryToLink libraryToLink = + LibraryToLink.builder() .setLibraryIdentifier(CcLinkingOutputs.libraryIdentifierOf(library)) .setStaticLibrary(library) .build(); - precompiledLibraries.add(libraryToLinkWrapper); + precompiledLibraries.add(libraryToLink); } else { throw new IllegalStateException(); } @@ -1032,7 +1030,7 @@ NestedSet<Artifact> filesToBuild, CcCompilationOutputs ccCompilationOutputs, CcCompilationContext ccCompilationContext, - List<LibraryToLinkWrapper> libraries, + List<LibraryToLink> libraries, DwoArtifactsCollector dwoArtifacts, boolean fake) { List<Artifact> instrumentedObjectFiles = new ArrayList<>(); @@ -1077,9 +1075,9 @@ CppHelper.maybeAddStaticLinkMarkerProvider(builder, ruleContext); } - private static NestedSet<LibraryToLinkWrapper> collectTransitiveCcNativeLibraries( - RuleContext ruleContext, List<LibraryToLinkWrapper> libraries) { - NestedSetBuilder<LibraryToLinkWrapper> builder = NestedSetBuilder.linkOrder(); + private static NestedSet<LibraryToLink> collectTransitiveCcNativeLibraries( + RuleContext ruleContext, List<LibraryToLink> libraries) { + NestedSetBuilder<LibraryToLink> builder = NestedSetBuilder.linkOrder(); builder.addAll(libraries); for (CcNativeLibraryProvider dep : ruleContext.getPrerequisites("deps", Mode.TARGET, CcNativeLibraryProvider.class)) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcImport.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcImport.java index 06f601a..f1bab33 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcImport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcImport.java
@@ -30,7 +30,7 @@ import com.google.devtools.build.lib.rules.cpp.CcCompilationHelper.CompilationInfo; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration; import com.google.devtools.build.lib.rules.cpp.CppConfiguration.HeadersCheckingMode; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper.CcLinkingContext; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink.CcLinkingContext; import com.google.devtools.build.lib.syntax.Type; import java.util.Map; import javax.annotation.Nullable; @@ -136,8 +136,8 @@ } if (notNullArtifactToLink != null) { - LibraryToLinkWrapper libraryToLinkWrapper = - LibraryToLinkWrapper.builder() + LibraryToLink libraryToLink = + LibraryToLink.builder() .setStaticLibrary(noPicAndPicStaticLibrary.noPicStaticLibrary()) .setPicStaticLibrary(noPicAndPicStaticLibrary.picStaticLibrary()) .setDynamicLibrary(sharedLibrary) @@ -149,10 +149,7 @@ .build(); ccLinkingContext = CcLinkingContext.builder() - .addLibraries( - NestedSetBuilder.<LibraryToLinkWrapper>linkOrder() - .add(libraryToLinkWrapper) - .build()) + .addLibraries(NestedSetBuilder.<LibraryToLink>linkOrder().add(libraryToLink).build()) .build(); }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcInfo.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcInfo.java index 15187b5..c0c20e4 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcInfo.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcInfo.java
@@ -21,7 +21,7 @@ import com.google.devtools.build.lib.events.Location; import com.google.devtools.build.lib.packages.BuiltinProvider; import com.google.devtools.build.lib.packages.NativeInfo; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper.CcLinkingContext; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink.CcLinkingContext; import com.google.devtools.build.lib.skylarkbuildapi.cpp.CcInfoApi; import com.google.devtools.build.lib.syntax.Environment; import com.google.devtools.build.lib.syntax.EvalException;
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 93d170e..ad6bba3 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
@@ -48,9 +48,8 @@ import com.google.devtools.build.lib.rules.cpp.CcCommon.CcFlagsSupplier; import com.google.devtools.build.lib.rules.cpp.CcCompilationHelper.CompilationInfo; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper.CcLinkingContext; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink.CcLinkingContext; 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.cpp.LinkerInputs.SolibLibraryToLink; import com.google.devtools.build.lib.syntax.EvalException; import com.google.devtools.build.lib.syntax.Type; @@ -341,8 +340,8 @@ * * Note that some target platforms do not require shared library code to be PIC. */ - ImmutableList<LibraryToLink> precompiledStaticLibraries = - ImmutableList.<LibraryToLink>builder() + ImmutableList<LinkerInputs.LibraryToLink> precompiledStaticLibraries = + ImmutableList.<LinkerInputs.LibraryToLink>builder() .addAll( LinkerInputs.opaqueLibrariesToLink( ArtifactCategory.STATIC_LIBRARY, precompiledFiles.getStaticLibraries())) @@ -352,8 +351,8 @@ precompiledFiles.getAlwayslinkStaticLibraries())) .build(); - ImmutableList<LibraryToLink> precompiledPicStaticLibraries = - ImmutableList.<LibraryToLink>builder() + ImmutableList<LinkerInputs.LibraryToLink> precompiledPicStaticLibraries = + ImmutableList.<LinkerInputs.LibraryToLink>builder() .addAll( LinkerInputs.opaqueLibrariesToLink( ArtifactCategory.STATIC_LIBRARY, precompiledFiles.getPicStaticLibraries())) @@ -363,7 +362,7 @@ precompiledFiles.getPicAlwayslinkLibraries())) .build(); - List<LibraryToLink> dynamicLibraries = + List<LinkerInputs.LibraryToLink> dynamicLibraries = ImmutableList.copyOf( Iterables.transform( precompiledFiles.getSharedLibraries(), @@ -384,8 +383,8 @@ ccCompilationOutputs, featureConfiguration)); } - List<LibraryToLinkWrapper> precompiledLibraries = - convertPrecompiledLibrariesToLibraryToLinkWrapper( + List<LibraryToLink> precompiledLibraries = + convertPrecompiledLibrariesToLibraryToLink( ruleContext.getFragment(CppConfiguration.class).forcePic(), precompiledStaticLibraries, precompiledPicStaticLibraries, @@ -396,19 +395,19 @@ ruleContext, ccLinkingOutputs, precompiledLibraries); } - ImmutableList<LibraryToLinkWrapper> libraryToLinkWrappers = - createLibraryToLinkWrappersList( + ImmutableList<LibraryToLink> libraryToLinks = + createLibrariesToLinkList( ccLinkingOutputs.getLibraryToLink(), precompiledLibraries, ccCompilationOutputs.isEmpty()); CcLinkingContext ccLinkingContext = - linkingHelper.buildCcLinkingContextFromLibraryToLinkWrappers( - neverLink ? ImmutableList.of() : libraryToLinkWrappers, + linkingHelper.buildCcLinkingContextFromLibrariesToLink( + neverLink ? ImmutableList.of() : libraryToLinks, compilationInfo.getCcCompilationContext()); CcNativeLibraryProvider ccNativeLibraryProvider = CppHelper.collectNativeCcLibraries( - ruleContext.getPrerequisites("deps", Mode.TARGET), libraryToLinkWrappers); + ruleContext.getPrerequisites("deps", Mode.TARGET), libraryToLinks); /* * We always generate a static library, even if there aren't any source files. @@ -421,7 +420,7 @@ NestedSetBuilder<Artifact> filesBuilder = NestedSetBuilder.stableOrder(); if (!ccLinkingOutputs.isEmpty()) { - LibraryToLinkWrapper artifactsToBuild = ccLinkingOutputs.getLibraryToLink(); + LibraryToLink artifactsToBuild = ccLinkingOutputs.getLibraryToLink(); if (artifactsToBuild.getStaticLibrary() != null) { filesBuilder.add(artifactsToBuild.getStaticLibrary()); } @@ -468,16 +467,14 @@ Runfiles.Builder defaultRunfiles = new Runfiles.Builder(ruleContext.getWorkspaceName()) .merge(runfiles) - .addArtifacts( - LibraryToLinkWrapper.getDynamicLibrariesForRuntime( - !neverLink, libraryToLinkWrappers)); + .addArtifacts(LibraryToLink.getDynamicLibrariesForRuntime(!neverLink, libraryToLinks)); Runfiles.Builder dataRunfiles = new Runfiles.Builder(ruleContext.getWorkspaceName()) .merge(runfiles) .addArtifacts( - LibraryToLinkWrapper.getDynamicLibrariesForRuntime( - /* linkingStatically= */ false, libraryToLinkWrappers)); + LibraryToLink.getDynamicLibrariesForRuntime( + /* linkingStatically= */ false, libraryToLinks)); @SuppressWarnings("unchecked") CppDebugFileProvider cppDebugFileProvider = @@ -682,12 +679,12 @@ return outputGroups.build(); } - private static ImmutableList<LibraryToLinkWrapper> createLibraryToLinkWrappersList( - @Nullable LibraryToLinkWrapper outputLibrary, - List<LibraryToLinkWrapper> precompiledLibraries, + private static ImmutableList<LibraryToLink> createLibrariesToLinkList( + @Nullable LibraryToLink outputLibrary, + List<LibraryToLink> precompiledLibraries, boolean ccCompilationOutputsIsEmpty) { - ImmutableList.Builder<LibraryToLinkWrapper> libraryToLinkWrappers = ImmutableList.builder(); - libraryToLinkWrappers.addAll(precompiledLibraries); + ImmutableList.Builder<LibraryToLink> librariesToLink = ImmutableList.builder(); + librariesToLink.addAll(precompiledLibraries); // For cc_library if it contains precompiled libraries we link them. If it contains normal // sources we link them as well, if it doesn't contain normal sources, then we don't do @@ -699,11 +696,11 @@ && isContentsOfCcLinkingOutputsImplicitlyCreated( ccCompilationOutputsIsEmpty, outputLibrary == null))) { if (outputLibrary != null) { - libraryToLinkWrappers.add(outputLibrary); + librariesToLink.add(outputLibrary); } } - return libraryToLinkWrappers.build(); + return librariesToLink.build(); } private static boolean isContentsOfCcLinkingOutputsImplicitlyCreated( @@ -711,100 +708,100 @@ return ccCompilationOutputsIsEmpty && !ccLinkingOutputsIsEmpty; } - private static List<LibraryToLinkWrapper> convertPrecompiledLibrariesToLibraryToLinkWrapper( + private static List<LibraryToLink> convertPrecompiledLibrariesToLibraryToLink( boolean forcePic, - List<LibraryToLink> staticLibraries, - List<LibraryToLink> picStaticLibraries, - List<LibraryToLink> dynamicLibrariesForRuntime) { - ImmutableList.Builder<LibraryToLinkWrapper> libraryToLinkWrappers = ImmutableList.builder(); + List<LinkerInputs.LibraryToLink> staticLibraries, + List<LinkerInputs.LibraryToLink> picStaticLibraries, + List<LinkerInputs.LibraryToLink> dynamicLibrariesForRuntime) { + ImmutableList.Builder<LibraryToLink> librariesToLink = ImmutableList.builder(); Set<String> identifiersUsed = new HashSet<>(); // Here we hae an O(n^2) algorithm, the size of the inputs is never big though, we only work // here with the local libraries, none of the libraries of the transitive closure. - for (LibraryToLink staticLibrary : staticLibraries) { - LibraryToLinkWrapper.Builder libraryToLinkWrapperBuilder = LibraryToLinkWrapper.builder(); + for (LinkerInputs.LibraryToLink staticLibrary : staticLibraries) { + LibraryToLink.Builder libraryToLinkBuilder = LibraryToLink.builder(); String identifier = staticLibrary.getLibraryIdentifier(); - libraryToLinkWrapperBuilder.setLibraryIdentifier(identifier); - List<LibraryToLink> sameIdentifierPicStaticLibraries = + libraryToLinkBuilder.setLibraryIdentifier(identifier); + List<LinkerInputs.LibraryToLink> sameIdentifierPicStaticLibraries = picStaticLibraries.stream() .filter(x -> x.getLibraryIdentifier().equals(identifier)) .collect(ImmutableList.toImmutableList()); boolean hadPic = false; if (!sameIdentifierPicStaticLibraries.isEmpty()) { hadPic = true; - libraryToLinkWrapperBuilder.setPicStaticLibrary( + libraryToLinkBuilder.setPicStaticLibrary( sameIdentifierPicStaticLibraries.get(0).getArtifact()); } if (!forcePic || !hadPic) { - libraryToLinkWrapperBuilder.setStaticLibrary(staticLibrary.getArtifact()); + libraryToLinkBuilder.setStaticLibrary(staticLibrary.getArtifact()); } - List<LibraryToLink> sameIdentifierDynamicLibraries = + List<LinkerInputs.LibraryToLink> sameIdentifierDynamicLibraries = dynamicLibrariesForRuntime.stream() .filter(x -> x.getLibraryIdentifier().equals(identifier)) .collect(ImmutableList.toImmutableList()); if (!sameIdentifierDynamicLibraries.isEmpty()) { - LibraryToLink dynamicLibrary = sameIdentifierDynamicLibraries.get(0); - libraryToLinkWrapperBuilder.setDynamicLibrary(dynamicLibrary.getArtifact()); + LinkerInputs.LibraryToLink dynamicLibrary = sameIdentifierDynamicLibraries.get(0); + libraryToLinkBuilder.setDynamicLibrary(dynamicLibrary.getArtifact()); if (dynamicLibrary instanceof SolibLibraryToLink) { - libraryToLinkWrapperBuilder.setResolvedSymlinkDynamicLibrary( + libraryToLinkBuilder.setResolvedSymlinkDynamicLibrary( dynamicLibrary.getOriginalLibraryArtifact()); } } - libraryToLinkWrapperBuilder.setAlwayslink( + libraryToLinkBuilder.setAlwayslink( staticLibrary.getArtifactCategory() == ArtifactCategory.ALWAYSLINK_STATIC_LIBRARY); identifiersUsed.add(identifier); - libraryToLinkWrappers.add(libraryToLinkWrapperBuilder.build()); + librariesToLink.add(libraryToLinkBuilder.build()); } - for (LibraryToLink picStaticLibrary : picStaticLibraries) { + for (LinkerInputs.LibraryToLink picStaticLibrary : picStaticLibraries) { String identifier = picStaticLibrary.getLibraryIdentifier(); if (identifiersUsed.contains(identifier)) { continue; } - LibraryToLinkWrapper.Builder libraryToLinkWrapperBuilder = LibraryToLinkWrapper.builder(); - libraryToLinkWrapperBuilder.setPicStaticLibrary(picStaticLibrary.getArtifact()); - libraryToLinkWrapperBuilder.setLibraryIdentifier(identifier); - List<LibraryToLink> sameIdentifierDynamicLibraries = + LibraryToLink.Builder libraryToLinkBuilder = LibraryToLink.builder(); + libraryToLinkBuilder.setPicStaticLibrary(picStaticLibrary.getArtifact()); + libraryToLinkBuilder.setLibraryIdentifier(identifier); + List<LinkerInputs.LibraryToLink> sameIdentifierDynamicLibraries = dynamicLibrariesForRuntime.stream() .filter(x -> x.getLibraryIdentifier().equals(identifier)) .collect(ImmutableList.toImmutableList()); if (!sameIdentifierDynamicLibraries.isEmpty()) { - LibraryToLink dynamicLibrary = sameIdentifierDynamicLibraries.get(0); - libraryToLinkWrapperBuilder.setDynamicLibrary(dynamicLibrary.getArtifact()); + LinkerInputs.LibraryToLink dynamicLibrary = sameIdentifierDynamicLibraries.get(0); + libraryToLinkBuilder.setDynamicLibrary(dynamicLibrary.getArtifact()); if (dynamicLibrary instanceof SolibLibraryToLink) { - libraryToLinkWrapperBuilder.setResolvedSymlinkDynamicLibrary( + libraryToLinkBuilder.setResolvedSymlinkDynamicLibrary( dynamicLibrary.getOriginalLibraryArtifact()); } } - libraryToLinkWrapperBuilder.setAlwayslink( + libraryToLinkBuilder.setAlwayslink( picStaticLibrary.getArtifactCategory() == ArtifactCategory.ALWAYSLINK_STATIC_LIBRARY); identifiersUsed.add(identifier); - libraryToLinkWrappers.add(libraryToLinkWrapperBuilder.build()); + librariesToLink.add(libraryToLinkBuilder.build()); } - for (LibraryToLink dynamicLibrary : dynamicLibrariesForRuntime) { + for (LinkerInputs.LibraryToLink dynamicLibrary : dynamicLibrariesForRuntime) { String identifier = dynamicLibrary.getLibraryIdentifier(); if (identifiersUsed.contains(identifier)) { continue; } - LibraryToLinkWrapper.Builder libraryToLinkWrapperBuilder = LibraryToLinkWrapper.builder(); - libraryToLinkWrapperBuilder.setDynamicLibrary(dynamicLibrary.getArtifact()); - libraryToLinkWrapperBuilder.setLibraryIdentifier(identifier); + LibraryToLink.Builder libraryToLinkBuilder = LibraryToLink.builder(); + libraryToLinkBuilder.setDynamicLibrary(dynamicLibrary.getArtifact()); + libraryToLinkBuilder.setLibraryIdentifier(identifier); if (dynamicLibrary instanceof SolibLibraryToLink) { - libraryToLinkWrapperBuilder.setResolvedSymlinkDynamicLibrary( + libraryToLinkBuilder.setResolvedSymlinkDynamicLibrary( dynamicLibrary.getOriginalLibraryArtifact()); } - libraryToLinkWrappers.add(libraryToLinkWrapperBuilder.build()); + librariesToLink.add(libraryToLinkBuilder.build()); } - return libraryToLinkWrappers.build(); + return librariesToLink.build(); } private static void checkIfLinkOutputsCollidingWithPrecompiledFiles( RuleContext ruleContext, CcLinkingOutputs ccLinkingOutputs, - List<LibraryToLinkWrapper> precompiledLibraries) { + List<LibraryToLink> precompiledLibraries) { String identifier = ccLinkingOutputs.getLibraryToLink().getLibraryIdentifier(); - for (LibraryToLinkWrapper precompiledLibrary : precompiledLibraries) { + for (LibraryToLink precompiledLibrary : precompiledLibraries) { if (identifier.equals(precompiledLibrary.getLibraryIdentifier())) { ruleContext.ruleError( "Can't put library with identifier '"
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingHelper.java index ea32f44..47086bd 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingHelper.java
@@ -36,13 +36,12 @@ import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.ExpansionException; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration; import com.google.devtools.build.lib.rules.cpp.CcToolchainVariables.VariablesExtension; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper.CcLinkingContext; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper.CcLinkingContext.Linkstamp; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink.CcLinkingContext; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink.CcLinkingContext.Linkstamp; import com.google.devtools.build.lib.rules.cpp.Link.LinkTargetType; import com.google.devtools.build.lib.rules.cpp.Link.LinkerOrArchiver; import com.google.devtools.build.lib.rules.cpp.Link.LinkingMode; import com.google.devtools.build.lib.rules.cpp.Link.Picness; -import com.google.devtools.build.lib.rules.cpp.LinkerInputs.LibraryToLink; import com.google.devtools.build.lib.skylarkbuildapi.cpp.LinkingInfoApi; import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.PathFragment; @@ -342,8 +341,8 @@ return ccLinkingOutputs; } - public CcLinkingContext buildCcLinkingContextFromLibraryToLinkWrappers( - ImmutableCollection<LibraryToLinkWrapper> libraryToLinkWrappers, + public CcLinkingContext buildCcLinkingContextFromLibrariesToLink( + ImmutableCollection<LibraryToLink> libraryToLinks, CcCompilationContext ccCompilationContext) { NestedSetBuilder<Linkstamp> linkstampBuilder = NestedSetBuilder.stableOrder(); for (Artifact linkstamp : linkstamps.build()) { @@ -367,9 +366,7 @@ CcLinkingContext.LinkOptions.of( linkopts, ruleContext.getSymbolGenerator()))) .addLibraries( - NestedSetBuilder.<LibraryToLinkWrapper>linkOrder() - .addAll(libraryToLinkWrappers) - .build()) + NestedSetBuilder.<LibraryToLink>linkOrder().addAll(libraryToLinks).build()) .addNonCodeInputs( NestedSetBuilder.<Artifact>linkOrder().addAll(nonCodeLinkerInputs).build()) .addLinkstamps(linkstampBuilder.build()) @@ -403,7 +400,7 @@ staticLinkType.linkerOrArchiver() == LinkerOrArchiver.ARCHIVER, "can only handle static links"); - LibraryToLinkWrapper.Builder libraryToLinkBuilder = LibraryToLinkWrapper.builder(); + LibraryToLink.Builder libraryToLinkBuilder = LibraryToLink.builder(); boolean usePicForBinaries = CppHelper.usePicForBinaries(ccToolchain, featureConfiguration); boolean usePicForDynamicLibs = ccToolchain.usePicForDynamicLibraries(featureConfiguration); @@ -482,7 +479,7 @@ } private void createNoPicAndPicStaticLibraries( - LibraryToLinkWrapper.Builder libraryToLinkBuilder, + LibraryToLink.Builder libraryToLinkBuilder, boolean usePicForBinaries, boolean usePicForDynamicLibs, String libraryIdentifier, @@ -519,7 +516,7 @@ } if (createNoPicAction) { - LibraryToLink staticLibrary = + LinkerInputs.LibraryToLink staticLibrary = registerActionForStaticLibrary( staticLinkType, ccOutputs, /* usePic= */ false, libraryIdentifier) .getOutputLibrary(); @@ -544,7 +541,7 @@ ? LinkTargetType.ALWAYS_LINK_PIC_STATIC_LIBRARY : LinkTargetType.PIC_STATIC_LIBRARY; } - LibraryToLink picStaticLibrary = + LinkerInputs.LibraryToLink picStaticLibrary = registerActionForStaticLibrary( linkTargetTypeUsedForNaming, ccOutputs, /* usePic= */ true, libraryIdentifier) .getOutputLibrary(); @@ -584,7 +581,7 @@ private boolean createDynamicLibrary( CcLinkingOutputs.Builder ccLinkingOutputs, - LibraryToLinkWrapper.Builder libraryToLinkBuilder, + LibraryToLink.Builder libraryToLinkBuilder, boolean usePic, String libraryIdentifier, CcCompilationOutputs ccOutputs) @@ -670,8 +667,8 @@ if (shouldLinkTransitively) { CcLinkingContext ccLinkingContext = CcLinkingContext.merge(ccLinkingContexts); - List<LibraryToLink> libraries = - LibraryToLinkWrapper.convertLibraryToLinkWrapperListToLibraryToLinkList( + List<LinkerInputs.LibraryToLink> libraries = + LibraryToLink.convertLibraryToLinkListToLibraryToLinkList( ccLinkingContext.getLibraries(), linkingMode != LinkingMode.DYNAMIC, dynamicLinkType.isDynamicLibrary()); @@ -710,8 +707,8 @@ ccLinkingOutputs.addLinkActionInputs(dynamicLinkAction.getInputs()); actionConstructionContext.registerAction(dynamicLinkAction); - LibraryToLink dynamicLibrary = dynamicLinkAction.getOutputLibrary(); - LibraryToLink interfaceLibrary = dynamicLinkAction.getInterfaceOutputLibrary(); + LinkerInputs.LibraryToLink dynamicLibrary = dynamicLinkAction.getOutputLibrary(); + LinkerInputs.LibraryToLink interfaceLibrary = dynamicLinkAction.getInterfaceOutputLibrary(); // If shared library has neverlink=1, then leave it untouched. Otherwise, // create a mangled symlink for it and from now on reference it through
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingOutputs.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingOutputs.java index 2020700..3d8a689 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingOutputs.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingOutputs.java
@@ -18,7 +18,6 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSetMultimap; import com.google.devtools.build.lib.actions.Artifact; -import com.google.devtools.build.lib.rules.cpp.LinkerInputs.LibraryToLink; import com.google.devtools.build.lib.skylarkbuildapi.cpp.CcLinkingOutputsApi; import com.google.devtools.build.lib.vfs.FileSystemUtils; import javax.annotation.Nullable; @@ -28,13 +27,13 @@ public static final CcLinkingOutputs EMPTY = new Builder().build(); - @Nullable private final LibraryToLinkWrapper libraryToLink; + @Nullable private final LibraryToLink libraryToLink; private final ImmutableList<LtoBackendArtifacts> allLtoArtifacts; private final ImmutableList<Artifact> linkActionInputs; private CcLinkingOutputs( - LibraryToLinkWrapper libraryToLink, + LibraryToLink libraryToLink, ImmutableList<LtoBackendArtifacts> allLtoArtifacts, ImmutableList<Artifact> linkActionInputs) { this.libraryToLink = libraryToLink; @@ -44,7 +43,7 @@ @Override @Nullable - public LibraryToLinkWrapper getLibraryToLink() { + public LibraryToLink getLibraryToLink() { return libraryToLink; } @@ -64,11 +63,11 @@ * Gathers up a map from library identifiers to sets of LibraryToLink which share that library * identifier. */ - public static ImmutableSetMultimap<String, LibraryToLink> getLibrariesByIdentifier( - Iterable<LibraryToLink> inputs) { - ImmutableSetMultimap.Builder<String, LibraryToLink> result = + public static ImmutableSetMultimap<String, LinkerInputs.LibraryToLink> getLibrariesByIdentifier( + Iterable<LinkerInputs.LibraryToLink> inputs) { + ImmutableSetMultimap.Builder<String, LinkerInputs.LibraryToLink> result = new ImmutableSetMultimap.Builder<>(); - for (LibraryToLink library : inputs) { + for (LinkerInputs.LibraryToLink library : inputs) { Preconditions.checkNotNull(library.getLibraryIdentifier()); result.put(library.getLibraryIdentifier(), library); } @@ -97,7 +96,7 @@ } public static final class Builder { - private LibraryToLinkWrapper libraryToLink; + private LibraryToLink libraryToLink; // TODO(plf): Return a list of debug artifacts instead of lto back end artifacts and in that // same list return the .pdb file for Windows. @@ -109,7 +108,7 @@ return new CcLinkingOutputs(libraryToLink, allLtoArtifacts.build(), linkActionInputs.build()); } - public Builder setLibraryToLink(LibraryToLinkWrapper libraryToLink) { + public Builder setLibraryToLink(LibraryToLink libraryToLink) { this.libraryToLink = libraryToLink; return this; }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcModule.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcModule.java index 89b57ad..79f7fd9 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcModule.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcModule.java
@@ -52,7 +52,7 @@ import com.google.devtools.build.lib.rules.cpp.CcToolchainVariables.Expandable; import com.google.devtools.build.lib.rules.cpp.CcToolchainVariables.StringValueParser; import com.google.devtools.build.lib.rules.cpp.CppActionConfigs.CppPlatform; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper.CcLinkingContext; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink.CcLinkingContext; import com.google.devtools.build.lib.skylarkbuildapi.cpp.CcInfoApi; import com.google.devtools.build.lib.skylarkbuildapi.cpp.CcModuleApi; import com.google.devtools.build.lib.skylarkinterface.StarlarkContext; @@ -86,7 +86,7 @@ FeatureConfiguration, CcCompilationContext, CcLinkingContext, - LibraryToLinkWrapper, + LibraryToLink, CcToolchainVariables, SkylarkRuleContext, CcToolchainConfigInfo> { @@ -318,7 +318,7 @@ } /** - * This method returns a {@link LibraryToLinkWrapper} object that will be used to contain linking + * This method returns a {@link LibraryToLink} object that will be used to contain linking * artifacts and information for a single library that will later be used by a linking action. * * @param actionsObject SkylarkActionFactory @@ -333,7 +333,7 @@ * @throws InterruptedException */ @Override - public LibraryToLinkWrapper createLibraryLinkerInput( + public LibraryToLink createLibraryLinkerInput( Object actionsObject, Object featureConfigurationObject, Object ccToolchainProviderObject, @@ -457,7 +457,7 @@ "Must pass at least one of the following parameters: static_library, pic_static_library, " + "dynamic_library and interface_library."); } - return LibraryToLinkWrapper.builder() + return LibraryToLink.builder() .setLibraryIdentifier(CcLinkingOutputs.libraryIdentifierOf(notNullArtifactForIdentifier)) .setStaticLibrary(staticLibrary) .setPicStaticLibrary(picStaticLibrary) @@ -538,7 +538,7 @@ StarlarkContext context) throws EvalException { @SuppressWarnings("unchecked") - SkylarkList<LibraryToLinkWrapper> librariesToLink = + SkylarkList<LibraryToLink> librariesToLink = nullIfNone(librariesToLinkObject, SkylarkList.class); @SuppressWarnings("unchecked") SkylarkList<String> userLinkFlags = nullIfNone(userLinkFlagsObject, SkylarkList.class); @@ -698,16 +698,16 @@ .setNeverLink(neverLink); try { CcLinkingOutputs ccLinkingOutputs = CcLinkingOutputs.EMPTY; - ImmutableList<LibraryToLinkWrapper> libraryToLinkWrapper = ImmutableList.of(); + ImmutableList<LibraryToLink> libraryToLink = ImmutableList.of(); if (!ccCompilationOutputs.isEmpty()) { ccLinkingOutputs = helper.link(ccCompilationOutputs); if (!neverLink && !ccLinkingOutputs.isEmpty()) { - libraryToLinkWrapper = ImmutableList.of(ccLinkingOutputs.getLibraryToLink()); + libraryToLink = ImmutableList.of(ccLinkingOutputs.getLibraryToLink()); } } CcLinkingContext ccLinkingContext = - helper.buildCcLinkingContextFromLibraryToLinkWrappers( - libraryToLinkWrapper, CcCompilationContext.EMPTY); + helper.buildCcLinkingContextFromLibrariesToLink( + libraryToLink, CcCompilationContext.EMPTY); return new LinkingInfo(ccLinkingContext, ccLinkingOutputs); } catch (RuleErrorException e) { throw new EvalException(ruleContext.getRule().getLocation(), e);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcNativeLibraryProvider.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcNativeLibraryProvider.java index dee0276..b392cd7 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcNativeLibraryProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcNativeLibraryProvider.java
@@ -26,9 +26,9 @@ @Immutable @AutoCodec public final class CcNativeLibraryProvider implements TransitiveInfoProvider { - private final NestedSet<LibraryToLinkWrapper> transitiveCcNativeLibraries; + private final NestedSet<LibraryToLink> transitiveCcNativeLibraries; - public CcNativeLibraryProvider(NestedSet<LibraryToLinkWrapper> transitiveCcNativeLibraries) { + public CcNativeLibraryProvider(NestedSet<LibraryToLink> transitiveCcNativeLibraries) { this.transitiveCcNativeLibraries = transitiveCcNativeLibraries; } @@ -38,7 +38,7 @@ * * <p>In effect, returns all dynamic library (.so) artifacts provided by the transitive closure. */ - public NestedSet<LibraryToLinkWrapper> getTransitiveCcNativeLibraries() { + public NestedSet<LibraryToLink> getTransitiveCcNativeLibraries() { return transitiveCcNativeLibraries; } }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java index 37ec6bc..a15f078 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProvider.java
@@ -33,7 +33,7 @@ import com.google.devtools.build.lib.packages.RuleErrorConsumer; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration; import com.google.devtools.build.lib.rules.cpp.CppConfiguration.Tool; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper.CcLinkingContext; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink.CcLinkingContext; import com.google.devtools.build.lib.rules.cpp.Link.LinkingMode; import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.build.lib.skylarkbuildapi.cpp.CcToolchainProviderApi;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java index 2a1a466..3379d31 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java
@@ -55,8 +55,8 @@ import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException; import com.google.devtools.build.lib.packages.RuleErrorConsumer; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper.CcLinkingContext; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper.CcLinkingContext.Linkstamp; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink.CcLinkingContext; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink.CcLinkingContext.Linkstamp; import com.google.devtools.build.lib.rules.cpp.Link.LinkTargetType; import com.google.devtools.build.lib.rules.proto.ProtoInfo; import com.google.devtools.build.lib.shell.ShellUtils; @@ -849,8 +849,8 @@ } public static CcNativeLibraryProvider collectNativeCcLibraries( - List<? extends TransitiveInfoCollection> deps, List<LibraryToLinkWrapper> libraries) { - NestedSetBuilder<LibraryToLinkWrapper> result = NestedSetBuilder.linkOrder(); + List<? extends TransitiveInfoCollection> deps, List<LibraryToLink> libraries) { + NestedSetBuilder<LibraryToLink> result = NestedSetBuilder.linkOrder(); result.addAll(libraries); for (CcNativeLibraryProvider dep : AnalysisUtils.getProviders(deps, CcNativeLibraryProvider.class)) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java index 1d9ec67..fe51e2b 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java
@@ -46,12 +46,11 @@ import com.google.devtools.build.lib.rules.cpp.CppConfiguration.Tool; import com.google.devtools.build.lib.rules.cpp.CppLinkAction.LinkArtifactFactory; import com.google.devtools.build.lib.rules.cpp.LibrariesToLinkCollector.CollectedLibrariesToLink; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper.CcLinkingContext; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper.CcLinkingContext.Linkstamp; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink.CcLinkingContext; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink.CcLinkingContext.Linkstamp; import com.google.devtools.build.lib.rules.cpp.Link.LinkTargetType; import com.google.devtools.build.lib.rules.cpp.Link.LinkerOrArchiver; import com.google.devtools.build.lib.rules.cpp.Link.LinkingMode; -import com.google.devtools.build.lib.rules.cpp.LinkerInputs.LibraryToLink; import com.google.devtools.build.lib.syntax.EvalException; import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.PathFragment; @@ -112,9 +111,9 @@ // Keep these in sync with {@link Context}. private final Set<LinkerInput> objectFiles = new LinkedHashSet<>(); private final Set<Artifact> nonCodeInputs = new LinkedHashSet<>(); - private final NestedSetBuilder<LibraryToLink> libraries = NestedSetBuilder.linkOrder(); - private final NestedSetBuilder<LibraryToLinkWrapper> libraryToLinkWrappers = + private final NestedSetBuilder<LinkerInputs.LibraryToLink> libraries = NestedSetBuilder.linkOrder(); + private final NestedSetBuilder<LibraryToLink> librariesToLink = NestedSetBuilder.linkOrder(); private NestedSet<Artifact> linkerFiles = NestedSetBuilder.emptySet(Order.STABLE_ORDER); private Artifact runtimeMiddleman; private ArtifactCategory toolchainLibrariesType = null; @@ -220,10 +219,8 @@ return objectFiles; } - /** - * Returns linker inputs that are libraries. - */ - public NestedSetBuilder<LibraryToLink> getLibraries() { + /** Returns linker inputs that are libraries. */ + public NestedSetBuilder<LinkerInputs.LibraryToLink> getLibraries() { return libraries; } @@ -283,10 +280,12 @@ * Maps bitcode library files used by the LTO backends to the corresponding minimized bitcode file * used as input to the LTO indexing step. */ - private static NestedSet<LibraryToLink> computeLtoIndexingUniqueLibraries( - NestedSet<LibraryToLink> originalUniqueLibraries, boolean includeLinkStaticInLtoIndexing) { - NestedSetBuilder<LibraryToLink> uniqueLibrariesBuilder = NestedSetBuilder.linkOrder(); - for (LibraryToLink lib : originalUniqueLibraries) { + private static NestedSet<LinkerInputs.LibraryToLink> computeLtoIndexingUniqueLibraries( + NestedSet<LinkerInputs.LibraryToLink> originalUniqueLibraries, + boolean includeLinkStaticInLtoIndexing) { + NestedSetBuilder<LinkerInputs.LibraryToLink> uniqueLibrariesBuilder = + NestedSetBuilder.linkOrder(); + for (LinkerInputs.LibraryToLink lib : originalUniqueLibraries) { if (!lib.containsObjectFiles()) { uniqueLibrariesBuilder.add(lib); continue; @@ -332,7 +331,7 @@ if (!ltoCompilationContext.isEmpty()) { return true; } - for (LibraryToLink lib : libraries.build()) { + for (LinkerInputs.LibraryToLink lib : libraries.build()) { if (!lib.getLtoCompilationContext().isEmpty()) { return true; } @@ -410,11 +409,11 @@ private Iterable<LtoBackendArtifacts> createLtoArtifacts( PathFragment ltoOutputRootPrefix, - NestedSet<LibraryToLink> uniqueLibraries, + NestedSet<LinkerInputs.LibraryToLink> uniqueLibraries, boolean allowLtoIndexing, boolean includeLinkStaticInLtoIndexing) { Set<Artifact> compiled = new LinkedHashSet<>(); - for (LibraryToLink lib : uniqueLibraries) { + for (LinkerInputs.LibraryToLink lib : uniqueLibraries) { compiled.addAll(lib.getLtoCompilationContext().getBitcodeFiles()); } @@ -425,7 +424,7 @@ // statically linked, so we need to look at includeLinkStaticInLtoIndexing to decide whether // to include its objects in the LTO indexing for this target. if (includeLinkStaticInLtoIndexing) { - for (LibraryToLink lib : uniqueLibraries) { + for (LinkerInputs.LibraryToLink lib : uniqueLibraries) { if (!lib.containsObjectFiles()) { continue; } @@ -443,7 +442,7 @@ } ImmutableList.Builder<LtoBackendArtifacts> ltoOutputs = ImmutableList.builder(); - for (LibraryToLink lib : uniqueLibraries) { + for (LinkerInputs.LibraryToLink lib : uniqueLibraries) { if (!lib.containsObjectFiles()) { continue; } @@ -557,19 +556,18 @@ } } - private List<LibraryToLink> convertLibraryToLinkWrapperListToLibraryToLinkList( - NestedSet<LibraryToLinkWrapper> libraryToLinkWrappers) { - ImmutableList.Builder<LibraryToLink> librariesToLink = ImmutableList.builder(); - for (LibraryToLinkWrapper libraryToLinkWrapper : libraryToLinkWrappers) { - LibraryToLink staticLibraryToLink = - libraryToLinkWrapper.getStaticLibrary() == null + private List<LinkerInputs.LibraryToLink> convertLibraryToLinkListToLibraryToLinkList( + NestedSet<LibraryToLink> librariesToLink) { + ImmutableList.Builder<LinkerInputs.LibraryToLink> librariesToLinkBuilder = + ImmutableList.builder(); + for (LibraryToLink libraryToLink : librariesToLink) { + LinkerInputs.LibraryToLink staticLibraryToLink = + libraryToLink.getStaticLibrary() == null ? null : libraryToLink.getStaticLibraryToLink(); + LinkerInputs.LibraryToLink picStaticLibraryToLink = + libraryToLink.getPicStaticLibrary() == null ? null - : libraryToLinkWrapper.getStaticLibraryToLink(); - LibraryToLink picStaticLibraryToLink = - libraryToLinkWrapper.getPicStaticLibrary() == null - ? null - : libraryToLinkWrapper.getPicStaticLibraryToLink(); - LibraryToLink libraryToLinkToUse = null; + : libraryToLink.getPicStaticLibraryToLink(); + LinkerInputs.LibraryToLink libraryToLinkToUse = null; if (linkingMode == LinkingMode.STATIC) { if (linkType.isDynamicLibrary()) { if (picStaticLibraryToLink != null) { @@ -586,31 +584,30 @@ } } if (libraryToLinkToUse == null) { - if (libraryToLinkWrapper.getInterfaceLibrary() != null) { - libraryToLinkToUse = libraryToLinkWrapper.getInterfaceLibraryToLink(); - } else if (libraryToLinkWrapper.getDynamicLibrary() != null) { - libraryToLinkToUse = libraryToLinkWrapper.getDynamicLibraryToLink(); + if (libraryToLink.getInterfaceLibrary() != null) { + libraryToLinkToUse = libraryToLink.getInterfaceLibraryToLink(); + } else if (libraryToLink.getDynamicLibrary() != null) { + libraryToLinkToUse = libraryToLink.getDynamicLibraryToLink(); } } Preconditions.checkNotNull(libraryToLinkToUse); checkLibrary(libraryToLinkToUse); - librariesToLink.add(libraryToLinkToUse); + librariesToLinkBuilder.add(libraryToLinkToUse); } - return librariesToLink.build(); + return librariesToLinkBuilder.build(); } /** Builds the Action as configured and returns it. */ public CppLinkAction build() throws InterruptedException { - NestedSet<LibraryToLink> originalUniqueLibraries = null; + NestedSet<LinkerInputs.LibraryToLink> originalUniqueLibraries = null; - if (libraryToLinkWrappers.isEmpty()) { + if (librariesToLink.isEmpty()) { originalUniqueLibraries = libraries.build(); } else { Preconditions.checkState(libraries.isEmpty()); originalUniqueLibraries = - NestedSetBuilder.<LibraryToLink>linkOrder() - .addAll( - convertLibraryToLinkWrapperListToLibraryToLinkList(libraryToLinkWrappers.build())) + NestedSetBuilder.<LinkerInputs.LibraryToLink>linkOrder() + .addAll(convertLibraryToLinkListToLibraryToLinkList(librariesToLink.build())) .build(); } @@ -700,7 +697,7 @@ // Get the set of object files and libraries containing the correct // inputs for this link, depending on whether this is LTO indexing or // a native link. - NestedSet<LibraryToLink> uniqueLibraries; + NestedSet<LinkerInputs.LibraryToLink> uniqueLibraries; ImmutableSet<LinkerInput> objectFileInputs; ImmutableSet<LinkerInput> linkstampObjectFileInputs; if (isLtoIndexing) { @@ -737,7 +734,7 @@ .addAll(objectArtifacts) .addAll(linkstampObjectArtifacts) .build(); - final LibraryToLink outputLibrary = + final LinkerInputs.LibraryToLink outputLibrary = linkType.isExecutable() ? null : LinkerInputs.newInputLibrary( @@ -752,7 +749,7 @@ : LtoCompilationContext.EMPTY, createSharedNonLtoArtifacts(isLtoIndexing), /* mustKeepDebug= */ false); - final LibraryToLink interfaceOutputLibrary = + final LinkerInputs.LibraryToLink interfaceOutputLibrary = (interfaceOutput == null) ? null : LinkerInputs.newInputLibrary( @@ -1355,7 +1352,7 @@ return this; } - private void checkLibrary(LibraryToLink input) { + private void checkLibrary(LinkerInputs.LibraryToLink input) { String name = input.getArtifact().getFilename(); Preconditions.checkArgument( Link.ARCHIVE_LIBRARY_FILETYPES.matches(name) || Link.SHARED_LIBRARY_FILETYPES.matches(name), @@ -1368,7 +1365,7 @@ * library. Note that all directly added libraries are implicitly ordered before all nested sets * added with {@link #addLibraries}, even if added in the opposite order. */ - public CppLinkActionBuilder addLibrary(LibraryToLink input) { + public CppLinkActionBuilder addLibrary(LinkerInputs.LibraryToLink input) { checkLibrary(input); libraries.add(input); if (input.isMustKeepDebug()) { @@ -1381,9 +1378,9 @@ * Adds multiple artifact to the set of inputs. The artifacts must be archives or shared * libraries. */ - public CppLinkActionBuilder addLibraries(Iterable<LibraryToLink> inputs) { - Preconditions.checkState(libraryToLinkWrappers.isEmpty()); - for (LibraryToLink input : inputs) { + public CppLinkActionBuilder addLibraries(Iterable<LinkerInputs.LibraryToLink> inputs) { + Preconditions.checkState(librariesToLink.isEmpty()); + for (LinkerInputs.LibraryToLink input : inputs) { checkLibrary(input); if (input.isMustKeepDebug()) { mustKeepDebug = true; @@ -1393,14 +1390,14 @@ return this; } - public CppLinkActionBuilder addLibraryToLinkWrappers(Iterable<LibraryToLinkWrapper> inputs) { + public CppLinkActionBuilder addLibrariesToLink(Iterable<LibraryToLink> inputs) { Preconditions.checkState(libraries.isEmpty()); - for (LibraryToLinkWrapper input : inputs) { + for (LibraryToLink input : inputs) { if (input.getMustKeepDebug()) { mustKeepDebug = true; } } - this.libraryToLinkWrappers.addAll(inputs); + this.librariesToLink.addAll(inputs); return this; } @@ -1472,7 +1469,7 @@ * #addLibraries}, and {@link #addLinkstamps}. */ public CppLinkActionBuilder addLinkParams( - List<LibraryToLink> libraries, + List<LinkerInputs.LibraryToLink> libraries, List<String> userLinkFlags, List<Linkstamp> linkstamps, List<Artifact> nonCodeInputs,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/ExtraLinkTimeLibraries.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/ExtraLinkTimeLibraries.java index 9f53944..ec2ef03 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/ExtraLinkTimeLibraries.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/ExtraLinkTimeLibraries.java
@@ -106,7 +106,7 @@ public BuildLibraryOutput buildLibraries( RuleContext ruleContext, boolean staticMode, boolean forDynamicLibrary) throws InterruptedException, RuleErrorException { - NestedSetBuilder<LibraryToLinkWrapper> librariesToLink = NestedSetBuilder.linkOrder(); + NestedSetBuilder<LibraryToLink> librariesToLink = NestedSetBuilder.linkOrder(); NestedSetBuilder<Artifact> runtimeLibraries = NestedSetBuilder.linkOrder(); for (ExtraLinkTimeLibrary extraLibrary : getExtraLibraries()) { BuildLibraryOutput buildLibraryOutput =
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/ExtraLinkTimeLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/ExtraLinkTimeLibrary.java index 28722fb..4dc742a 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/ExtraLinkTimeLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/ExtraLinkTimeLibrary.java
@@ -33,16 +33,16 @@ /** Output of {@link #buildLibraries}. Pair of libraries to link and runtime libraries. */ class BuildLibraryOutput { - public NestedSet<LibraryToLinkWrapper> librariesToLink; + public NestedSet<LibraryToLink> librariesToLink; public NestedSet<Artifact> runtimeLibraries; public BuildLibraryOutput( - NestedSet<LibraryToLinkWrapper> librariesToLink, NestedSet<Artifact> runtimeLibraries) { + NestedSet<LibraryToLink> librariesToLink, NestedSet<Artifact> runtimeLibraries) { this.librariesToLink = librariesToLink; this.runtimeLibraries = runtimeLibraries; } - public NestedSet<LibraryToLinkWrapper> getLibrariesToLink() { + public NestedSet<LibraryToLink> getLibrariesToLink() { return librariesToLink; }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/LibraryToLinkWrapper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/LibraryToLink.java similarity index 84% rename from src/main/java/com/google/devtools/build/lib/rules/cpp/LibraryToLinkWrapper.java rename to src/main/java/com/google/devtools/build/lib/rules/cpp/LibraryToLink.java index 02503cb..eb5138d 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/LibraryToLinkWrapper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/LibraryToLink.java
@@ -29,10 +29,9 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; -import com.google.devtools.build.lib.rules.cpp.LinkerInputs.LibraryToLink; import com.google.devtools.build.lib.rules.cpp.LinkerInputs.SolibLibraryToLink; import com.google.devtools.build.lib.skylarkbuildapi.cpp.CcLinkingContextApi; -import com.google.devtools.build.lib.skylarkbuildapi.cpp.LibraryToLinkWrapperApi; +import com.google.devtools.build.lib.skylarkbuildapi.cpp.LibraryToLinkApi; import com.google.devtools.build.lib.syntax.SkylarkList; import com.google.devtools.build.lib.util.Fingerprint; import com.google.devtools.build.lib.vfs.FileSystemUtils; @@ -51,23 +50,20 @@ * dynamic params for executable and dynamic params for dynamic library. */ @AutoValue -public abstract class LibraryToLinkWrapper implements LibraryToLinkWrapperApi<Artifact> { +public abstract class LibraryToLink implements LibraryToLinkApi<Artifact> { - public static List<LibraryToLink> convertLibraryToLinkWrapperListToLibraryToLinkList( - NestedSet<LibraryToLinkWrapper> libraryToLinkWrappers, - boolean staticMode, - boolean forDynamicLibrary) { - ImmutableList.Builder<LibraryToLink> librariesToLink = ImmutableList.builder(); - for (LibraryToLinkWrapper libraryToLinkWrapper : libraryToLinkWrappers) { - LibraryToLink staticLibraryToLink = - libraryToLinkWrapper.getStaticLibrary() == null + public static List<LinkerInputs.LibraryToLink> convertLibraryToLinkListToLibraryToLinkList( + NestedSet<LibraryToLink> librariesToLink, boolean staticMode, boolean forDynamicLibrary) { + ImmutableList.Builder<LinkerInputs.LibraryToLink> librariesToLinkBuilder = + ImmutableList.builder(); + for (LibraryToLink libraryToLink : librariesToLink) { + LinkerInputs.LibraryToLink staticLibraryToLink = + libraryToLink.getStaticLibrary() == null ? null : libraryToLink.getStaticLibraryToLink(); + LinkerInputs.LibraryToLink picStaticLibraryToLink = + libraryToLink.getPicStaticLibrary() == null ? null - : libraryToLinkWrapper.getStaticLibraryToLink(); - LibraryToLink picStaticLibraryToLink = - libraryToLinkWrapper.getPicStaticLibrary() == null - ? null - : libraryToLinkWrapper.getPicStaticLibraryToLink(); - LibraryToLink libraryToLinkToUse = null; + : libraryToLink.getPicStaticLibraryToLink(); + LinkerInputs.LibraryToLink libraryToLinkToUse = null; if (staticMode) { if (forDynamicLibrary) { if (picStaticLibraryToLink != null) { @@ -83,17 +79,17 @@ } } if (libraryToLinkToUse == null) { - if (libraryToLinkWrapper.getInterfaceLibrary() != null) { - libraryToLinkToUse = libraryToLinkWrapper.getInterfaceLibraryToLink(); - } else if (libraryToLinkWrapper.getDynamicLibrary() != null) { - libraryToLinkToUse = libraryToLinkWrapper.getDynamicLibraryToLink(); + if (libraryToLink.getInterfaceLibrary() != null) { + libraryToLinkToUse = libraryToLink.getInterfaceLibraryToLink(); + } else if (libraryToLink.getDynamicLibrary() != null) { + libraryToLinkToUse = libraryToLink.getDynamicLibraryToLink(); } } } else { - if (libraryToLinkWrapper.getInterfaceLibrary() != null) { - libraryToLinkToUse = libraryToLinkWrapper.getInterfaceLibraryToLink(); - } else if (libraryToLinkWrapper.getDynamicLibrary() != null) { - libraryToLinkToUse = libraryToLinkWrapper.getDynamicLibraryToLink(); + if (libraryToLink.getInterfaceLibrary() != null) { + libraryToLinkToUse = libraryToLink.getInterfaceLibraryToLink(); + } else if (libraryToLink.getDynamicLibrary() != null) { + libraryToLinkToUse = libraryToLink.getDynamicLibraryToLink(); } if (libraryToLinkToUse == null) { if (forDynamicLibrary) { @@ -112,9 +108,9 @@ } } Preconditions.checkNotNull(libraryToLinkToUse); - librariesToLink.add(libraryToLinkToUse); + librariesToLinkBuilder.add(libraryToLinkToUse); } - return librariesToLink.build(); + return librariesToLinkBuilder.build(); } public Artifact getDynamicLibraryForRuntimeOrNull(boolean linkingStatically) { @@ -242,14 +238,14 @@ } } - private final NestedSet<LibraryToLinkWrapper> libraries; + private final NestedSet<LibraryToLink> libraries; private final NestedSet<LinkOptions> userLinkFlags; private final NestedSet<Linkstamp> linkstamps; private final NestedSet<Artifact> nonCodeInputs; private final ExtraLinkTimeLibraries extraLinkTimeLibraries; public CcLinkingContext( - NestedSet<LibraryToLinkWrapper> libraries, + NestedSet<LibraryToLink> libraries, NestedSet<LinkOptions> userLinkFlags, NestedSet<Linkstamp> linkstamps, NestedSet<Artifact> nonCodeInputs, @@ -281,15 +277,15 @@ public List<Artifact> getStaticModeParamsForExecutableLibraries() { ImmutableList.Builder<Artifact> libraryListBuilder = ImmutableList.builder(); - for (LibraryToLinkWrapper libraryToLinkWrapper : getLibraries()) { - if (libraryToLinkWrapper.getStaticLibrary() != null) { - libraryListBuilder.add(libraryToLinkWrapper.getStaticLibrary()); - } else if (libraryToLinkWrapper.getPicStaticLibrary() != null) { - libraryListBuilder.add(libraryToLinkWrapper.getPicStaticLibrary()); - } else if (libraryToLinkWrapper.getInterfaceLibrary() != null) { - libraryListBuilder.add(libraryToLinkWrapper.getInterfaceLibrary()); + for (LibraryToLink libraryToLink : getLibraries()) { + if (libraryToLink.getStaticLibrary() != null) { + libraryListBuilder.add(libraryToLink.getStaticLibrary()); + } else if (libraryToLink.getPicStaticLibrary() != null) { + libraryListBuilder.add(libraryToLink.getPicStaticLibrary()); + } else if (libraryToLink.getInterfaceLibrary() != null) { + libraryListBuilder.add(libraryToLink.getInterfaceLibrary()); } else { - libraryListBuilder.add(libraryToLinkWrapper.getDynamicLibrary()); + libraryListBuilder.add(libraryToLink.getDynamicLibrary()); } } return libraryListBuilder.build(); @@ -297,7 +293,7 @@ public List<Artifact> getStaticModeParamsForDynamicLibraryLibraries() { ImmutableList.Builder<Artifact> artifactListBuilder = ImmutableList.builder(); - for (LibraryToLinkWrapper library : getLibraries()) { + for (LibraryToLink library : getLibraries()) { if (library.getPicStaticLibrary() != null) { artifactListBuilder.add(library.getPicStaticLibrary()); } else if (library.getStaticLibrary() != null) { @@ -313,7 +309,7 @@ public List<Artifact> getDynamicModeParamsForExecutableLibraries() { ImmutableList.Builder<Artifact> artifactListBuilder = ImmutableList.builder(); - for (LibraryToLinkWrapper library : getLibraries()) { + for (LibraryToLink library : getLibraries()) { if (library.getInterfaceLibrary() != null) { artifactListBuilder.add(library.getInterfaceLibrary()); } else if (library.getDynamicLibrary() != null) { @@ -329,7 +325,7 @@ public List<Artifact> getDynamicModeParamsForDynamicLibraryLibraries() { ImmutableList.Builder<Artifact> artifactListBuilder = ImmutableList.builder(); - for (LibraryToLinkWrapper library : getLibraries()) { + for (LibraryToLink library : getLibraries()) { if (library.getInterfaceLibrary() != null) { artifactListBuilder.add(library.getInterfaceLibrary()); } else if (library.getDynamicLibrary() != null) { @@ -344,10 +340,10 @@ } public List<Artifact> getDynamicLibrariesForRuntime(boolean linkingStatically) { - return LibraryToLinkWrapper.getDynamicLibrariesForRuntime(linkingStatically, libraries); + return LibraryToLink.getDynamicLibrariesForRuntime(linkingStatically, libraries); } - public NestedSet<LibraryToLinkWrapper> getLibraries() { + public NestedSet<LibraryToLink> getLibraries() { return libraries; } @@ -357,7 +353,7 @@ } @Override - public SkylarkList<LibraryToLinkWrapperApi> getSkylarkLibrariesToLink() { + public SkylarkList<LibraryToLinkApi> getSkylarkLibrariesToLink() { return SkylarkList.createImmutable(libraries.toList()); } @@ -390,13 +386,13 @@ /** Builder for {@link CcLinkingContext}. */ public static class Builder { - private final NestedSetBuilder<LibraryToLinkWrapper> libraries = NestedSetBuilder.linkOrder(); + private final NestedSetBuilder<LibraryToLink> libraries = NestedSetBuilder.linkOrder(); private final NestedSetBuilder<LinkOptions> userLinkFlags = NestedSetBuilder.linkOrder(); private final NestedSetBuilder<Linkstamp> linkstamps = NestedSetBuilder.compileOrder(); private final NestedSetBuilder<Artifact> nonCodeInputs = NestedSetBuilder.linkOrder(); private ExtraLinkTimeLibraries extraLinkTimeLibraries = null; - public Builder addLibraries(NestedSet<LibraryToLinkWrapper> libraries) { + public Builder addLibraries(NestedSet<LibraryToLink> libraries) { this.libraries.addTransitive(libraries); return this; } @@ -467,10 +463,10 @@ } } - private LibraryToLink picStaticLibraryToLink; - private LibraryToLink staticLibraryToLink; - private LibraryToLink dynamicLibraryToLink; - private LibraryToLink interfaceLibraryToLink; + private LinkerInputs.LibraryToLink picStaticLibraryToLink; + private LinkerInputs.LibraryToLink staticLibraryToLink; + private LinkerInputs.LibraryToLink dynamicLibraryToLink; + private LinkerInputs.LibraryToLink interfaceLibraryToLink; public abstract String getLibraryIdentifier(); @@ -524,17 +520,15 @@ abstract boolean getMustKeepDebug(); public static Builder builder() { - return new AutoValue_LibraryToLinkWrapper.Builder() - .setMustKeepDebug(false) - .setAlwayslink(false); + return new AutoValue_LibraryToLink.Builder().setMustKeepDebug(false).setAlwayslink(false); } @Nullable @SuppressWarnings("ReferenceEquality") static String setDynamicArtifactsAndReturnIdentifier( - LibraryToLinkWrapper.Builder libraryToLinkWrapperBuilder, - LibraryToLink dynamicModeParamsForExecutableEntry, - LibraryToLink dynamicModeParamsForDynamicLibraryEntry, + LibraryToLink.Builder libraryToLinkBuilder, + LinkerInputs.LibraryToLink dynamicModeParamsForExecutableEntry, + LinkerInputs.LibraryToLink dynamicModeParamsForDynamicLibraryEntry, ListIterator<Artifact> runtimeLibraryIterator) { Preconditions.checkNotNull(runtimeLibraryIterator); Artifact artifact = dynamicModeParamsForExecutableEntry.getArtifact(); @@ -579,29 +573,29 @@ if (ArtifactCategory.INTERFACE_LIBRARY .getAllowedExtensions() .contains("." + artifact.getExtension())) { - libraryToLinkWrapperBuilder.setInterfaceLibrary(artifact); - libraryToLinkWrapperBuilder.setResolvedSymlinkInterfaceLibrary( + libraryToLinkBuilder.setInterfaceLibrary(artifact); + libraryToLinkBuilder.setResolvedSymlinkInterfaceLibrary( dynamicModeParamsForExecutableEntry.getOriginalLibraryArtifact()); if (runtimeArtifact != null) { - libraryToLinkWrapperBuilder.setDynamicLibrary(runtimeArtifact); + libraryToLinkBuilder.setDynamicLibrary(runtimeArtifact); } } else { Preconditions.checkState(runtimeArtifact == null || artifact == runtimeArtifact); - libraryToLinkWrapperBuilder.setDynamicLibrary(artifact); - libraryToLinkWrapperBuilder.setResolvedSymlinkDynamicLibrary( + libraryToLinkBuilder.setDynamicLibrary(artifact); + libraryToLinkBuilder.setResolvedSymlinkDynamicLibrary( dynamicModeParamsForExecutableEntry.getOriginalLibraryArtifact()); } } else { - libraryToLinkWrapperBuilder.setDynamicLibrary(artifact); + libraryToLinkBuilder.setDynamicLibrary(artifact); Preconditions.checkState(runtimeArtifact == null || artifact == runtimeArtifact); } } else if (dynamicModeParamsForExecutableEntry.getArtifactCategory() == ArtifactCategory.INTERFACE_LIBRARY) { Preconditions.checkState( !(dynamicModeParamsForExecutableEntry instanceof SolibLibraryToLink)); - libraryToLinkWrapperBuilder.setInterfaceLibrary(artifact); + libraryToLinkBuilder.setInterfaceLibrary(artifact); if (runtimeArtifact != null) { - libraryToLinkWrapperBuilder.setDynamicLibrary(runtimeArtifact); + libraryToLinkBuilder.setDynamicLibrary(runtimeArtifact); } } return libraryIdentifier; @@ -623,7 +617,7 @@ return currentWithoutExtension; } - LibraryToLink getStaticLibraryToLink() { + LinkerInputs.LibraryToLink getStaticLibraryToLink() { Preconditions.checkNotNull(getStaticLibrary(), this); if (staticLibraryToLink != null) { return staticLibraryToLink; @@ -642,7 +636,7 @@ return staticLibraryToLink; } - LibraryToLink getPicStaticLibraryToLink() { + LinkerInputs.LibraryToLink getPicStaticLibraryToLink() { Preconditions.checkNotNull(getPicStaticLibrary(), this); if (picStaticLibraryToLink != null) { return picStaticLibraryToLink; @@ -661,7 +655,7 @@ return picStaticLibraryToLink; } - LibraryToLink getDynamicLibraryToLink() { + LinkerInputs.LibraryToLink getDynamicLibraryToLink() { Preconditions.checkNotNull(getDynamicLibrary(), this); if (dynamicLibraryToLink != null) { return dynamicLibraryToLink; @@ -684,7 +678,7 @@ return dynamicLibraryToLink; } - LibraryToLink getInterfaceLibraryToLink() { + LinkerInputs.LibraryToLink getInterfaceLibraryToLink() { Preconditions.checkNotNull(getInterfaceLibrary()); if (interfaceLibraryToLink != null) { return interfaceLibraryToLink; @@ -708,10 +702,10 @@ } public static List<Artifact> getDynamicLibrariesForRuntime( - boolean linkingStatically, Iterable<LibraryToLinkWrapper> libraries) { + boolean linkingStatically, Iterable<LibraryToLink> libraries) { ImmutableList.Builder<Artifact> dynamicLibrariesForRuntimeBuilder = ImmutableList.builder(); - for (LibraryToLinkWrapper libraryToLinkWrapper : libraries) { - Artifact artifact = libraryToLinkWrapper.getDynamicLibraryForRuntimeOrNull(linkingStatically); + for (LibraryToLink libraryToLink : libraries) { + Artifact artifact = libraryToLink.getDynamicLibraryForRuntimeOrNull(linkingStatically); if (artifact != null) { dynamicLibrariesForRuntimeBuilder.add(artifact); } @@ -719,20 +713,19 @@ return dynamicLibrariesForRuntimeBuilder.build(); } - public static List<Artifact> getDynamicLibrariesForLinking( - Iterable<LibraryToLinkWrapper> libraries) { + public static List<Artifact> getDynamicLibrariesForLinking(Iterable<LibraryToLink> libraries) { ImmutableList.Builder<Artifact> dynamicLibrariesForLinkingBuilder = ImmutableList.builder(); - for (LibraryToLinkWrapper libraryToLinkWrapper : libraries) { - if (libraryToLinkWrapper.getInterfaceLibrary() != null) { - dynamicLibrariesForLinkingBuilder.add(libraryToLinkWrapper.getInterfaceLibrary()); - } else if (libraryToLinkWrapper.getDynamicLibrary() != null) { - dynamicLibrariesForLinkingBuilder.add(libraryToLinkWrapper.getDynamicLibrary()); + for (LibraryToLink libraryToLink : libraries) { + if (libraryToLink.getInterfaceLibrary() != null) { + dynamicLibrariesForLinkingBuilder.add(libraryToLink.getInterfaceLibrary()); + } else if (libraryToLink.getDynamicLibrary() != null) { + dynamicLibrariesForLinkingBuilder.add(libraryToLink.getDynamicLibrary()); } } return dynamicLibrariesForLinkingBuilder.build(); } - /** Builder for LibraryToLinkWrapper. */ + /** Builder for LibraryToLink. */ @AutoValue.Builder public abstract static class Builder { @@ -769,7 +762,7 @@ public abstract Builder setMustKeepDebug(boolean mustKeepDebug); // Methods just for validation, not to be called externally. - abstract LibraryToLinkWrapper autoBuild(); + abstract LibraryToLink autoBuild(); abstract String getLibraryIdentifier(); @@ -797,7 +790,7 @@ abstract Artifact getResolvedSymlinkInterfaceLibrary(); - public LibraryToLinkWrapper build() { + public LibraryToLink build() { Preconditions.checkNotNull(getLibraryIdentifier()); Preconditions.checkState( (getObjectFiles() == null
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoAspect.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoAspect.java index 4c6845c..ba9510b 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoAspect.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoAspect.java
@@ -57,8 +57,8 @@ import com.google.devtools.build.lib.rules.cpp.CppHelper; import com.google.devtools.build.lib.rules.cpp.CppRuleClasses; import com.google.devtools.build.lib.rules.cpp.CppSemantics; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper.CcLinkingContext; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink.CcLinkingContext; import com.google.devtools.build.lib.rules.proto.ProtoCommon; import com.google.devtools.build.lib.rules.proto.ProtoCompileActionBuilder; import com.google.devtools.build.lib.rules.proto.ProtoCompileActionBuilder.Exports; @@ -212,18 +212,18 @@ ccLinkingHelper.emitInterfaceSharedLibraries(true); } - ImmutableList<LibraryToLinkWrapper> libraryToLinkWrapper = ImmutableList.of(); + ImmutableList<LibraryToLink> libraryToLink = ImmutableList.of(); if (!ccCompilationOutputs.isEmpty()) { CcLinkingOutputs ccLinkingOutputs = ccLinkingHelper.link(ccCompilationOutputs); if (!ccLinkingOutputs.isEmpty()) { - libraryToLinkWrapper = ImmutableList.of(ccLinkingOutputs.getLibraryToLink()); + libraryToLink = ImmutableList.of(ccLinkingOutputs.getLibraryToLink()); } } CcNativeLibraryProvider ccNativeLibraryProvider = - CppHelper.collectNativeCcLibraries(deps, libraryToLinkWrapper); + CppHelper.collectNativeCcLibraries(deps, libraryToLink); CcLinkingContext ccLinkingContext = - ccLinkingHelper.buildCcLinkingContextFromLibraryToLinkWrappers( - libraryToLinkWrapper, compilationInfo.getCcCompilationContext()); + ccLinkingHelper.buildCcLinkingContextFromLibrariesToLink( + libraryToLink, compilationInfo.getCcCompilationContext()); CppDebugFileProvider cppDebugFileProvider = CcCompilationHelper.buildCppDebugFileProvider( @@ -243,8 +243,8 @@ CcCompilationHelper.buildOutputGroups(compilationInfo.getCcCompilationOutputs())); // On Windows, dynamic library is not built by default, so don't add them to filesToBuild. - if (!libraryToLinkWrapper.isEmpty()) { - LibraryToLinkWrapper artifactsToBuild = libraryToLinkWrapper.get(0); + if (!libraryToLink.isEmpty()) { + LibraryToLink artifactsToBuild = libraryToLink.get(0); if (artifactsToBuild.getStaticLibrary() != null) { filesBuilder.add(artifactsToBuild.getStaticLibrary()); }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java index 988be2b..e94868d 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java
@@ -48,7 +48,7 @@ import com.google.devtools.build.lib.rules.cpp.CcToolchainProvider; import com.google.devtools.build.lib.rules.cpp.CppConfiguration; import com.google.devtools.build.lib.rules.cpp.CppHelper; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink; import com.google.devtools.build.lib.rules.java.JavaCompilationArgsProvider.ClasspathType; import com.google.devtools.build.lib.rules.java.JavaConfiguration.OneVersionEnforcementLevel; import com.google.devtools.build.lib.rules.java.ProguardHelper.ProguardOutput; @@ -650,9 +650,9 @@ */ public static Collection<Artifact> collectNativeLibraries( Iterable<? extends TransitiveInfoCollection> deps) { - NestedSet<LibraryToLinkWrapper> linkerInputs = + NestedSet<LibraryToLink> linkerInputs = new NativeLibraryNestedSetBuilder().addJavaTargets(deps).build(); - return LibraryToLinkWrapper.getDynamicLibrariesForLinking(linkerInputs); + return LibraryToLink.getDynamicLibrariesForLinking(linkerInputs); } /**
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java index db00038..d47425a 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCommon.java
@@ -45,7 +45,7 @@ import com.google.devtools.build.lib.packages.BuildType; import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.lib.packages.TargetUtils; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink; import com.google.devtools.build.lib.rules.java.JavaCompilationArgsProvider.ClasspathType; import com.google.devtools.build.lib.rules.java.JavaPluginInfoProvider.JavaPluginInfo; import com.google.devtools.build.lib.syntax.Type; @@ -358,7 +358,7 @@ * * @see JavaNativeLibraryProvider */ - protected NestedSet<LibraryToLinkWrapper> collectTransitiveJavaNativeLibraries() { + protected NestedSet<LibraryToLink> collectTransitiveJavaNativeLibraries() { NativeLibraryNestedSetBuilder builder = new NativeLibraryNestedSetBuilder(); builder.addJavaTargets(targetsTreatedAsDeps(ClasspathType.BOTH));
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaImport.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaImport.java index 7e56364..d0322f8 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaImport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaImport.java
@@ -31,7 +31,7 @@ import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget.Mode; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink; import java.util.LinkedHashSet; import java.util.Set; @@ -78,7 +78,7 @@ JavaCompilationArtifacts javaArtifacts = collectJavaArtifacts(jars, interfaceJars); common.setJavaCompilationArtifacts(javaArtifacts); - NestedSet<LibraryToLinkWrapper> transitiveJavaNativeLibraries = + NestedSet<LibraryToLink> transitiveJavaNativeLibraries = common.collectTransitiveJavaNativeLibraries(); boolean neverLink = JavaCommon.isNeverLink(ruleContext); JavaCompilationArgsProvider javaCompilationArgs =
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java index 7216dc9..5464f3d 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java
@@ -24,7 +24,7 @@ import com.google.devtools.build.lib.analysis.RunfilesProvider; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink; import com.google.devtools.build.lib.rules.java.JavaCompilationArgsProvider.ClasspathType; import com.google.devtools.build.lib.rules.java.proto.GeneratedExtensionRegistryProvider; @@ -165,7 +165,7 @@ new JavaStrictCompilationArgsProvider( common.collectJavaCompilationArgs( neverLink, /* srcLessDepsExport= */ false, /* javaProtoLibraryStrictDeps= */ true)); - NestedSet<LibraryToLinkWrapper> transitiveJavaNativeLibraries = + NestedSet<LibraryToLink> transitiveJavaNativeLibraries = common.collectTransitiveJavaNativeLibraries(); RuleConfiguredTargetBuilder builder = new RuleConfiguredTargetBuilder(ruleContext);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaNativeLibraryProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaNativeLibraryProvider.java index e9cf460..c22b68e 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaNativeLibraryProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaNativeLibraryProvider.java
@@ -18,7 +18,7 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink; import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; /** @@ -29,9 +29,9 @@ @AutoCodec public final class JavaNativeLibraryProvider implements TransitiveInfoProvider { - private final NestedSet<LibraryToLinkWrapper> transitiveJavaNativeLibraries; + private final NestedSet<LibraryToLink> transitiveJavaNativeLibraries; - public JavaNativeLibraryProvider(NestedSet<LibraryToLinkWrapper> transitiveJavaNativeLibraries) { + public JavaNativeLibraryProvider(NestedSet<LibraryToLink> transitiveJavaNativeLibraries) { this.transitiveJavaNativeLibraries = transitiveJavaNativeLibraries; } @@ -39,12 +39,12 @@ * Collects native libraries in the transitive closure of its deps that are needed for executing * Java code. */ - public NestedSet<LibraryToLinkWrapper> getTransitiveJavaNativeLibraries() { + public NestedSet<LibraryToLink> getTransitiveJavaNativeLibraries() { return transitiveJavaNativeLibraries; } public static JavaNativeLibraryProvider merge(Iterable<JavaNativeLibraryProvider> deps) { - NestedSetBuilder<LibraryToLinkWrapper> transitiveSourceJars = NestedSetBuilder.stableOrder(); + NestedSetBuilder<LibraryToLink> transitiveSourceJars = NestedSetBuilder.stableOrder(); for (JavaNativeLibraryProvider wrapper : deps) { transitiveSourceJars.addTransitive(wrapper.getTransitiveJavaNativeLibraries());
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/NativeLibraryNestedSetBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/java/NativeLibraryNestedSetBuilder.java index 6648387..8598750 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/NativeLibraryNestedSetBuilder.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/NativeLibraryNestedSetBuilder.java
@@ -22,21 +22,21 @@ import com.google.devtools.build.lib.rules.cpp.CcLinkingOutputs; import com.google.devtools.build.lib.rules.cpp.CcNativeLibraryProvider; import com.google.devtools.build.lib.rules.cpp.CppFileTypes; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink; import com.google.devtools.build.lib.util.FileType; /** A builder that helps construct nested sets of native libraries. */ public final class NativeLibraryNestedSetBuilder { - private final NestedSetBuilder<LibraryToLinkWrapper> builder = NestedSetBuilder.linkOrder(); + private final NestedSetBuilder<LibraryToLink> builder = NestedSetBuilder.linkOrder(); /** Build a nested set of native libraries. */ - public NestedSet<LibraryToLinkWrapper> build() { + public NestedSet<LibraryToLink> build() { return builder.build(); } /** Include specified artifacts as native libraries in the nested set. */ - public NativeLibraryNestedSetBuilder addAll(Iterable<LibraryToLinkWrapper> deps) { + public NativeLibraryNestedSetBuilder addAll(Iterable<LibraryToLink> deps) { builder.addAll(deps); return this; } @@ -94,7 +94,7 @@ FileType.filterList( dep.getProvider(FileProvider.class).getFilesToBuild(), CppFileTypes.SHARED_LIBRARY)) { builder.add( - LibraryToLinkWrapper.builder() + LibraryToLink.builder() .setLibraryIdentifier(CcLinkingOutputs.libraryIdentifierOf(artifact)) .setDynamicLibrary(artifact) .build());
diff --git a/src/main/java/com/google/devtools/build/lib/rules/nativedeps/NativeDepsHelper.java b/src/main/java/com/google/devtools/build/lib/rules/nativedeps/NativeDepsHelper.java index 56cff9b..ce5d87d 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/nativedeps/NativeDepsHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/nativedeps/NativeDepsHelper.java
@@ -43,9 +43,9 @@ import com.google.devtools.build.lib.rules.cpp.CppRuleClasses; import com.google.devtools.build.lib.rules.cpp.CppSemantics; import com.google.devtools.build.lib.rules.cpp.FdoContext; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper.CcLinkingContext; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper.CcLinkingContext.Linkstamp; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink.CcLinkingContext; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink.CcLinkingContext.Linkstamp; import com.google.devtools.build.lib.rules.cpp.Link; import com.google.devtools.build.lib.rules.cpp.Link.LinkTargetType; import com.google.devtools.build.lib.rules.cpp.Link.LinkingMode; @@ -148,8 +148,8 @@ } /** Determines if there is any code to be linked in the input iterable. */ - private static boolean containsCodeToLink(Iterable<LibraryToLinkWrapper> libraries) { - for (LibraryToLinkWrapper library : libraries) { + private static boolean containsCodeToLink(Iterable<LibraryToLink> libraries) { + for (LibraryToLink library : libraries) { if (containsCodeToLink(library)) { return true; } @@ -158,7 +158,7 @@ } /** Determines if the input library is or contains an archive which must be linked. */ - private static boolean containsCodeToLink(LibraryToLinkWrapper library) { + private static boolean containsCodeToLink(LibraryToLink library) { if (library.getStaticLibrary() == null && library.getPicStaticLibrary() == null) { // this is a shared library so we're going to have to copy it return false; @@ -210,7 +210,7 @@ ruleContext, CppBuildInfo.KEY, configuration); boolean shareNativeDeps = configuration.getFragment(CppConfiguration.class).shareNativeDeps(); - NestedSet<LibraryToLinkWrapper> linkerInputs = ccLinkingContext.getLibraries(); + NestedSet<LibraryToLink> linkerInputs = ccLinkingContext.getLibraries(); Artifact sharedLibrary; if (shareNativeDeps) { PathFragment sharedPath = @@ -262,7 +262,7 @@ toolchain.getStaticRuntimeLinkInputs(ruleContext, featureConfiguration)); } LtoCompilationContext.Builder ltoCompilationContext = new LtoCompilationContext.Builder(); - for (LibraryToLinkWrapper lib : linkerInputs) { + for (LibraryToLink lib : linkerInputs) { if (lib.getPicLtoCompilationContext() != null && !lib.getPicLtoCompilationContext().isEmpty()) { ltoCompilationContext.addAll(lib.getPicLtoCompilationContext()); @@ -280,7 +280,7 @@ builder .setLinkArtifactFactory(SHAREABLE_LINK_ARTIFACT_FACTORY) .setLinkerFiles(toolchain.getLinkerFiles()) - .addLibraryToLinkWrappers(linkerInputs) + .addLibrariesToLink(linkerInputs) .setLinkType(LinkTargetType.DYNAMIC_LIBRARY) .setLinkingMode(LinkingMode.STATIC) .setLibraryIdentifier(libraryIdentifier)
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java index 095eb60..f6df9f6e 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java
@@ -70,8 +70,8 @@ import com.google.devtools.build.lib.rules.cpp.CcInfo; import com.google.devtools.build.lib.rules.cpp.CppFileTypes; import com.google.devtools.build.lib.rules.cpp.CppModuleMap; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper.CcLinkingContext; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink.CcLinkingContext; import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData; import com.google.devtools.build.lib.syntax.SkylarkSemantics; import com.google.devtools.build.lib.util.FileType; @@ -455,7 +455,7 @@ .addAll(LINKOPT, nonFrameworkLinkOpts.build()) .addTransitiveAndPropagate( CC_LIBRARY, - NestedSetBuilder.<LibraryToLinkWrapper>linkOrder() + NestedSetBuilder.<LibraryToLink>linkOrder() .addTransitive(linkProvider.getLibraries()) .build()); }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java index 6f97111..7a52350 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java
@@ -27,9 +27,9 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.rules.cpp.CcCompilationContext; import com.google.devtools.build.lib.rules.cpp.CcInfo; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper.CcLinkingContext; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper.CcLinkingContext.LinkOptions; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink.CcLinkingContext; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink.CcLinkingContext.LinkOptions; import com.google.devtools.build.lib.rules.objc.ObjcCommon.ResourceAttributes; import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.vfs.FileSystemUtils; @@ -126,11 +126,11 @@ private CcLinkingContext buildCcLinkingContext( ObjcCommon common, SymbolGenerator<?> symbolGenerator) { - ImmutableSet.Builder<LibraryToLinkWrapper> libraries = new ImmutableSet.Builder<>(); + ImmutableSet.Builder<LibraryToLink> libraries = new ImmutableSet.Builder<>(); ObjcProvider objcProvider = common.getObjcProvider(); for (Artifact library : objcProvider.get(ObjcProvider.LIBRARY)) { libraries.add( - LibraryToLinkWrapper.builder() + LibraryToLink.builder() .setStaticLibrary(library) .setLibraryIdentifier( FileSystemUtils.removeExtension(library.getRootRelativePathString())) @@ -141,9 +141,7 @@ CcLinkingContext.Builder ccLinkingContext = CcLinkingContext.builder() .addLibraries( - NestedSetBuilder.<LibraryToLinkWrapper>linkOrder() - .addAll(libraries.build()) - .build()); + NestedSetBuilder.<LibraryToLink>linkOrder().addAll(libraries.build()).build()); NestedSetBuilder<LinkOptions> userLinkFlags = NestedSetBuilder.linkOrder(); for (SdkFramework sdkFramework : objcProvider.get(ObjcProvider.SDK_FRAMEWORK)) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java index f9ab015..0e532ed 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java
@@ -35,9 +35,8 @@ import com.google.devtools.build.lib.packages.Info; import com.google.devtools.build.lib.packages.NativeProvider.WithLegacySkylarkName; import com.google.devtools.build.lib.rules.cpp.CppModuleMap; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper; -import com.google.devtools.build.lib.rules.cpp.LibraryToLinkWrapper.CcLinkingContext; -import com.google.devtools.build.lib.rules.cpp.LinkerInputs.LibraryToLink; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink.CcLinkingContext; import com.google.devtools.build.lib.skylarkbuildapi.apple.ObjcProviderApi; import com.google.devtools.build.lib.syntax.EvalUtils; import com.google.devtools.build.lib.syntax.SkylarkNestedSet; @@ -293,8 +292,8 @@ public static final Key<Artifact> STRINGS = new Key<>(STABLE_ORDER, "strings", Artifact.class); /** Linking information from cc dependencies. */ - public static final Key<LibraryToLinkWrapper> CC_LIBRARY = - new Key<>(LINK_ORDER, "cc_library", LibraryToLinkWrapper.class); + public static final Key<LibraryToLink> CC_LIBRARY = + new Key<>(LINK_ORDER, "cc_library", LibraryToLink.class); /** * Linking options from dependencies. @@ -749,9 +748,9 @@ /** Returns the list of .a files required for linking that arise from cc libraries. */ List<Artifact> getCcLibraries() { - NestedSetBuilder<LibraryToLinkWrapper> libraryToLinkListBuilder = NestedSetBuilder.linkOrder(); - for (LibraryToLinkWrapper libraryToLinkWrapper : get(CC_LIBRARY)) { - libraryToLinkListBuilder.add(libraryToLinkWrapper); + NestedSetBuilder<LibraryToLink> libraryToLinkListBuilder = NestedSetBuilder.linkOrder(); + for (LibraryToLink libraryToLink : get(CC_LIBRARY)) { + libraryToLinkListBuilder.add(libraryToLink); } CcLinkingContext ccLinkingContext = CcLinkingContext.builder().addLibraries(libraryToLinkListBuilder.build()).build(); @@ -782,12 +781,13 @@ // TODO(cpeyser): Clean up objc-cc interop. HashSet<PathFragment> avoidLibrariesSet = new HashSet<>(); for (CcLinkingContext ccLinkingContext : avoidCcProviders) { - List<LibraryToLink> librariesToLink = - LibraryToLinkWrapper.convertLibraryToLinkWrapperListToLibraryToLinkList( + List<com.google.devtools.build.lib.rules.cpp.LinkerInputs.LibraryToLink> librariesToLink = + LibraryToLink.convertLibraryToLinkListToLibraryToLinkList( ccLinkingContext.getLibraries(), /* staticMode= */ true, /* forDynamicLibrary= */ false); - for (LibraryToLink libraryToLink : librariesToLink) { + for (com.google.devtools.build.lib.rules.cpp.LinkerInputs.LibraryToLink libraryToLink : + librariesToLink) { avoidLibrariesSet.add(libraryToLink.getArtifact().getRunfilesPath()); } } @@ -831,39 +831,38 @@ } /** - * Returns a predicate which returns true for a given {@link LibraryToLinkWrapper} if the - * library's runfiles path is not contained in the given set. + * Returns a predicate which returns true for a given {@link LibraryToLink} if the library's + * runfiles path is not contained in the given set. * * @param runfilesPaths if a given library has runfiles path present in this set, the predicate * will return false */ - private static Predicate<LibraryToLinkWrapper> ccLibraryNotYetLinked( + private static Predicate<LibraryToLink> ccLibraryNotYetLinked( final HashSet<PathFragment> runfilesPaths) { return libraryToLink -> !checkIfLibraryIsInPaths(libraryToLink, runfilesPaths); } private static boolean checkIfLibraryIsInPaths( - LibraryToLinkWrapper libraryToLinkWrapper, HashSet<PathFragment> runfilesPaths) { + LibraryToLink libraryToLink, HashSet<PathFragment> runfilesPaths) { ImmutableList.Builder<PathFragment> libraryRunfilesPaths = ImmutableList.builder(); - if (libraryToLinkWrapper.getStaticLibrary() != null) { - libraryRunfilesPaths.add(libraryToLinkWrapper.getStaticLibrary().getRunfilesPath()); + if (libraryToLink.getStaticLibrary() != null) { + libraryRunfilesPaths.add(libraryToLink.getStaticLibrary().getRunfilesPath()); } - if (libraryToLinkWrapper.getPicStaticLibrary() != null) { - libraryRunfilesPaths.add(libraryToLinkWrapper.getPicStaticLibrary().getRunfilesPath()); + if (libraryToLink.getPicStaticLibrary() != null) { + libraryRunfilesPaths.add(libraryToLink.getPicStaticLibrary().getRunfilesPath()); } - if (libraryToLinkWrapper.getDynamicLibrary() != null) { - libraryRunfilesPaths.add(libraryToLinkWrapper.getDynamicLibrary().getRunfilesPath()); + if (libraryToLink.getDynamicLibrary() != null) { + libraryRunfilesPaths.add(libraryToLink.getDynamicLibrary().getRunfilesPath()); } - if (libraryToLinkWrapper.getResolvedSymlinkDynamicLibrary() != null) { + if (libraryToLink.getResolvedSymlinkDynamicLibrary() != null) { + libraryRunfilesPaths.add(libraryToLink.getResolvedSymlinkDynamicLibrary().getRunfilesPath()); + } + if (libraryToLink.getInterfaceLibrary() != null) { + libraryRunfilesPaths.add(libraryToLink.getInterfaceLibrary().getRunfilesPath()); + } + if (libraryToLink.getResolvedSymlinkInterfaceLibrary() != null) { libraryRunfilesPaths.add( - libraryToLinkWrapper.getResolvedSymlinkDynamicLibrary().getRunfilesPath()); - } - if (libraryToLinkWrapper.getInterfaceLibrary() != null) { - libraryRunfilesPaths.add(libraryToLinkWrapper.getInterfaceLibrary().getRunfilesPath()); - } - if (libraryToLinkWrapper.getResolvedSymlinkInterfaceLibrary() != null) { - libraryRunfilesPaths.add( - libraryToLinkWrapper.getResolvedSymlinkInterfaceLibrary().getRunfilesPath()); + libraryToLink.getResolvedSymlinkInterfaceLibrary().getRunfilesPath()); } return !Collections.disjoint(libraryRunfilesPaths.build(), runfilesPaths);
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/BazelCcModuleApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/BazelCcModuleApi.java index a97b3de..3e454c6 100644 --- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/BazelCcModuleApi.java +++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/BazelCcModuleApi.java
@@ -41,7 +41,7 @@ CcCompilationOutputsT extends CcCompilationOutputsApi, LinkingInfoT extends LinkingInfoApi, LinkingContextT extends CcLinkingContextApi, - LibraryToLinkWrapperT extends LibraryToLinkWrapperApi, + LibraryToLinkT extends LibraryToLinkApi, CcToolchainVariablesT extends CcToolchainVariablesApi, CcToolchainConfigInfoT extends CcToolchainConfigInfoApi> extends CcModuleApi< @@ -49,7 +49,7 @@ FeatureConfigurationT, CcCompilationContextT, LinkingContextT, - LibraryToLinkWrapperT, + LibraryToLinkT, CcToolchainVariablesT, SkylarkRuleContextT, CcToolchainConfigInfoT> {
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcBootstrap.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcBootstrap.java index ecf3d3d..a06572d 100644 --- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcBootstrap.java +++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcBootstrap.java
@@ -34,7 +34,7 @@ ? extends CcCompilationOutputsApi, ? extends LinkingInfoApi, ? extends CcLinkingContextApi, - ? extends LibraryToLinkWrapperApi, + ? extends LibraryToLinkApi, ? extends CcToolchainVariablesApi, ? extends CcToolchainConfigInfoApi> ccModule; @@ -50,7 +50,7 @@ ? extends CcCompilationOutputsApi, ? extends LinkingInfoApi, ? extends CcLinkingContextApi, - ? extends LibraryToLinkWrapperApi, + ? extends LibraryToLinkApi, ? extends CcToolchainVariablesApi, ? extends CcToolchainConfigInfoApi> ccModule) {
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcLinkingContextApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcLinkingContextApi.java index 3d70d84..6acdc7f 100644 --- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcLinkingContextApi.java +++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcLinkingContextApi.java
@@ -37,5 +37,5 @@ name = "libraries_to_link", doc = "Returns the list of <code>LibraryToLink</code>.", structField = true) - SkylarkList<LibraryToLinkWrapperApi> getSkylarkLibrariesToLink(); + SkylarkList<LibraryToLinkApi> getSkylarkLibrariesToLink(); }
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcLinkingOutputsApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcLinkingOutputsApi.java index 0d26caa..d0c61dc 100644 --- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcLinkingOutputsApi.java +++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcLinkingOutputsApi.java
@@ -27,5 +27,5 @@ doc = "Helper class containing CC compilation outputs.") public interface CcLinkingOutputsApi<FileT extends FileApi> { @SkylarkCallable(name = "library_to_link", structField = true, documented = false) - LibraryToLinkWrapperApi<FileT> getLibraryToLink(); + LibraryToLinkApi<FileT> getLibraryToLink(); }
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcModuleApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcModuleApi.java index 30d3856..56ad1ec 100644 --- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcModuleApi.java +++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/CcModuleApi.java
@@ -40,7 +40,7 @@ FeatureConfigurationT extends FeatureConfigurationApi, CompilationContextT extends CcCompilationContextApi, LinkingContextT extends CcLinkingContextApi, - LibraryToLinkWrapperT extends LibraryToLinkWrapperApi, + LibraryToLinkT extends LibraryToLinkApi, CcToolchainVariablesT extends CcToolchainVariablesApi, SkylarkRuleContextT extends SkylarkRuleContextApi, CcToolchainConfigInfoT extends CcToolchainConfigInfoApi> { @@ -550,7 +550,7 @@ named = true, defaultValue = "False"), }) - LibraryToLinkWrapperT createLibraryLinkerInput( + LibraryToLinkT createLibraryLinkerInput( Object actions, Object featureConfiguration, Object ccToolchainProvider,
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/LibraryToLinkWrapperApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/LibraryToLinkApi.java similarity index 97% rename from src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/LibraryToLinkWrapperApi.java rename to src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/LibraryToLinkApi.java index 6da12af..9e365ef 100644 --- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/LibraryToLinkWrapperApi.java +++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/cpp/LibraryToLinkApi.java
@@ -27,7 +27,7 @@ name = "LibraryToLink", category = SkylarkModuleCategory.BUILTIN, doc = "A library the user can link against.") -public interface LibraryToLinkWrapperApi<FileT extends FileApi> { +public interface LibraryToLinkApi<FileT extends FileApi> { @SkylarkCallable( name = "static_library", allowReturnNones = true,
diff --git a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/cpp/FakeCcModule.java b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/cpp/FakeCcModule.java index c170eec..ae7a17b 100644 --- a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/cpp/FakeCcModule.java +++ b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/cpp/FakeCcModule.java
@@ -29,7 +29,7 @@ import com.google.devtools.build.lib.skylarkbuildapi.cpp.CcToolchainVariablesApi; import com.google.devtools.build.lib.skylarkbuildapi.cpp.CompilationInfoApi; import com.google.devtools.build.lib.skylarkbuildapi.cpp.FeatureConfigurationApi; -import com.google.devtools.build.lib.skylarkbuildapi.cpp.LibraryToLinkWrapperApi; +import com.google.devtools.build.lib.skylarkbuildapi.cpp.LibraryToLinkApi; import com.google.devtools.build.lib.skylarkbuildapi.cpp.LinkingInfoApi; import com.google.devtools.build.lib.skylarkinterface.StarlarkContext; import com.google.devtools.build.lib.syntax.Environment; @@ -50,7 +50,7 @@ CcCompilationOutputsApi, LinkingInfoApi, CcLinkingContextApi, - LibraryToLinkWrapperApi, + LibraryToLinkApi, CcToolchainVariablesApi, CcToolchainConfigInfoApi> { @@ -119,7 +119,7 @@ } @Override - public LibraryToLinkWrapperApi createLibraryLinkerInput( + public LibraryToLinkApi createLibraryLinkerInput( Object actions, Object featureConfiguration, Object ccToolchainProvider,
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java index 9f36e63..ebf1bf5 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java
@@ -207,7 +207,7 @@ assertThat(getFilesToBuild(hello)).containsExactly(archive, implSharedObject, implInterfaceSharedObject); assertThat( - LibraryToLinkWrapper.getDynamicLibrariesForLinking( + LibraryToLink.getDynamicLibrariesForLinking( hello.getProvider(CcNativeLibraryProvider.class).getTransitiveCcNativeLibraries())) .containsExactly(implInterfaceSharedObjectLink); assertThat( @@ -273,7 +273,7 @@ getSharedArtifact("_solib_" + cpu + "/libhello_Slibhello.so", hello); assertThat(getFilesToBuild(hello)).containsExactly(archive, sharedObject, implSharedObject); assertThat( - LibraryToLinkWrapper.getDynamicLibrariesForLinking( + LibraryToLink.getDynamicLibrariesForLinking( hello.getProvider(CcNativeLibraryProvider.class).getTransitiveCcNativeLibraries())) .containsExactly(sharedObjectLink); assertThat( @@ -1378,7 +1378,7 @@ ConfiguredTarget target = scratchConfiguredTarget("a", "foo", "cc_library(name = 'foo', srcs = ['foo.cc'])"); - LibraryToLinkWrapper library = + LibraryToLink library = Iterables.getOnlyElement(target.get(CcInfo.PROVIDER).getCcLinkingContext().getLibraries()); Artifact libraryToUse = library.getPicStaticLibrary(); if (libraryToUse == null) { @@ -1395,7 +1395,7 @@ ConfiguredTarget target = scratchConfiguredTarget("a", "foo", "cc_library(name = 'foo', srcs = ['libfoo.so'])"); - LibraryToLinkWrapper library = + LibraryToLink library = Iterables.getOnlyElement(target.get(CcInfo.PROVIDER).getCcLinkingContext().getLibraries()); assertThat(library.getStaticLibrary()).isNull(); assertThat(artifactsToStrings(ImmutableList.of(library.getResolvedSymlinkDynamicLibrary())))
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcCommonTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcCommonTest.java index b6c4fc3..e364bb6 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcCommonTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/SkylarkCcCommonTest.java
@@ -1219,8 +1219,8 @@ assertThat(userLinkFlags.getImmutableList()) .containsExactly("-la", "-lc2", "-DEP2_LINKOPT", "-lc1", "-lc2", "-DEP1_LINKOPT"); @SuppressWarnings("unchecked") - SkylarkList<LibraryToLinkWrapper> librariesToLink = - (SkylarkList<LibraryToLinkWrapper>) info.getValue("libraries_to_link", SkylarkList.class); + SkylarkList<LibraryToLink> librariesToLink = + (SkylarkList<LibraryToLink>) info.getValue("libraries_to_link", SkylarkList.class); assertThat( librariesToLink.stream() .filter(x -> x.getStaticLibrary() != null) @@ -1399,8 +1399,7 @@ ConfiguredTarget target = getConfiguredTarget("//foo:skylark_lib"); assertThat(target).isNotNull(); @SuppressWarnings("unchecked") - SkylarkList<LibraryToLinkWrapper> libraries = - (SkylarkList<LibraryToLinkWrapper>) target.get("libraries"); + SkylarkList<LibraryToLink> libraries = (SkylarkList<LibraryToLink>) target.get("libraries"); assertThat( libraries.stream() .map(x -> x.getResolvedSymlinkDynamicLibrary().getFilename()) @@ -1427,8 +1426,7 @@ assertThat(getConfiguredTarget("//foo:skylark_lib")).isNotNull(); ConfiguredTarget target = getConfiguredTarget("//foo:skylark_lib"); @SuppressWarnings("unchecked") - SkylarkList<LibraryToLinkWrapper> libraries = - (SkylarkList<LibraryToLinkWrapper>) target.get("libraries"); + SkylarkList<LibraryToLink> libraries = (SkylarkList<LibraryToLink>) target.get("libraries"); assertThat( libraries.stream() .map(x -> x.getResolvedSymlinkDynamicLibrary().getFilename())
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java index 1a34a4a..2583655 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java
@@ -54,7 +54,7 @@ import com.google.devtools.build.lib.rules.cpp.CppCompileAction; 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.LibraryToLinkWrapper; +import com.google.devtools.build.lib.rules.cpp.LibraryToLink; import com.google.devtools.build.lib.rules.objc.ObjcProvider.Key; import com.google.devtools.build.lib.testutil.TestConstants; import com.google.devtools.build.lib.vfs.PathFragment; @@ -1477,9 +1477,9 @@ Iterable<Artifact> linkerInputArtifacts = Iterables.transform( objcProvider.get(CC_LIBRARY), - new Function<LibraryToLinkWrapper, Artifact>() { + new Function<LibraryToLink, Artifact>() { @Override - public Artifact apply(LibraryToLinkWrapper library) { + public Artifact apply(LibraryToLink library) { return library.getStaticLibrary(); } });