Search in sources :

Example 1 with TargetMachineFactory

use of org.gradle.nativeplatform.TargetMachineFactory in project gradle by gradle.

the class SwiftApplicationPlugin method apply.

@Override
public void apply(final Project project) {
    project.getPluginManager().apply(SwiftBasePlugin.class);
    final ObjectFactory objectFactory = project.getObjects();
    final ProviderFactory providers = project.getProviders();
    // Add the application and extension
    final DefaultSwiftApplication application = componentFactory.newInstance(SwiftApplication.class, DefaultSwiftApplication.class, "main");
    project.getExtensions().add(SwiftApplication.class, "application", application);
    project.getComponents().add(application);
    // Setup component
    application.getModule().convention(GUtil.toCamelCase(project.getName()));
    application.getTargetMachines().convention(Dimensions.useHostAsDefaultTargetMachine(targetMachineFactory));
    application.getDevelopmentBinary().convention(project.provider(() -> {
        return application.getBinaries().get().stream().filter(SwiftExecutable.class::isInstance).map(SwiftExecutable.class::cast).filter(binary -> !binary.isOptimized() && Architectures.forInput(binary.getTargetMachine().getArchitecture().getName()).equals(DefaultNativePlatform.host().getArchitecture())).findFirst().orElse(application.getBinaries().get().stream().filter(SwiftExecutable.class::isInstance).map(SwiftExecutable.class::cast).filter(binary -> !binary.isOptimized()).findFirst().orElse(null));
    }));
    project.afterEvaluate(p -> {
        // TODO: make build type configurable for components
        Dimensions.applicationVariants(application.getModule(), application.getTargetMachines(), objectFactory, attributesFactory, providers.provider(() -> project.getGroup().toString()), providers.provider(() -> project.getVersion().toString()), variantIdentity -> {
            if (tryToBuildOnHost(variantIdentity)) {
                application.getSourceCompatibility().finalizeValue();
                ToolChainSelector.Result<SwiftPlatform> result = toolChainSelector.select(SwiftPlatform.class, new DefaultSwiftPlatform(variantIdentity.getTargetMachine(), application.getSourceCompatibility().getOrNull()));
                application.addExecutable(variantIdentity, variantIdentity.isDebuggable() && !variantIdentity.isOptimized(), result.getTargetPlatform(), result.getToolChain(), result.getPlatformToolProvider());
            }
        });
        // Configure the binaries
        application.getBinaries().realizeNow();
    });
}
Also used : ImmutableAttributesFactory(org.gradle.api.internal.attributes.ImmutableAttributesFactory) NativeComponentFactory(org.gradle.language.internal.NativeComponentFactory) SwiftApplication(org.gradle.language.swift.SwiftApplication) SwiftPlatform(org.gradle.language.swift.SwiftPlatform) Project(org.gradle.api.Project) Dimensions(org.gradle.language.nativeplatform.internal.Dimensions) ToolChainSelector(org.gradle.language.nativeplatform.internal.toolchains.ToolChainSelector) Dimensions.tryToBuildOnHost(org.gradle.language.nativeplatform.internal.Dimensions.tryToBuildOnHost) GUtil(org.gradle.util.internal.GUtil) Inject(javax.inject.Inject) ProviderFactory(org.gradle.api.provider.ProviderFactory) SwiftExecutable(org.gradle.language.swift.SwiftExecutable) DefaultNativePlatform(org.gradle.nativeplatform.platform.internal.DefaultNativePlatform) ObjectFactory(org.gradle.api.model.ObjectFactory) Architectures(org.gradle.nativeplatform.platform.internal.Architectures) TargetMachineFactory(org.gradle.nativeplatform.TargetMachineFactory) DefaultSwiftPlatform(org.gradle.language.swift.internal.DefaultSwiftPlatform) DefaultSwiftApplication(org.gradle.language.swift.internal.DefaultSwiftApplication) Plugin(org.gradle.api.Plugin) DefaultSwiftPlatform(org.gradle.language.swift.internal.DefaultSwiftPlatform) ObjectFactory(org.gradle.api.model.ObjectFactory) SwiftExecutable(org.gradle.language.swift.SwiftExecutable) DefaultSwiftApplication(org.gradle.language.swift.internal.DefaultSwiftApplication) ProviderFactory(org.gradle.api.provider.ProviderFactory) ToolChainSelector(org.gradle.language.nativeplatform.internal.toolchains.ToolChainSelector) SwiftPlatform(org.gradle.language.swift.SwiftPlatform) DefaultSwiftPlatform(org.gradle.language.swift.internal.DefaultSwiftPlatform)

