---
title: Target
framework: swift-package-manager
role: symbol
role_heading: Class
path: swift-package-manager/documentation/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. Test Libraries Targets Built-in testing libraries, such as Swift Testing and XCTest, are only available for use in certain runtime contexts. While you can use these within Swift libraries intended for testing, take care so that any such libraries only terminate in test targets, as targets that use Swift Testing or XCTest should never be distributed to end users. Including testing libraries as a dependency to an executable target, as either a direct or transitive dependency, can cause clients to encounter linking issues.

## Topics

### Naming the Target

- [name](swift-package-manager/documentation/packagedescription/target/name.md)

### Configuring File Locations

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

### Creating a Binary Target

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

### Creating a System Library Target

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

### Creating an Executable Target

- [executableTarget(name:dependencies:path:exclude:sources:resources:publicHeadersPath:packageAccess:cSettings:cxxSettings:swiftSettings:linkerSettings:plugins:)](swift-package-manager/documentation/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:)](swift-package-manager/documentation/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:)](swift-package-manager/documentation/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:)](swift-package-manager/documentation/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:)](swift-package-manager/documentation/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:)](swift-package-manager/documentation/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:)](swift-package-manager/documentation/packagedescription/target/target(name:dependencies:path:exclude:sources:publicheaderspath:csettings:cxxsettings:swiftsettings:linkersettings:).md)
- [target(name:dependencies:path:exclude:sources:publicHeadersPath:)](swift-package-manager/documentation/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:)](swift-package-manager/documentation/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:)](swift-package-manager/documentation/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:)](swift-package-manager/documentation/packagedescription/target/testtarget(name:dependencies:path:exclude:sources:resources:csettings:cxxsettings:swiftsettings:linkersettings:).md)
- [testTarget(name:dependencies:path:exclude:sources:cSettings:cxxSettings:swiftSettings:linkerSettings:)](swift-package-manager/documentation/packagedescription/target/testtarget(name:dependencies:path:exclude:sources:csettings:cxxsettings:swiftsettings:linkersettings:).md)
- [testTarget(name:dependencies:path:exclude:sources:)](swift-package-manager/documentation/packagedescription/target/testtarget(name:dependencies:path:exclude:sources:).md)

### Creating a Plugin Target

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

### Declaring a Dependency Target

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

### Configuring the Target

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

### Describing the Target Type

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

## See Also

### Configuring Targets

- [targets](swift-package-manager/documentation/packagedescription/package/targets.md)
