# Class NativeComponentModelPlugin.Rules

java.lang.Object
org.gradle.model.RuleSource
org.gradle.nativeplatform.plugins.NativeComponentModelPlugin.Rules

Enclosing class:
  `NativeComponentModelPlugin`

static class NativeComponentModelPlugin.Rules extends RuleSource
Rules.

Since:
  2.2

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Rules()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `(package private) void`
  `applyHeaderSourceSetConventions(HeaderExportingSourceSet headerSourceSet)`
  `(package private) BuildTypeContainer`
  `buildTypes(ExtensionContainer extensionContainer)`
  `(package private) void`
  `configureGeneratedSourceSets(org.gradle.language.base.internal.LanguageSourceSetInternal languageSourceSet)`
  `(package private) void`
  `configurePreCompiledHeaderCompileTasks(TaskContainer tasks, BinaryContainer binaries, org.gradle.language.base.internal.registry.LanguageTransformContainer languageTransforms, org.gradle.internal.service.ServiceRegistry serviceRegistry)`
  `(package private) void`
  `configurePrefixHeaderFiles(SourceComponentSpec componentSpec, File buildDir)`
  `(package private) void`
  `configurePrefixHeaderGenerationTasks(TaskContainer tasks, ComponentSpecContainer components)`
  `(package private) void`
  `createBinaries(org.gradle.nativeplatform.internal.TargetedNativeComponentInternal nativeComponent, org.gradle.platform.base.internal.PlatformResolvers platforms, BuildTypeContainer buildTypes, FlavorContainer flavors, org.gradle.internal.service.ServiceRegistry serviceRegistry)`
  `void`
  `createBuildDependentBinariesTasks(ModelMap<Task> tasks, org.gradle.nativeplatform.internal.NativeBinarySpecInternal nativeBinary)`
  `void`
  `createBuildDependentComponentsTasks(ModelMap<Task> tasks, ComponentSpecContainer components, BinaryContainer binaries)`
  `void`
  `createDefaultBuildTypes(BuildTypeContainer buildTypes)`
  Create default build types.
  `void`
  `createDefaultFlavor(FlavorContainer flavors)`
  Create default flavor.
  `(package private) void`
  `createInstallTasks(ModelMap<Task> tasks, BinaryContainer binaries)`
  Can't use @BinaryTasks because the binary is not _built-by_ the install task, but it is associated with it.
  `void`
  `executableTasks(ModelMap<Task> tasks, org.gradle.nativeplatform.internal.NativeExecutableBinarySpecInternal executableBinary)`
  `(package private) FlavorContainer`
  `flavors(ExtensionContainer extensionContainer)`
  `(package private) void`
  `nativeExecutable(TypeBuilder<NativeExecutableSpec> builder)`
  `(package private) void`
  `nativeLibrary(TypeBuilder<NativeLibrarySpec> builder)`
  `void`
  `registerFactoryForCustomNativePlatforms(PlatformContainer platforms, org.gradle.internal.reflect.Instantiator instantiator)`
  `(package private) void`
  `registerNativeComponent(TypeBuilder<NativeComponentSpec> builder)`
  `(package private) void`
  `registerNativeDependentBinariesResolutionStrategy(org.gradle.platform.base.internal.dependents.DependentBinariesResolver resolver, org.gradle.internal.service.ServiceRegistry serviceRegistry)`
  `(package private) void`
  `registerNativeExecutableBinaryType(TypeBuilder<NativeExecutableBinarySpec> builder)`
  `void`
  `registerNativePlatformResolver(org.gradle.platform.base.internal.PlatformResolvers resolvers, org.gradle.internal.service.ServiceRegistry serviceRegistry)`
  `(package private) void`
  `registerSharedLibraryBinaryType(TypeBuilder<SharedLibraryBinarySpec> builder)`
  `(package private) void`
  `registerStaticLibraryBinaryType(TypeBuilder<StaticLibraryBinarySpec> builder)`
  `(package private) void`
  `registerTargetedNativeComponent(TypeBuilder<TargetedNativeComponent> builder)`
  `(package private) Repositories`
  `repositories(org.gradle.internal.service.ServiceRegistry serviceRegistry, FlavorContainer flavors, PlatformContainer platforms, BuildTypeContainer buildTypes, org.gradle.api.internal.CollectionCallbackActionDecorator callbackActionDecorator)`
  `void`
  `sharedLibraryTasks(ModelMap<Task> tasks, org.gradle.nativeplatform.internal.SharedLibraryBinarySpecInternal binary)`
  `void`
  `staticLibraryTasks(ModelMap<Task> tasks, org.gradle.nativeplatform.internal.StaticLibraryBinarySpecInternal binary)`
  `(package private) org.gradle.nativeplatform.toolchain.internal.NativeToolChainRegistryInternal`
  `toolChains(ExtensionContainer extensionContainer)`
  `void`
  `wireBuildDependentTasks(ModelMap<Task> tasks, BinaryContainer binaries, org.gradle.platform.base.internal.dependents.DependentBinariesResolver dependentsResolver, org.gradle.internal.service.ServiceRegistry serviceRegistry)`

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### Rules

    Rules()

