public class AppleLibraryDescription extends Object implements DescriptionWithTargetGraph<AppleLibraryDescriptionArg>, Flavored, ImplicitDepsInferringDescription<com.facebook.buck.apple.AppleLibraryDescription.AbstractAppleLibraryDescriptionArg>, ImplicitFlavorsInferringDescription, MetadataProvidingDescription<AppleLibraryDescriptionArg>, VersionPropagator<AppleLibraryDescriptionArg>
Modifier and Type | Class and Description |
---|---|
static class |
AppleLibraryDescription.Type |
Modifier and Type | Field and Description |
---|---|
static FlavorDomain<AppleLibraryDescription.Type> |
LIBRARY_TYPE |
static FlavorDomain<com.facebook.buck.apple.AppleLibraryDescription.MetadataType> |
METADATA_TYPE |
Constructor and Description |
---|
AppleLibraryDescription(ToolchainProvider toolchainProvider,
XCodeDescriptions xcodeDescriptions,
SwiftLibraryDescription swiftDelegate,
AppleConfig appleConfig,
CxxBuckConfig cxxBuckConfig,
SwiftBuckConfig swiftBuckConfig,
CxxLibraryImplicitFlavors cxxLibraryImplicitFlavors,
CxxLibraryFlavored cxxLibraryFlavored,
CxxLibraryFactory cxxLibraryFactory,
CxxLibraryMetadataFactory cxxLibraryMetadataFactory) |
Modifier and Type | Method and Description |
---|---|
com.google.common.collect.ImmutableSortedSet<Flavor> |
addImplicitFlavors(com.google.common.collect.ImmutableSortedSet<Flavor> argDefaultFlavors,
TargetConfiguration toolchainTargetConfiguration) |
BuildRule |
createBuildRule(BuildRuleCreationContextWithTargetGraph context,
BuildTarget buildTarget,
BuildRuleParams params,
AppleLibraryDescriptionArg args)
Create a
BuildRule for the given BuildRuleParams . |
<A extends AppleNativeTargetDescriptionArg> |
createLibraryBuildRule(BuildRuleCreationContextWithTargetGraph context,
BuildTarget buildTarget,
BuildRuleParams params,
ActionGraphBuilder graphBuilder,
A args,
Optional<Linker.LinkableDepType> linkableDepType,
Optional<SourcePath> bundleLoader,
com.google.common.collect.ImmutableSet<BuildTarget> blacklist,
com.google.common.collect.ImmutableSortedSet<BuildTarget> extraCxxDeps,
CxxLibraryDescription.TransitiveCxxPreprocessorInputFunction transitiveCxxPreprocessorInput) |
<U> Optional<U> |
createMetadata(BuildTarget buildTarget,
ActionGraphBuilder graphBuilder,
CellPathResolver cellRoots,
AppleLibraryDescriptionArg args,
Optional<com.google.common.collect.ImmutableMap<BuildTarget,Version>> selectedVersions,
Class<U> metadataClass) |
Optional<BuildRule> |
createSwiftBuildRule(BuildTarget buildTarget,
ProjectFilesystem projectFilesystem,
ActionGraphBuilder graphBuilder,
CellPathResolver cellRoots,
AppleNativeTargetDescriptionArg args,
Optional<AppleLibrarySwiftDelegate> swiftDelegate) |
void |
findDepsForTargetFromConstructorArgs(BuildTarget buildTarget,
CellNameResolver cellRoots,
com.facebook.buck.apple.AppleLibraryDescription.AbstractAppleLibraryDescriptionArg constructorArg,
com.google.common.collect.ImmutableCollection.Builder<BuildTarget> extraDepsBuilder,
com.google.common.collect.ImmutableCollection.Builder<BuildTarget> targetGraphOnlyDepsBuilder) |
Optional<com.google.common.collect.ImmutableSet<FlavorDomain<?>>> |
flavorDomains(TargetConfiguration toolchainTargetConfiguration) |
Class<AppleLibraryDescriptionArg> |
getConstructorArgType()
The type of the constructor argument that is used by this description to create a rule
|
boolean |
hasFlavors(com.google.common.collect.ImmutableSet<Flavor> flavors,
TargetConfiguration toolchainTargetConfiguration) |
static boolean |
isNotStaticallyLinkedLibraryNode(TargetNode<CxxLibraryDescription.CommonArg> node) |
static Optional<CxxPreprocessorInput> |
underlyingModuleCxxPreprocessorInput(BuildTarget target,
ActionGraphBuilder graphBuilder,
CxxPlatform platform) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
producesCacheableSubgraph
getConfigurationDeps
public static final FlavorDomain<com.facebook.buck.apple.AppleLibraryDescription.MetadataType> METADATA_TYPE
public static final FlavorDomain<AppleLibraryDescription.Type> LIBRARY_TYPE
public AppleLibraryDescription(ToolchainProvider toolchainProvider, XCodeDescriptions xcodeDescriptions, SwiftLibraryDescription swiftDelegate, AppleConfig appleConfig, CxxBuckConfig cxxBuckConfig, SwiftBuckConfig swiftBuckConfig, CxxLibraryImplicitFlavors cxxLibraryImplicitFlavors, CxxLibraryFlavored cxxLibraryFlavored, CxxLibraryFactory cxxLibraryFactory, CxxLibraryMetadataFactory cxxLibraryMetadataFactory)
public Class<AppleLibraryDescriptionArg> getConstructorArgType()
BaseDescription
getConstructorArgType
in interface BaseDescription<AppleLibraryDescriptionArg>
public Optional<com.google.common.collect.ImmutableSet<FlavorDomain<?>>> flavorDomains(TargetConfiguration toolchainTargetConfiguration)
flavorDomains
in interface Flavored
public boolean hasFlavors(com.google.common.collect.ImmutableSet<Flavor> flavors, TargetConfiguration toolchainTargetConfiguration)
hasFlavors
in interface Flavored
flavors
- The set of Flavor
s to consider. All must match.BuildRule
of the given Flavor
can be created.public Optional<BuildRule> createSwiftBuildRule(BuildTarget buildTarget, ProjectFilesystem projectFilesystem, ActionGraphBuilder graphBuilder, CellPathResolver cellRoots, AppleNativeTargetDescriptionArg args, Optional<AppleLibrarySwiftDelegate> swiftDelegate)
public BuildRule createBuildRule(BuildRuleCreationContextWithTargetGraph context, BuildTarget buildTarget, BuildRuleParams params, AppleLibraryDescriptionArg args)
DescriptionWithTargetGraph
BuildRule
for the given BuildRuleParams
. Note that the BuildTarget
referred to in the params
contains the Flavor
to create.createBuildRule
in interface DescriptionWithTargetGraph<AppleLibraryDescriptionArg>
args
- A constructor argument, of type as returned by BaseDescription.getConstructorArgType()
.BuildRule
that describes the default flavour of the rule being described.public <A extends AppleNativeTargetDescriptionArg> BuildRule createLibraryBuildRule(BuildRuleCreationContextWithTargetGraph context, BuildTarget buildTarget, BuildRuleParams params, ActionGraphBuilder graphBuilder, A args, Optional<Linker.LinkableDepType> linkableDepType, Optional<SourcePath> bundleLoader, com.google.common.collect.ImmutableSet<BuildTarget> blacklist, com.google.common.collect.ImmutableSortedSet<BuildTarget> extraCxxDeps, CxxLibraryDescription.TransitiveCxxPreprocessorInputFunction transitiveCxxPreprocessorInput)
bundleLoader
- The binary in which the current library will be (dynamically) loaded into.public <U> Optional<U> createMetadata(BuildTarget buildTarget, ActionGraphBuilder graphBuilder, CellPathResolver cellRoots, AppleLibraryDescriptionArg args, Optional<com.google.common.collect.ImmutableMap<BuildTarget,Version>> selectedVersions, Class<U> metadataClass)
createMetadata
in interface MetadataProvidingDescription<AppleLibraryDescriptionArg>
public com.google.common.collect.ImmutableSortedSet<Flavor> addImplicitFlavors(com.google.common.collect.ImmutableSortedSet<Flavor> argDefaultFlavors, TargetConfiguration toolchainTargetConfiguration)
addImplicitFlavors
in interface ImplicitFlavorsInferringDescription
public void findDepsForTargetFromConstructorArgs(BuildTarget buildTarget, CellNameResolver cellRoots, com.facebook.buck.apple.AppleLibraryDescription.AbstractAppleLibraryDescriptionArg constructorArg, com.google.common.collect.ImmutableCollection.Builder<BuildTarget> extraDepsBuilder, com.google.common.collect.ImmutableCollection.Builder<BuildTarget> targetGraphOnlyDepsBuilder)
findDepsForTargetFromConstructorArgs
in interface ImplicitDepsInferringDescription<com.facebook.buck.apple.AppleLibraryDescription.AbstractAppleLibraryDescriptionArg>
public static boolean isNotStaticallyLinkedLibraryNode(TargetNode<CxxLibraryDescription.CommonArg> node)
public static Optional<CxxPreprocessorInput> underlyingModuleCxxPreprocessorInput(BuildTarget target, ActionGraphBuilder graphBuilder, CxxPlatform platform)