Example 2 with TargetMachineFactory

use of org.gradle.nativeplatform.TargetMachineFactory in project gradle by gradle.

the class CppApplicationPlugin method apply.

@Override
public void apply(final Project project) {
    project.getPluginManager().apply(CppBasePlugin.class);
    final ObjectFactory objectFactory = project.getObjects();
    final ProviderFactory providers = project.getProviders();
    // Add the application and extension
    final DefaultCppApplication application = componentFactory.newInstance(CppApplication.class, DefaultCppApplication.class, "main");
    project.getExtensions().add(CppApplication.class, "application", application);
    project.getComponents().add(application);
    // Configure the component
    application.getBaseName().convention(project.getName());
    application.getTargetMachines().convention(useHostAsDefaultTargetMachine(targetMachineFactory));
    application.getDevelopmentBinary().convention(project.provider(() -> {
        // Prefer the host architecture, if present, else use the first architecture specified
        return application.getBinaries().get().stream().filter(CppExecutable.class::isInstance).map(CppExecutable.class::cast).filter(binary -> !binary.isOptimized() && Architectures.forInput(binary.getTargetMachine().getArchitecture().getName()).equals(DefaultNativePlatform.host().getArchitecture())).findFirst().orElse(application.getBinaries().get().stream().filter(CppExecutable.class::isInstance).map(CppExecutable.class::cast).filter(binary -> !binary.isOptimized()).findFirst().orElse(null));
    }));
    application.getBinaries().whenElementKnown(binary -> {
        application.getMainPublication().addVariant(binary);
    });
    project.afterEvaluate(p -> {
        // TODO: make build type configurable for components
        Dimensions.applicationVariants(application.getBaseName(), application.getTargetMachines(), objectFactory, attributesFactory, providers.provider(() -> project.getGroup().toString()), providers.provider(() -> project.getVersion().toString()), variantIdentity -> {
            if (tryToBuildOnHost(variantIdentity)) {
                ToolChainSelector.Result<CppPlatform> result = toolChainSelector.select(CppPlatform.class, new DefaultCppPlatform(variantIdentity.getTargetMachine()));
                application.addExecutable(variantIdentity, result.getTargetPlatform(), result.getToolChain(), result.getPlatformToolProvider());
            } else {
                // Known, but not buildable
                application.getMainPublication().addVariant(variantIdentity);
            }
        });
        // Configure the binaries
        application.getBinaries().realizeNow();
    });
}
Also used : CppApplication(org.gradle.language.cpp.CppApplication) ImmutableAttributesFactory(org.gradle.api.internal.attributes.ImmutableAttributesFactory) NativeComponentFactory(org.gradle.language.internal.NativeComponentFactory) Dimensions.useHostAsDefaultTargetMachine(org.gradle.language.nativeplatform.internal.Dimensions.useHostAsDefaultTargetMachine) Project(org.gradle.api.Project) Dimensions(org.gradle.language.nativeplatform.internal.Dimensions) CppExecutable(org.gradle.language.cpp.CppExecutable) ToolChainSelector(org.gradle.language.nativeplatform.internal.toolchains.ToolChainSelector) Dimensions.tryToBuildOnHost(org.gradle.language.nativeplatform.internal.Dimensions.tryToBuildOnHost) CppPlatform(org.gradle.language.cpp.CppPlatform) Inject(javax.inject.Inject) ProviderFactory(org.gradle.api.provider.ProviderFactory) DefaultNativePlatform(org.gradle.nativeplatform.platform.internal.DefaultNativePlatform) ObjectFactory(org.gradle.api.model.ObjectFactory) Architectures(org.gradle.nativeplatform.platform.internal.Architectures) TargetMachineFactory(org.gradle.nativeplatform.TargetMachineFactory) DefaultCppApplication(org.gradle.language.cpp.internal.DefaultCppApplication) Plugin(org.gradle.api.Plugin) DefaultCppPlatform(org.gradle.language.cpp.internal.DefaultCppPlatform) CppPlatform(org.gradle.language.cpp.CppPlatform) DefaultCppPlatform(org.gradle.language.cpp.internal.DefaultCppPlatform) ObjectFactory(org.gradle.api.model.ObjectFactory) ProviderFactory(org.gradle.api.provider.ProviderFactory) DefaultCppPlatform(org.gradle.language.cpp.internal.DefaultCppPlatform) CppExecutable(org.gradle.language.cpp.CppExecutable) ToolChainSelector(org.gradle.language.nativeplatform.internal.toolchains.ToolChainSelector) DefaultCppApplication(org.gradle.language.cpp.internal.DefaultCppApplication)

