public class DarwinLinker extends DelegatingTool implements Linker, HasLinkerMap, HasIncrementalThinLTO, HasLTO
Linker containing information specific to the Darwin implementation.Linker.CxxRuntimeType, Linker.ExtraOutputsDeriver, Linker.LinkableDepType, Linker.LinkType, Linker.SharedLibraryLoadingType| Constructor and Description |
|---|
DarwinLinker(Tool tool,
boolean cacheLinks,
boolean scrubConcurrently) |
getCommandPrefix, getEnvironmentclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetCommandPrefix, getEnvironmentpublic DarwinLinker(Tool tool, boolean cacheLinks, boolean scrubConcurrently)
public com.google.common.collect.ImmutableList<FileScrubber> getScrubbers(com.google.common.collect.ImmutableMap<Path,Path> cellRootMap)
getScrubbers in interface LinkercellRootMap - Replacement map for cell roots found in paths, to some suitably normalized
form (such as a relative path from root cell).public Iterable<Arg> linkWhole(Arg input, SourcePathResolverAdapter resolver)
public Iterable<Arg> linkerMap(Path output)
linkerMap in interface HasLinkerMapoutput - the path of the output binarypublic Path linkerMapPath(Path output)
linkerMapPath in interface HasLinkerMapoutput - the path of the output binarypublic Iterable<Arg> incrementalThinLTOFlags(Path output)
incrementalThinLTOFlags in interface HasIncrementalThinLTOoutput - the path of the output index filespublic Iterable<Arg> fileList(Path fileListPath)
Linkerpublic String origin()
public String libOrigin()
public String searchPathEnvVar()
searchPathEnvVar in interface Linkerpublic String preloadEnvVar()
preloadEnvVar in interface Linkerpublic com.google.common.collect.ImmutableList<Arg> createUndefinedSymbolsLinkerArgs(ProjectFilesystem projectFilesystem, BuildRuleParams baseParams, ActionGraphBuilder graphBuilder, BuildTarget target, com.google.common.collect.ImmutableList<? extends SourcePath> symbolFiles)
LinkerBuildRule, in which case, target will be used as its name.createUndefinedSymbolsLinkerArgs in interface Linkertarget - the name to give any BuildRule that needs to be created to facilitate
generating the arguments,symbolFiles - the symbols files, each listing undefined symbols, one per line, to add to
the link.public Iterable<String> getNoAsNeededSharedLibsFlags()
getNoAsNeededSharedLibsFlags in interface Linkerpublic Iterable<String> getIgnoreUndefinedSymbolsFlags()
getIgnoreUndefinedSymbolsFlags in interface Linkerpublic Iterable<Arg> getSharedLibFlag()
getSharedLibFlag in interface Linkerpublic Iterable<String> outputArgs(String path)
outputArgs in interface Linkerpublic Linker.SharedLibraryLoadingType getSharedLibraryLoadingType()
getSharedLibraryLoadingType in interface Linkerpublic Optional<Linker.ExtraOutputsDeriver> getExtraOutputsDeriver()
getExtraOutputsDeriver in interface Linkerpublic boolean getUseUnixPathSeparator()
getUseUnixPathSeparator in interface Linker