public void execute(NativeComponentSpec projectNativeComponent) {
TargetedNativeComponentInternal targetedComponent = (TargetedNativeComponentInternal) projectNativeComponent;
List<NativePlatform> targetPlatforms = platforms.chooseFromTargets(NativePlatform.class, targetedComponent.getTargetPlatforms(), DefaultNativePlatform.getDefault(), defaultPlatforms);
for (NativePlatform platform: targetPlatforms) {
NativeToolChainInternal toolChain = (NativeToolChainInternal) toolChainRegistry.getForPlatform(platform);
PlatformToolProvider toolProvider = toolChain.select((NativePlatformInternal) platform);
BinaryNamingSchemeBuilder builder = namingSchemeBuilder.withComponentName(projectNativeComponent.getName());
builder = maybeAddDimension(builder, platform, targetPlatforms);
executeForEachBuildType(projectNativeComponent, (NativePlatformInternal) platform, builder, toolChain, toolProvider);
}