---
title: Target
framework: packagedescription
role: symbol
role_heading: Class
path: packagedescription/target
---

# Target

The basic building block of a Swift package.

## Declaration

```swift
final class Target
```

## Overview

Overview Each target contains a set of source files that Swift Package Manager compiles into a module or test suite. You can vend targets to other packages by defining products that include the targets. A target may depend on other targets within the same package and on products vended by the package’s dependencies.

## Topics

### Naming the Target

- [name](packagedescription/target/name.md)

### Configuring File Locations

- [path](packagedescription/target/path.md)
- [exclude](packagedescription/target/exclude.md)
- [sources](packagedescription/target/sources.md)
- [resources](packagedescription/target/resources.md)
- [Resource](packagedescription/resource.md)
- [publicHeadersPath](packagedescription/target/publicheaderspath.md)

### Creating a Binary Target

- [binaryTarget(name:path:)](packagedescription/target/binarytarget(name:path:).md)
- [binaryTarget(name:url:checksum:)](packagedescription/target/binarytarget(name:url:checksum:).md)
- [url](packagedescription/target/url.md)
- [checksum](packagedescription/target/checksum.md)

### Creating a System Library Target

- [systemLibrary(name:path:pkgConfig:providers:)](packagedescription/target/systemlibrary(name:path:pkgconfig:providers:).md)
- [pkgConfig](packagedescription/target/pkgconfig.md)
- [providers](packagedescription/target/providers.md)

### Creating an Executable Target

- [executableTarget(name:dependencies:path:exclude:sources:resources:publicHeadersPath:packageAccess:cSettings:cxxSettings:swiftSettings:linkerSettings:plugins:)](packagedescription/target/executabletarget(name:dependencies:path:exclude:sources:resources:publicheaderspath:packageaccess:csettings:cxxsettings:swiftsettings:linkersettings:plugins:).md)
- [executableTarget(name:dependencies:path:exclude:sources:resources:publicHeadersPath:cSettings:cxxSettings:swiftSettings:linkerSettings:plugins:)](packagedescription/target/executabletarget(name:dependencies:path:exclude:sources:resources:publicheaderspath:csettings:cxxsettings:swiftsettings:linkersettings:plugins:).md)
- [executableTarget(name:dependencies:path:exclude:sources:resources:publicHeadersPath:cSettings:cxxSettings:swiftSettings:linkerSettings:)](packagedescription/target/executabletarget(name:dependencies:path:exclude:sources:resources:publicheaderspath:csettings:cxxsettings:swiftsettings:linkersettings:).md)

### Creating a Regular Target

- [target(name:dependencies:path:exclude:sources:resources:publicHeadersPath:packageAccess:cSettings:cxxSettings:swiftSettings:linkerSettings:plugins:)](packagedescription/target/target(name:dependencies:path:exclude:sources:resources:publicheaderspath:packageaccess:csettings:cxxsettings:swiftsettings:linkersettings:plugins:).md)
- [target(name:dependencies:path:exclude:sources:resources:publicHeadersPath:cSettings:cxxSettings:swiftSettings:linkerSettings:plugins:)](packagedescription/target/target(name:dependencies:path:exclude:sources:resources:publicheaderspath:csettings:cxxsettings:swiftsettings:linkersettings:plugins:).md)
- [target(name:dependencies:path:exclude:sources:resources:publicHeadersPath:cSettings:cxxSettings:swiftSettings:linkerSettings:)](packagedescription/target/target(name:dependencies:path:exclude:sources:resources:publicheaderspath:csettings:cxxsettings:swiftsettings:linkersettings:).md)
- [target(name:dependencies:path:exclude:sources:publicHeadersPath:cSettings:cxxSettings:swiftSettings:linkerSettings:)](packagedescription/target/target(name:dependencies:path:exclude:sources:publicheaderspath:csettings:cxxsettings:swiftsettings:linkersettings:).md)
- [target(name:dependencies:path:exclude:sources:publicHeadersPath:)](packagedescription/target/target(name:dependencies:path:exclude:sources:publicheaderspath:).md)

