---
title: BuildSettingCondition
framework: packagedescription
role: symbol
role_heading: Structure
path: packagedescription/buildsettingcondition
---

# BuildSettingCondition

A condition that limits the application of a build setting.

## Declaration

```swift
struct BuildSettingCondition
```

## Overview

Overview By default, build settings are applicable for all platforms and build configurations. Use the .when modifier to define a build setting for a specific condition. Invalid usage of .when emits an error during manifest parsing. For example, it’s invalid to specify a .when condition with both parameters as nil. The following example shows how to use build setting conditions with various APIs: ... .target(     name: "MyTool",     dependencies: ["Utility"],     cSettings: [         .headerSearchPath("path/relative/to/my/target"),         .define("DISABLE_SOMETHING", .when(platforms: [.iOS], configuration: .release)),     ],     swiftSettings: [         .define("ENABLE_SOMETHING", .when(configuration: .release)),     ],     linkerSettings: [         .linkLibrary("openssl", .when(platforms: [.linux])),     ] ),

## Topics

### Checking for a Build Condition

- [when(platforms:)](packagedescription/buildsettingcondition/when(platforms:).md)
- [when(configuration:)](packagedescription/buildsettingcondition/when(configuration:).md)
- [when(platforms:configuration:)](packagedescription/buildsettingcondition/when(platforms:configuration:)-475co.md)
- [when(platforms:configuration:traits:)](packagedescription/buildsettingcondition/when(platforms:configuration:traits:).md)
- [when(platforms:configuration:)](packagedescription/buildsettingcondition/when(platforms:configuration:)-2991l.md)

## Relationships

### Conforms To

- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### 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)
- [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)