- ## Method Details

  - ### nativeExecutable

    void nativeExecutable(TypeBuilder<NativeExecutableSpec> builder)

  - ### nativeLibrary

    void nativeLibrary(TypeBuilder<NativeLibrarySpec> builder)

  - ### registerTargetedNativeComponent

    void registerTargetedNativeComponent(TypeBuilder<TargetedNativeComponent> builder)

  - ### registerNativeComponent

    void registerNativeComponent(TypeBuilder<NativeComponentSpec> builder)

  - ### repositories

    Repositories repositories(org.gradle.internal.service.ServiceRegistry serviceRegistry, FlavorContainer flavors, PlatformContainer platforms, BuildTypeContainer buildTypes, org.gradle.api.internal.CollectionCallbackActionDecorator callbackActionDecorator)

  - ### toolChains

    org.gradle.nativeplatform.toolchain.internal.NativeToolChainRegistryInternal toolChains(ExtensionContainer extensionContainer)

  - ### buildTypes

    BuildTypeContainer buildTypes(ExtensionContainer extensionContainer)

  - ### flavors

    FlavorContainer flavors(ExtensionContainer extensionContainer)

  - ### registerNativePlatformResolver

    public void registerNativePlatformResolver(org.gradle.platform.base.internal.PlatformResolvers resolvers, org.gradle.internal.service.ServiceRegistry serviceRegistry)

  - ### registerFactoryForCustomNativePlatforms

    public void registerFactoryForCustomNativePlatforms(PlatformContainer platforms, org.gradle.internal.reflect.Instantiator instantiator)

  - ### registerSharedLibraryBinaryType

    void registerSharedLibraryBinaryType(TypeBuilder<SharedLibraryBinarySpec> builder)

  - ### registerStaticLibraryBinaryType

    void registerStaticLibraryBinaryType(TypeBuilder<StaticLibraryBinarySpec> builder)

  - ### registerNativeExecutableBinaryType

    void registerNativeExecutableBinaryType(TypeBuilder<NativeExecutableBinarySpec> builder)

  - ### createDefaultBuildTypes

    public void createDefaultBuildTypes(BuildTypeContainer buildTypes)
    Create default build types.
    Since:
      2.2

  - ### createDefaultFlavor

    public void createDefaultFlavor(FlavorContainer flavors)
    Create default flavor.
    Since:
      2.2

  - ### configureGeneratedSourceSets

    void configureGeneratedSourceSets(org.gradle.language.base.internal.LanguageSourceSetInternal languageSourceSet)

  - ### configurePrefixHeaderFiles

    void configurePrefixHeaderFiles(SourceComponentSpec componentSpec, File buildDir)

  - ### configurePrefixHeaderGenerationTasks

    void configurePrefixHeaderGenerationTasks(TaskContainer tasks, ComponentSpecContainer components)

  - ### configurePreCompiledHeaderCompileTasks

    void configurePreCompiledHeaderCompileTasks(TaskContainer tasks, BinaryContainer binaries, org.gradle.language.base.internal.registry.LanguageTransformContainer languageTransforms, org.gradle.internal.service.ServiceRegistry serviceRegistry)

  - ### sharedLibraryTasks

    public void sharedLibraryTasks(ModelMap<Task> tasks, org.gradle.nativeplatform.internal.SharedLibraryBinarySpecInternal binary)

  - ### staticLibraryTasks

    public void staticLibraryTasks(ModelMap<Task> tasks, org.gradle.nativeplatform.internal.StaticLibraryBinarySpecInternal binary)

  - ### executableTasks

    public void executableTasks(ModelMap<Task> tasks, org.gradle.nativeplatform.internal.NativeExecutableBinarySpecInternal executableBinary)

  - ### createBuildDependentComponentsTasks

    public void createBuildDependentComponentsTasks(ModelMap<Task> tasks, ComponentSpecContainer components, BinaryContainer binaries)

  - ### createBuildDependentBinariesTasks

    public void createBuildDependentBinariesTasks(ModelMap<Task> tasks, org.gradle.nativeplatform.internal.NativeBinarySpecInternal nativeBinary)

  - ### wireBuildDependentTasks

    public void wireBuildDependentTasks(ModelMap<Task> tasks, BinaryContainer binaries, org.gradle.platform.base.internal.dependents.DependentBinariesResolver dependentsResolver, org.gradle.internal.service.ServiceRegistry serviceRegistry)

  - ### createInstallTasks

    void createInstallTasks(ModelMap<Task> tasks, BinaryContainer binaries)
    Can't use @BinaryTasks because the binary is not _built-by_ the install task, but it is associated with it. Rule is called multiple times, so need to check for task existence before creating.

  - ### applyHeaderSourceSetConventions

    void applyHeaderSourceSetConventions(HeaderExportingSourceSet headerSourceSet)

  - ### createBinaries

    void createBinaries(org.gradle.nativeplatform.internal.TargetedNativeComponentInternal nativeComponent, org.gradle.platform.base.internal.PlatformResolvers platforms, BuildTypeContainer buildTypes, FlavorContainer flavors, org.gradle.internal.service.ServiceRegistry serviceRegistry)

  - ### registerNativeDependentBinariesResolutionStrategy

    void registerNativeDependentBinariesResolutionStrategy(org.gradle.platform.base.internal.dependents.DependentBinariesResolver resolver, org.gradle.internal.service.ServiceRegistry serviceRegistry)