### Creating a Test Target

- [testTarget(name:dependencies:path:exclude:sources:resources:packageAccess:cSettings:cxxSettings:swiftSettings:linkerSettings:plugins:)](packagedescription/target/testtarget(name:dependencies:path:exclude:sources:resources:packageaccess:csettings:cxxsettings:swiftsettings:linkersettings:plugins:).md)
- [testTarget(name:dependencies:path:exclude:sources:resources:cSettings:cxxSettings:swiftSettings:linkerSettings:plugins:)](packagedescription/target/testtarget(name:dependencies:path:exclude:sources:resources:csettings:cxxsettings:swiftsettings:linkersettings:plugins:).md)
- [testTarget(name:dependencies:path:exclude:sources:resources:cSettings:cxxSettings:swiftSettings:linkerSettings:)](packagedescription/target/testtarget(name:dependencies:path:exclude:sources:resources:csettings:cxxsettings:swiftsettings:linkersettings:).md)
- [testTarget(name:dependencies:path:exclude:sources:cSettings:cxxSettings:swiftSettings:linkerSettings:)](packagedescription/target/testtarget(name:dependencies:path:exclude:sources:csettings:cxxsettings:swiftsettings:linkersettings:).md)
- [testTarget(name:dependencies:path:exclude:sources:)](packagedescription/target/testtarget(name:dependencies:path:exclude:sources:).md)

### Creating a Plugin Target

- [plugin(name:capability:dependencies:path:exclude:sources:packageAccess:)](packagedescription/target/plugin(name:capability:dependencies:path:exclude:sources:packageaccess:).md)
- [pluginCapability](packagedescription/target/plugincapability-swift.property.md)
- [Target.PluginCapability](packagedescription/target/plugincapability-swift.enum.md)
- [PluginCommandIntent](packagedescription/plugincommandintent.md)
- [PluginPermission](packagedescription/pluginpermission.md)
- [plugin(name:capability:dependencies:path:exclude:sources:)](packagedescription/target/plugin(name:capability:dependencies:path:exclude:sources:).md)

### Declaring a Dependency Target

- [dependencies](packagedescription/target/dependencies.md)
- [Target.Dependency](packagedescription/target/dependency.md)
- [TargetDependencyCondition](packagedescription/targetdependencycondition.md)

### Configuring the Target

- [cSettings](packagedescription/target/csettings.md)
- [cxxSettings](packagedescription/target/cxxsettings.md)
- [swiftSettings](packagedescription/target/swiftsettings.md)
- [linkerSettings](packagedescription/target/linkersettings.md)
- [plugins](packagedescription/target/plugins.md)
- [BuildConfiguration](packagedescription/buildconfiguration.md)
- [BuildSettingCondition](packagedescription/buildsettingcondition.md)
- [CSetting](packagedescription/csetting.md)
- [CXXSetting](packagedescription/cxxsetting.md)
- [SwiftSetting](packagedescription/swiftsetting.md)
- [LinkerSetting](packagedescription/linkersetting.md)
- [Target.PluginUsage](packagedescription/target/pluginusage.md)
- [packageAccess](packagedescription/target/packageaccess.md)

### Describing the Target Type

- [isTest](packagedescription/target/istest.md)
- [type](packagedescription/target/type.md)
- [Target.TargetType](packagedescription/target/targettype.md)

### Type Methods

- [macro(name:dependencies:path:exclude:sources:packageAccess:swiftSettings:linkerSettings:plugins:)](packagedescription/target/macro(name:dependencies:path:exclude:sources:packageaccess:swiftsettings:linkersettings:plugins:).md)

## See Also

### Configuring Targets

- [targets](packagedescription/package/targets.md)