Example 3 with TargetMachineFactory

use of org.gradle.nativeplatform.TargetMachineFactory in project gradle by gradle.

the class XCTestConventionPlugin method apply.

@Override
public void apply(Project project) {
    project.getPluginManager().apply(SwiftBasePlugin.class);
    project.getPluginManager().apply(NativeTestingBasePlugin.class);
    final ProviderFactory providers = project.getProviders();
    // Create test suite component
    // TODO - Reuse logic from Swift*Plugin
    // TODO - component name and extension name aren't the same
    // TODO - should use `src/xctest/swift` as the convention?
    // Add the test suite and extension
    DefaultSwiftXCTestSuite testSuite = componentFactory.newInstance(SwiftXCTestSuite.class, DefaultSwiftXCTestSuite.class, "test");
    project.getExtensions().add(SwiftXCTestSuite.class, "xctest", testSuite);
    project.getComponents().add(testSuite);
    // Setup component
    testSuite.getModule().set(GUtil.toCamelCase(project.getName() + "Test"));
    final DefaultSwiftXCTestSuite testComponent = testSuite;
    testComponent.getTargetMachines().convention(useHostAsDefaultTargetMachine(targetMachineFactory));
    testComponent.getSourceCompatibility().convention(testComponent.getTestedComponent().flatMap(it -> it.getSourceCompatibility()));
    final String mainComponentName = "main";
    project.getComponents().withType(ProductionSwiftComponent.class, component -> {
        if (mainComponentName.equals(component.getName())) {
            testComponent.getTargetMachines().convention(component.getTargetMachines());
            testComponent.getTestedComponent().convention(component);
        }
    });
    testComponent.getTestBinary().convention(project.provider(() -> {
        return testComponent.getBinaries().get().stream().filter(SwiftXCTestBinary.class::isInstance).map(SwiftXCTestBinary.class::cast).findFirst().orElse(null);
    }));
    testComponent.getBinaries().whenElementKnown(DefaultSwiftXCTestBinary.class, binary -> {
        // Create test suite test task
        TaskProvider<XCTest> testingTask = project.getTasks().register("xcTest", XCTest.class, task -> {
            task.setGroup(LifecycleBasePlugin.VERIFICATION_GROUP);
            task.setDescription("Executes XCTest suites");
            task.getTestInstallDirectory().set(binary.getInstallDirectory());
            task.getRunScriptFile().set(binary.getRunScriptFile());
            task.getWorkingDirectory().set(binary.getInstallDirectory());
        });
        binary.getRunTask().set(testingTask);
        configureTestSuiteBuildingTasks(project, binary);
        configureTestSuiteWithTestedComponentWhenAvailable(project, testComponent, binary);
    });
    project.afterEvaluate(p -> {
        final SwiftComponent mainComponent = testComponent.getTestedComponent().getOrNull();
        final SetProperty<TargetMachine> mainTargetMachines = mainComponent != null ? mainComponent.getTargetMachines() : null;
        Dimensions.unitTestVariants(testComponent.getModule(), testComponent.getTargetMachines(), mainTargetMachines, objectFactory, attributesFactory, providers.provider(() -> project.getGroup().toString()), providers.provider(() -> project.getVersion().toString()), variantIdentity -> {
            if (tryToBuildOnHost(variantIdentity)) {
                testComponent.getSourceCompatibility().finalizeValue();
                ToolChainSelector.Result<SwiftPlatform> result = toolChainSelector.select(SwiftPlatform.class, new DefaultSwiftPlatform(variantIdentity.getTargetMachine(), testComponent.getSourceCompatibility().getOrNull()));
                // Create test suite executable
                if (result.getTargetPlatform().getTargetMachine().getOperatingSystemFamily().isMacOs()) {
                    testComponent.addBundle(variantIdentity, result.getTargetPlatform(), result.getToolChain(), result.getPlatformToolProvider());
                } else {
                    testComponent.addExecutable(variantIdentity, result.getTargetPlatform(), result.getToolChain(), result.getPlatformToolProvider());
                }
            }
        });
        testComponent.getBinaries().realizeNow();
    });
}
Also used : ConfigurableFileCollection(org.gradle.api.file.ConfigurableFileCollection) Arrays(java.util.Arrays) UnexportMainSymbol(org.gradle.language.nativeplatform.tasks.UnexportMainSymbol) NativeToolChainRegistryInternal(org.gradle.nativeplatform.toolchain.internal.NativeToolChainRegistryInternal) ProductionSwiftComponent(org.gradle.language.swift.ProductionSwiftComponent) DefaultSwiftXCTestExecutable(org.gradle.nativeplatform.test.xctest.internal.DefaultSwiftXCTestExecutable) GUtil(org.gradle.util.internal.GUtil) Provider(org.gradle.api.provider.Provider) ModelRegistry(org.gradle.model.internal.registry.ModelRegistry) DefaultNativePlatform(org.gradle.nativeplatform.platform.internal.DefaultNativePlatform) DefaultSwiftXCTestSuite(org.gradle.nativeplatform.test.xctest.internal.DefaultSwiftXCTestSuite) TaskProvider(org.gradle.api.tasks.TaskProvider) XCTest(org.gradle.nativeplatform.test.xctest.tasks.XCTest) TargetMachineFactory(org.gradle.nativeplatform.TargetMachineFactory) SwiftXCTestBundle(org.gradle.nativeplatform.test.xctest.SwiftXCTestBundle) ProjectInternal(org.gradle.api.internal.project.ProjectInternal) SwiftBasePlugin(org.gradle.language.swift.plugins.SwiftBasePlugin) PlatformToolProvider(org.gradle.nativeplatform.toolchain.internal.PlatformToolProvider) ImmutableAttributesFactory(org.gradle.api.internal.attributes.ImmutableAttributesFactory) Project(org.gradle.api.Project) TargetMachine(org.gradle.nativeplatform.TargetMachine) Dimensions(org.gradle.language.nativeplatform.internal.Dimensions) ToolChainSelector(org.gradle.language.nativeplatform.internal.toolchains.ToolChainSelector) MacOSSdkPlatformPathLocator(org.gradle.nativeplatform.toolchain.internal.xcode.MacOSSdkPlatformPathLocator) TaskContainer(org.gradle.api.tasks.TaskContainer) Names(org.gradle.language.nativeplatform.internal.Names) NativeToolChain(org.gradle.nativeplatform.toolchain.NativeToolChain) SwiftPlatform(org.gradle.language.swift.SwiftPlatform) SwiftXCTestBinary(org.gradle.nativeplatform.test.xctest.SwiftXCTestBinary) DefaultSwiftXCTestBinary(org.gradle.nativeplatform.test.xctest.internal.DefaultSwiftXCTestBinary) NativeTestingBasePlugin(org.gradle.nativeplatform.test.plugins.NativeTestingBasePlugin) Dimensions.useHostAsDefaultTargetMachine(org.gradle.language.nativeplatform.internal.Dimensions.useHostAsDefaultTargetMachine) Dimensions.tryToBuildOnHost(org.gradle.language.nativeplatform.internal.Dimensions.tryToBuildOnHost) Inject(javax.inject.Inject) LifecycleBasePlugin(org.gradle.language.base.plugins.LifecycleBasePlugin) Lists(com.google.common.collect.Lists) Sync(org.gradle.api.tasks.Sync) LinkMachOBundle(org.gradle.nativeplatform.tasks.LinkMachOBundle) DefaultSwiftPlatform(org.gradle.language.swift.internal.DefaultSwiftPlatform) NativeComponentFactory(org.gradle.language.internal.NativeComponentFactory) SwiftApplication(org.gradle.language.swift.SwiftApplication) SwiftComponent(org.gradle.language.swift.SwiftComponent) NativeToolChainInternal(org.gradle.nativeplatform.toolchain.internal.NativeToolChainInternal) SwiftCompile(org.gradle.language.swift.tasks.SwiftCompile) File(java.io.File) SetProperty(org.gradle.api.provider.SetProperty) ProviderFactory(org.gradle.api.provider.ProviderFactory) DefaultSwiftBinary(org.gradle.language.swift.internal.DefaultSwiftBinary) ObjectFactory(org.gradle.api.model.ObjectFactory) DefaultSwiftXCTestBundle(org.gradle.nativeplatform.test.xctest.internal.DefaultSwiftXCTestBundle) RegularFile(org.gradle.api.file.RegularFile) InstallXCTestBundle(org.gradle.nativeplatform.test.xctest.tasks.InstallXCTestBundle) Dependency(org.gradle.api.artifacts.Dependency) Plugin(org.gradle.api.Plugin) SwiftXCTestSuite(org.gradle.nativeplatform.test.xctest.SwiftXCTestSuite) DefaultSwiftPlatform(org.gradle.language.swift.internal.DefaultSwiftPlatform) SwiftXCTestBinary(org.gradle.nativeplatform.test.xctest.SwiftXCTestBinary) DefaultSwiftXCTestBinary(org.gradle.nativeplatform.test.xctest.internal.DefaultSwiftXCTestBinary) TargetMachine(org.gradle.nativeplatform.TargetMachine) Dimensions.useHostAsDefaultTargetMachine(org.gradle.language.nativeplatform.internal.Dimensions.useHostAsDefaultTargetMachine) ProviderFactory(org.gradle.api.provider.ProviderFactory) DefaultSwiftXCTestSuite(org.gradle.nativeplatform.test.xctest.internal.DefaultSwiftXCTestSuite) ToolChainSelector(org.gradle.language.nativeplatform.internal.toolchains.ToolChainSelector) ProductionSwiftComponent(org.gradle.language.swift.ProductionSwiftComponent) SwiftComponent(org.gradle.language.swift.SwiftComponent) XCTest(org.gradle.nativeplatform.test.xctest.tasks.XCTest) SwiftPlatform(org.gradle.language.swift.SwiftPlatform) DefaultSwiftPlatform(org.gradle.language.swift.internal.DefaultSwiftPlatform)

