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();
}
});