Class NativeBasePlugin

  • All Implemented Interfaces:
    Plugin<Project>

    @Incubating
    public abstract class NativeBasePlugin
    extends java.lang.Object
    implements Plugin<Project>
    A common base plugin for the native plugins.

    Expects plugins to register the native components in the Project.getComponents() container, and defines a number of rules that act on these components to configure them.

    • Configures the "assemble" task to build the development binary of the main component, if present. Expects the main component to be of type ProductionComponent and ComponentWithBinaries.
    • Adds an "assemble" task for each binary of the main component.
    • Adds tasks to compile and link an executable. Currently requires component implements internal API ConfigurableComponentWithExecutable.
    • Adds tasks to compile and link a shared library. Currently requires component implements internal API ConfigurableComponentWithSharedLibrary.
    • Adds tasks to compile and create a static library. Currently requires component implements internal API ConfigurableComponentWithStaticLibrary.
    • Adds outgoing configuration and artifacts for link file. Currently requires component implements internal API ConfigurableComponentWithLinkUsage.
    • Adds outgoing configuration and artifacts for runtime file. Currently requires component implements internal API ConfigurableComponentWithRuntimeUsage.
    • Maven publications. Currently requires component implements internal API PublicationAwareComponent.
    • Adds TargetMachineFactory for configuring TargetMachine.
    Since:
    4.5
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void apply​(Project project)
      Apply this plugin to the given target object.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

    • Method Detail

      • apply

        public void apply​(Project project)
        Description copied from interface: Plugin
        Apply this plugin to the given target object.
        Specified by:
        apply in interface Plugin<Project>
        Parameters:
        project - The target object