Example 4 with TargetMachineFactory

use of org.gradle.nativeplatform.TargetMachineFactory in project gradle by gradle.

the class NativeBasePlugin method addLifecycleTasks.

private void addLifecycleTasks(final Project project, final TaskContainer tasks, final SoftwareComponentContainer components) {
    components.withType(ComponentWithBinaries.class, component -> {
        // Register each child of each component
        component.getBinaries().whenElementKnown(binary -> components.add(binary));
        if (component instanceof ProductionComponent) {
            // Add an assemble task for each binary and also wire the development binary in to the `assemble` task
            component.getBinaries().whenElementFinalized(ComponentWithOutputs.class, binary -> {
                // Determine which output to produce at development time.
                final FileCollection outputs = binary.getOutputs();
                Names names = ((ComponentWithNames) binary).getNames();
                tasks.register(names.getTaskName("assemble"), task -> task.dependsOn(outputs));
                if (binary == ((ProductionComponent) component).getDevelopmentBinary().get()) {
                    tasks.named(LifecycleBasePlugin.ASSEMBLE_TASK_NAME, task -> task.dependsOn(outputs));
                }
            });
        }
        if (component instanceof ComponentWithTargetMachines) {
            ComponentWithTargetMachines componentWithTargetMachines = (ComponentWithTargetMachines) component;
            tasks.named(LifecycleBasePlugin.ASSEMBLE_TASK_NAME, task -> {
                task.dependsOn((Callable) () -> {
                    TargetMachine currentHost = ((DefaultTargetMachineFactory) targetMachineFactory).host();
                    boolean targetsCurrentMachine = componentWithTargetMachines.getTargetMachines().get().stream().anyMatch(targetMachine -> currentHost.getOperatingSystemFamily().equals(targetMachine.getOperatingSystemFamily()));
                    if (!targetsCurrentMachine) {
                        task.getLogger().warn("'" + component.getName() + "' component in project '" + project.getPath() + "' does not target this operating system.");
                    }
                    return Collections.emptyList();
                });
            });
        }
    });
}
Also used : ComponentWithNames(org.gradle.language.nativeplatform.internal.ComponentWithNames) Names(org.gradle.language.nativeplatform.internal.Names) ConfigurableComponentWithRuntimeUsage(org.gradle.language.nativeplatform.internal.ConfigurableComponentWithRuntimeUsage) ConfigurableComponentWithSharedLibrary(org.gradle.language.nativeplatform.internal.ConfigurableComponentWithSharedLibrary) ComponentWithVariants(org.gradle.api.component.ComponentWithVariants) LinkSharedLibrary(org.gradle.nativeplatform.tasks.LinkSharedLibrary) ComponentWithBinaries(org.gradle.language.ComponentWithBinaries) Task(org.gradle.api.Task) Provider(org.gradle.api.provider.Provider) PublishingExtension(org.gradle.api.publish.PublishingExtension) ModuleVersionIdentifier(org.gradle.api.artifacts.ModuleVersionIdentifier) ConfigurationContainer(org.gradle.api.artifacts.ConfigurationContainer) MultipleCandidatesDetails(org.gradle.api.attributes.MultipleCandidatesDetails) TaskProvider(org.gradle.api.tasks.TaskProvider) TargetMachineFactory(org.gradle.nativeplatform.TargetMachineFactory) Linkage(org.gradle.nativeplatform.Linkage) ExtensionContainer(org.gradle.api.plugins.ExtensionContainer) UnzipTransform(org.gradle.api.internal.artifacts.transform.UnzipTransform) Incubating(org.gradle.api.Incubating) SoftwareComponentContainer(org.gradle.api.component.SoftwareComponentContainer) PlatformToolProvider(org.gradle.nativeplatform.toolchain.internal.PlatformToolProvider) Project(org.gradle.api.Project) TargetMachine(org.gradle.nativeplatform.TargetMachine) ComponentWithNames(org.gradle.language.nativeplatform.internal.ComponentWithNames) Set(java.util.Set) MutableMavenProjectIdentity(org.gradle.api.publish.maven.internal.publisher.MutableMavenProjectIdentity) DIRECTORY_TYPE(org.gradle.api.artifacts.type.ArtifactTypeDefinition.DIRECTORY_TYPE) AttributeDisambiguationRule(org.gradle.api.attributes.AttributeDisambiguationRule) TaskContainer(org.gradle.api.tasks.TaskContainer) AbstractLinkTask(org.gradle.nativeplatform.tasks.AbstractLinkTask) ArtifactTypeDefinition(org.gradle.api.artifacts.type.ArtifactTypeDefinition) Names(org.gradle.language.nativeplatform.internal.Names) SoftwareComponent(org.gradle.api.component.SoftwareComponent) NativeToolChain(org.gradle.nativeplatform.toolchain.NativeToolChain) MavenPublicationInternal(org.gradle.api.publish.maven.internal.publication.MavenPublicationInternal) CreateStaticLibrary(org.gradle.nativeplatform.tasks.CreateStaticLibrary) ZIP_TYPE(org.gradle.api.artifacts.type.ArtifactTypeDefinition.ZIP_TYPE) ConfigurableComponentWithStaticLibrary(org.gradle.language.nativeplatform.internal.ConfigurableComponentWithStaticLibrary) StripSymbols(org.gradle.nativeplatform.tasks.StripSymbols) PublishableComponent(org.gradle.api.component.PublishableComponent) Callable(java.util.concurrent.Callable) MavenPublication(org.gradle.api.publish.maven.MavenPublication) NativePlatform(org.gradle.nativeplatform.platform.NativePlatform) FileCollection(org.gradle.api.file.FileCollection) ProductionComponent(org.gradle.language.ProductionComponent) ExtractSymbols(org.gradle.nativeplatform.tasks.ExtractSymbols) LinkExecutable(org.gradle.nativeplatform.tasks.LinkExecutable) Inject(javax.inject.Inject) Configuration(org.gradle.api.artifacts.Configuration) LifecycleBasePlugin(org.gradle.language.base.plugins.LifecycleBasePlugin) DependencyHandler(org.gradle.api.artifacts.dsl.DependencyHandler) AttributeContainer(org.gradle.api.attributes.AttributeContainer) DefaultTargetMachineFactory(org.gradle.nativeplatform.internal.DefaultTargetMachineFactory) Attribute(org.gradle.api.attributes.Attribute) DirectoryProperty(org.gradle.api.file.DirectoryProperty) DomainObjectSet(org.gradle.api.DomainObjectSet) Usage(org.gradle.api.attributes.Usage) ConfigurableComponentWithLinkUsage(org.gradle.language.nativeplatform.internal.ConfigurableComponentWithLinkUsage) ConfigurableComponentWithExecutable(org.gradle.language.nativeplatform.internal.ConfigurableComponentWithExecutable) PublicationAwareComponent(org.gradle.language.nativeplatform.internal.PublicationAwareComponent) InstallExecutable(org.gradle.nativeplatform.tasks.InstallExecutable) ComponentWithTargetMachines(org.gradle.language.ComponentWithTargetMachines) Cast(org.gradle.internal.Cast) LINKAGE_ATTRIBUTE(org.gradle.language.cpp.CppBinary.LINKAGE_ATTRIBUTE) ObjectFactory(org.gradle.api.model.ObjectFactory) RegularFile(org.gradle.api.file.RegularFile) ComponentWithOutputs(org.gradle.language.ComponentWithOutputs) Collections(java.util.Collections) Plugin(org.gradle.api.Plugin) ComponentWithTargetMachines(org.gradle.language.ComponentWithTargetMachines) TargetMachine(org.gradle.nativeplatform.TargetMachine) ProductionComponent(org.gradle.language.ProductionComponent) FileCollection(org.gradle.api.file.FileCollection) ComponentWithNames(org.gradle.language.nativeplatform.internal.ComponentWithNames)

