NativeBasePlugin (Gradle API 4.9)
Date: 2018-07-16

org.gradle.language.plugins

## Class NativeBasePlugin

- java.lang.Object
- - org.gradle.language.plugins.NativeBasePlugin

- All Implemented Interfaces:
    Plugin<org.gradle.api.internal.project.ProjectInternal>

      @Incubating
      public class NativeBasePlugin
      extends Object
      implements Plugin<org.gradle.api.internal.project.ProjectInternal>

  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 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`.
  Since:
    4.5

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `NativeBasePlugin()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `apply(org.gradle.api.internal.project.ProjectInternal 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

    - #### NativeBasePlugin

          public NativeBasePlugin()

  - ### Method Detail

    - #### apply

          public void apply(org.gradle.api.internal.project.ProjectInternal project)

      Description copied from interface: `Plugin`
      Apply this plugin to the given target object.
      Specified by:
        `apply` in interface `Plugin<org.gradle.api.internal.project.ProjectInternal>`
      Parameters:
        `project` - The target object