Annotation Type ComponentBinaries


@Retention(RUNTIME) @Target(METHOD) @Incubating @Deprecated public @interface ComponentBinaries
Deprecated.
The Gradle software model is deprecated and will be removed in Gradle 10. Use the new component model (e.g. cpp-application, cpp-library, swift-application, swift-library, xctest) instead.
Declares the binaries that should be built for a custom ComponentSpec type. The following example demonstrates how to register a binary for a custom component type using a plugin with a ComponentBinaries annotation. Furthermore the plugin registers 'DefaultSampleBinary' as implementation for BinarySpec.
interface SampleComponent extends VariantComponentSpec {}
interface SampleBinary extends BinarySpec {}
class DefaultSampleBinary extends BaseBinarySpec implements SampleBinary {}

apply plugin: MyCustomBinariesPlugin

class MyCustomBinariesPlugin extends RuleSource {
    @ComponentType
    void register(TypeBuilder<SampleBinary> builder) {
        builder.defaultImplementation(DefaultSampleBinary)
    }

    @ComponentBinaries
    void createBinariesForSampleLibrary(ModelMap<SampleBinary> binaries, SampleComponent component) {
        binaries.create("${component.name}Binary", SampleBinary)
    }
}