Aggregations

Inject (javax.inject.Inject)4 Plugin (org.gradle.api.Plugin)4 Project (org.gradle.api.Project)4 ObjectFactory (org.gradle.api.model.ObjectFactory)4 TargetMachineFactory (org.gradle.nativeplatform.TargetMachineFactory)4 ImmutableAttributesFactory (org.gradle.api.internal.attributes.ImmutableAttributesFactory)3 ProviderFactory (org.gradle.api.provider.ProviderFactory)3 NativeComponentFactory (org.gradle.language.internal.NativeComponentFactory)3 Dimensions (org.gradle.language.nativeplatform.internal.Dimensions)3 Dimensions.tryToBuildOnHost (org.gradle.language.nativeplatform.internal.Dimensions.tryToBuildOnHost)3 ToolChainSelector (org.gradle.language.nativeplatform.internal.toolchains.ToolChainSelector)3 DefaultNativePlatform (org.gradle.nativeplatform.platform.internal.DefaultNativePlatform)3 RegularFile (org.gradle.api.file.RegularFile)2 Provider (org.gradle.api.provider.Provider)2 TaskContainer (org.gradle.api.tasks.TaskContainer)2 TaskProvider (org.gradle.api.tasks.TaskProvider)2 LifecycleBasePlugin (org.gradle.language.base.plugins.LifecycleBasePlugin)2 Dimensions.useHostAsDefaultTargetMachine (org.gradle.language.nativeplatform.internal.Dimensions.useHostAsDefaultTargetMachine)2 Names (org.gradle.language.nativeplatform.internal.Names)2 TargetMachine (org.gradle.nativeplatform.TargetMachine)2