OVERVIEW: Swift compiler
USAGE: swift
OPTIONS:
-access-notes-path <value>
Specify YAML file to override attributes on Swift declarations in this module
-allowable-client <vers>
Module names that are allowed to import this module
-assert-config <value> Specify the assert_configuration replacement. Possible values are Debug, Release, Unchecked, DisableReplacement.
-cache-compile-job Enable compiler caching
-cache-disable-replay Skip loading the compilation result from cache
-cas-path <path> Path to CAS
-cas-plugin-option <name>=<option>
Option pass to CAS Plugin
-cas-plugin-path <path> Path to CAS Plugin
-clang-build-session-file <value>
Use the last modification time of <file> as the underlying Clang build session timestamp
-clang-scanner-module-cache-path <value>
Specifies the Clang dependency scanner module cache path
-clang-target <value> Separately set the target we should use for internal Clang instance
-color-diagnostics Print diagnostics in color
-continue-building-after-errors
Continue building, even after errors are encountered
-coverage-prefix-map <prefix=replacement>
Remap source paths in coverage info
-cxx-interoperability-mode=<value>
Enables C++ interoperability; pass 'default' to enable or 'off' to disable
-debug-info-format=<value>
Specify the debug info format type to either 'dwarf' or 'codeview'
-debug-info-store-invocation
Emit the compiler invocation in the debug info.
-debug-prefix-map <prefix=replacement>
Remap source paths in debug info
-diagnostic-style <style>
The formatting style used when printing diagnostics ('swift' or 'llvm')
-disable-actor-data-race-checks
Disable runtime checks for actor data races
-disable-autolinking-runtime-compatibility-concurrency
Do not use autolinking for the concurrency runtime compatibility library
-disable-autolinking-runtime-compatibility-dynamic-replacements
Do not use autolinking for the dynamic replacement runtime compatibility library
-disable-autolinking-runtime-compatibility
Do not use autolinking for runtime compatibility libraries
-disable-clang-target Disable a separately specified target triple for Clang instance to use
-disable-dynamic-actor-isolation
Disable dynamic actor isolation checks
-disable-incremental-imports
Disable cross-module incremental build metadata and driver scheduling for Swift modules
-disable-only-one-dependency-file
Disables incremental build optimization that only produces one dependencies file
-disable-sandbox Disable using the sandbox when executing subprocesses
-disallow-use-new-driver
Disable using new swift-driver
-dwarf-version=<version>
DWARF debug info version to produce if requested
-D <value> Marks a conditional compilation flag as true
-embed-tbd-for-module <value>
Embed symbols from the module in the emitted tbd file
-emit-module-dependencies-path <path>
Emit a discovered dependencies file for the emit-module task to <path>
-emit-module-serialize-diagnostics-path <path>
Emit a serialized diagnostics file for the emit-module task to <path>
-enable-actor-data-race-checks
Emit runtime checks for actor data races
-enable-autolinking-runtime-compatibility-bytecode-layouts
Enable autolinking for the bytecode layouts runtime compatibility library
-enable-bare-slash-regex
Enable the use of forward slash regular-expression literal syntax
-enable-builtin-module Enables the explicit import of the Builtin module
-enable-experimental-additive-arithmetic-derivation
Enable experimental 'AdditiveArithmetic' derived conformances
-enable-experimental-concise-pound-file
Enable experimental concise '#file' identifier
-enable-experimental-feature <value>
Enable an experimental feature
-enable-experimental-forward-mode-differentiation
Enable experimental forward mode differentiation
-enable-incremental-imports
Enable cross-module incremental build metadata and driver scheduling for Swift modules
-enable-library-evolution
Build the module to allow binary-compatible library evolution
-enable-only-one-dependency-file
Enables incremental build optimization that only produces one dependencies file
-enable-upcoming-feature <value>
Enable a feature that will be introduced in an upcoming language version
-enforce-exclusivity=<enforcement>
Enforce law of exclusivity
-experimental-allow-non-resilient-access
Allow non-resilient access by generating all contents besides exportable decls
-experimental-package-bypass-resilience
Enable optimization to bypass resilience within a package
-experimental-package-cmo
Enable optimization to perform defalut CMO within a package boundary
-explain-module-dependency <value>
Emit remark/notes describing why compilaiton may depend on a module with a given name.
-export-as <value> Module name to use when referenced in clients module interfaces
-external-plugin-path <path>#<plugin-server-path>
Add directory to the plugin search path with a plugin server executable
-e <value> Executes a line of code provided on the command line
-file-compilation-dir <path>
The compilation directory to embed in the debug info. Coverage mapping is not supported yet.
-file-prefix-map <prefix=replacement>
Remap source paths in debug, coverage, and index info
-framework <value> Specifies a framework which should be linked against
-Fsystem <value> Add directory to system framework search path
-F <value> Add directory to framework search path
-gdwarf-types Emit full DWARF type info.
-gline-tables-only Emit minimal debug info for backtraces only
-gnone Don't emit debug info
-g Emit debug info. This is the preferred setting for debugging with LLDB.
-help Display available options
-index-ignore-clang-modules
Avoid indexing clang modules (pcms)
-index-include-locals Include local definitions/references in the produced index data.
-index-store-path <path>
Store indexing data to <path>
-index-unit-output-path <path>
Use <path> as the output path in the produced index data.
-I <value> Add directory to the import search path
-j <n> Number of commands to execute in parallel
-libc <value> libc runtime library to use
-link-objc-runtime Deprecated
-load-plugin-executable <path>#<module-names>
Path to a compiler plugin executable and a comma-separated list of module names where the macro types are declared
-load-plugin-library <path>
Path to a dynamic library containing compiler plugins such as macros
-locale <locale-code> Choose a language for diagnostic messages
-localization-path <path>
Path to localized diagnostic messages directory
-L <value> Add directory to library link search path
-l <value> Specifies a library which should be linked against
-module-abi-name <value>
ABI name to use for the contents of this module
-module-alias <alias_name=real_name>
If a source file imports or references module <alias_name>, the <real_name> is used for the contents of the file
-module-cache-path <value>
Specifies the module cache path
-module-link-name <value>
Library to link against when using this module
-module-name <value> Name of the module to build
-no-color-diagnostics Do not print diagnostics in color
-no-warnings-as-errors Don't treat warnings as errors
-nostdimport Don't search the standard library import path for modules
-num-threads <n> Enable multi-threading and specify number of threads
-Onone Compile without any optimization
-Osize Compile with optimizations and target small code size
-Ounchecked Compile with optimizations and remove runtime safety checks
-O Compile with optimizations
-package-name <value> Name of the package the module belongs to
-plugin-path <value> Add directory to the plugin search path
-prefix-serialized-debugging-options
Apply debug prefix mappings to serialized debug info in Swiftmodule files
-pretty-print Pretty-print the output JSON
-print-educational-notes
Include educational notes in printed diagnostic output, if available
-print-target-info Print target information for the given target <triple>, such as x86_64-apple-macos10.9
-project-name <value> Name of the project this module to build belongs to
-Rcache-compile-job Show remarks for compiler caching
-Rcross-import Emit a remark if a cross-import of a module is triggered.
-remove-runtime-asserts Remove runtime safety checks.
-Rindexing-system-module
Emit a remark when indexing a system module
-Rmacro-loading Emit remarks about loaded macro implementations
-Rmodule-api-import Emit remarks about the import briging in each element composing the API
-Rmodule-loading Emit remarks about loaded module
-Rmodule-recovery Emit remarks about contextual inconsistencies in loaded modules
-Rmodule-serialization Emit remarks about module serialization
-Rpass-missed=<value> Report missed transformations by optimization passes whose name matches the given POSIX regular expression
-Rpass=<value> Report performed transformations by optimization passes whose name matches the given POSIX regular expression
-Rskip-explicit-interface-build
Emit a remark if an explicit module interface invocation has an early exit because the expected output is up-to-date
-runtime-compatibility-version <value>
Link compatibility library for Swift runtime version, or 'none'
-save-optimization-record-passes <regex>
Only include passes which match a specified regular expression in the generated optimization record (by default, include all passes)
-save-optimization-record-path <value>
Specify the file name of any generated optimization record
-save-optimization-record=<format>
Generate an optimization record file in a specific format (default: YAML)
-save-optimization-record
Generate a YAML optimization record file
-scanner-prefix-map-sdk <path>
Remap paths within SDK reported by dependency scanner
-scanner-prefix-map-toolchain <path>
Remap paths within toolchain directory reported by dependency scanner
-scanner-prefix-map <prefix=replacement>
Remap paths reported by dependency scanner
-sdk <sdk> Compile against <sdk>
-serialize-diagnostics-path <path>
Emit a serialized diagnostics file to <path>
-static-executable Statically link the executable
-static-stdlib Statically link the Swift standard library
-strict-concurrency=<value>
Specify the how strict concurrency checking will be. The value may be 'minimal' (most 'Sendable' checking is disabled), 'targeted' ('Sendable' checking is enabled in code that uses the concurrency model, or 'complete' ('Sendable' and other checking is enabled for all code in the module)
-suppress-remarks Suppress all remarks
-suppress-warnings Suppress all warnings
-swift-version <vers> Interpret input according to a specific Swift language version number
-target-cpu <value> Generate code for a particular CPU variant
-target-min-inlining-version <value>
Require inlinable code with no '@available' attribute to back-deploy to this version of the '-target' OS
-target-variant <value> Generate 'zippered' code for macCatalyst that can run on the specified variant target triple in addition to the main -target triple
-target <triple> Generate code for the given target <triple>, such as x86_64-apple-macos10.9
-use-ld=<value> Specifies the flavor of the linker to be used
-user-module-version <vers>
Module version specified from Swift module authors
-validate-clang-modules-once
Don't verify input files for Clang modules if the module has been successfully validated or loaded during this build session
-version Print version information and exit
-vfsoverlay <value> Add directory to VFS overlay file
-visualc-tools-root <root>
VisualC++ Tools Root
-visualc-tools-version <version>
VisualC++ ToolSet Version
-v Show commands to run and use verbose output
-warn-concurrency Warn about code that is unsafe according to the Swift Concurrency model and will become ill-formed in a future language version
-warn-implicit-overrides
Warn about implicit overrides of protocol members
-warnings-as-errors Treat warnings as errors
-windows-sdk-root <root>
Windows SDK Root
-windows-sdk-version <version>
Windows SDK Version
-working-directory <path>
Resolve file paths relative to the specified directory
-Xcc <arg> Pass <arg> to the C/C++/Objective-C compiler
-Xlinker <value> Specifies an option which should be passed to the linker
Welcome to Swift!
Subcommands:
swift build Build Swift packages
swift package Create and work on packages
swift run Run a program from a package
swift test Run package tests
swift repl Experiment with Swift code interactively
Use `swift --version` for Swift version information.
Use `swift --help` for descriptions of available options and flags.
Use `swift help <subcommand>` for more information about a subcommand.
Options (142)
| Option | Description | Source |
|---|---|---|
-access-notes-path value | Specify YAML file to override attributes on Swift declarations in this module | help |
-allowable-client vers | Module names that are allowed to import this module | help |
-assert-config value | Specify the assert_configuration replacement. | help |
-cache-compile-job | Enable compiler caching | help |
-cache-disable-replay | Skip loading the compilation result from cache | help |
-cas-path path | Path to CAS | help |
-cas-plugin-option name>=<option | Option pass to CAS Plugin | help |
-clang-build-session-file value | Use the last modification time of <file> as the underlying Clang build session timestamp | help |
-clang-scanner-module-cache-path value | Specifies the Clang dependency scanner module cache path | help |
-clang-target value | Separately set the target we should use for internal Clang instance | help |
-color-diagnostics | Print diagnostics in color | help |
-continue-building-after-errors | Continue building, even after errors are encountered | help |
-coverage-prefix-map prefix=replacement | Remap source paths in coverage info | help |
-cxx-interoperability-mode value | Enables C++ interoperability; | help |
-debug-info-format value | Specify the debug info format type to either 'dwarf' or 'codeview' | help |
-debug-info-store-invocation | Emit the compiler invocation in the debug info. | help |
-debug-prefix-map prefix=replacement | Remap source paths in debug info | help |
-diagnostic-style style | The formatting style used when printing diagnostics ('swift' or 'llvm') | help |
-disable-actor-data-race-checks | Disable runtime checks for actor data races | help |
-disable-autolinking-runtime-compatibility-concurrency | Do not use autolinking for the concurrency runtime compatibility library | help |
-disable-autolinking-runtime-compatibility-dynamic-replacements | Do not use autolinking for the dynamic replacement runtime compatibility library | help |
-disable-autolinking-runtime-compatibility | Do not use autolinking for runtime compatibility libraries | help |
-disable-clang-target | Disable a separately specified target triple for Clang instance to use | help |
-disable-dynamic-actor-isolation | Disable dynamic actor isolation checks | help |
-disable-incremental-imports | Disable cross-module incremental build metadata and driver scheduling for Swift modules | help |
-disable-only-one-dependency-file | Disables incremental build optimization that only produces one dependencies file | help |
-disable-sandbox | Disable using the sandbox when executing subprocesses | help |
-disallow-use-new-driver | Disable using new swift-driver | help |
-dwarf-version version | DWARF debug info version to produce if requested | help |
-D value | Marks a conditional compilation flag as true | help |
-embed-tbd-for-module value | Embed symbols from the module in the emitted tbd file | help |
-emit-module-dependencies-path path | Emit a discovered dependencies file for the emit-module task to <path> | help |
-emit-module-serialize-diagnostics-path path | Emit a serialized diagnostics file for the emit-module task to <path> | help |
-enable-actor-data-race-checks | Emit runtime checks for actor data races | help |
-enable-autolinking-runtime-compatibility-bytecode-layouts | Enable autolinking for the bytecode layouts runtime compatibility library | help |
-enable-bare-slash-regex | Enable the use of forward slash regular-expression literal syntax | help |
-enable-builtin-module | Enables the explicit import of the Builtin module | help |
-enable-experimental-additive-arithmetic-derivation | Enable experimental 'AdditiveArithmetic' derived conformances | help |
-enable-experimental-concise-pound-file | Enable experimental concise '#file' identifier | help |
-enable-experimental-feature value | Enable an experimental feature | help |
-enable-experimental-forward-mode-differentiation | Enable experimental forward mode differentiation | help |
-enable-incremental-imports | Enable cross-module incremental build metadata and driver scheduling for Swift modules | help |
-enable-library-evolution | Build the module to allow binary-compatible library evolution | help |
-enable-only-one-dependency-file | Enables incremental build optimization that only produces one dependencies file | help |
-enable-upcoming-feature value | Enable a feature that will be introduced in an upcoming language version | help |
-enforce-exclusivity enforcement | Enforce law of exclusivity | help |
-experimental-allow-non-resilient-access | Allow non-resilient access by generating all contents besides exportable decls | help |
-experimental-package-bypass-resilience | Enable optimization to bypass resilience within a package | help |
-experimental-package-cmo | Enable optimization to perform defalut CMO within a package boundary | help |
-explain-module-dependency value | Emit remark/notes describing why compilaiton may depend on a module with a given name. | help |
-export-as value | Module name to use when referenced in clients module interfaces | help |
-external-plugin-path path>#<plugin-server-path | Add directory to the plugin search path with a plugin server executable | help |
-e value | Executes a line of code provided on the command line | help |
-file-compilation-dir path | The compilation directory to embed in the debug info. | help |
-file-prefix-map prefix=replacement | Remap source paths in debug, coverage, and index info | help |
-framework value | Specifies a framework which should be linked against | help |
-Fsystem value | Add directory to system framework search path | help |
-F value | Add directory to framework search path | help |
-gdwarf-types | Emit full DWARF type info. | help |
-gline-tables-only | Emit minimal debug info for backtraces only | help |
-gnone | Don't emit debug info | help |
-g | Emit debug info. | help |
-help | Display available options | help |
-index-ignore-clang-modules | Avoid indexing clang modules (pcms) | help |
-index-include-locals | Include local definitions/references in the produced index data. | help |
-index-store-path path | Store indexing data to <path> | help |
-index-unit-output-path path | Use <path> as the output path in the produced index data. | help |
-I value | Add directory to the import search path | help |
-j n | Number of commands to execute in parallel | help |
-libc value | libc runtime library to use | help |
-link-objc-runtime | Deprecated | help |
-load-plugin-executable path>#<module-names | Path to a compiler plugin executable and a comma-separated list of module names where the macro types are declared | help |
-load-plugin-library path | Path to a dynamic library containing compiler plugins such as macros | help |
-locale locale-code | Choose a language for diagnostic messages | help |
-localization-path path | Path to localized diagnostic messages directory | help |
-L value | Add directory to library link search path | help |
-l value | Specifies a library which should be linked against | help |
-module-abi-name value | ABI name to use for the contents of this module | help |
-module-alias alias_name=real_name | If a source file imports or references module <alias_name>, the <real_name> is used for the contents of the file | help |
-module-cache-path value | Specifies the module cache path | help |
-module-link-name value | Library to link against when using this module | help |
-module-name value | Name of the module to build | help |
-no-color-diagnostics | Do not print diagnostics in color | help |
-no-warnings-as-errors | Don't treat warnings as errors | help |
-nostdimport | Don't search the standard library import path for modules | help |
-num-threads n | Enable multi-threading and specify number of threads | help |
-Onone | Compile without any optimization | help |
-Osize | Compile with optimizations and target small code size | help |
-Ounchecked | Compile with optimizations and remove runtime safety checks | help |
-O | Compile with optimizations | help |
-package-name value | Name of the package the module belongs to | help |
-plugin-path value | Add directory to the plugin search path | help |
-prefix-serialized-debugging-options | Apply debug prefix mappings to serialized debug info in Swiftmodule files | help |
-pretty-print | Pretty-print the output JSON | help |
-print-educational-notes | Include educational notes in printed diagnostic output, if available | help |
-print-target-info | Print target information for the given target <triple>, such as x86_64-apple-macos10.9 | help |
-project-name value | Name of the project this module to build belongs to | help |
-Rcache-compile-job | Show remarks for compiler caching | help |
-Rcross-import | Emit a remark if a cross-import of a module is triggered. | help |
-Rindexing-system-module | Emit a remark when indexing a system module | help |
-Rmacro-loading | Emit remarks about loaded macro implementations | help |
-Rmodule-api-import | Emit remarks about the import briging in each element composing the API | help |
-Rmodule-loading | Emit remarks about loaded module | help |
-Rmodule-recovery | Emit remarks about contextual inconsistencies in loaded modules | help |
-Rmodule-serialization | Emit remarks about module serialization | help |
-Rpass-missed value | Report missed transformations by optimization passes whose name matches the given POSIX regular expression | help |
-Rpass value | Report performed transformations by optimization passes whose name matches the given POSIX regular expression | help |
-Rskip-explicit-interface-build | Emit a remark if an explicit module interface invocation has an early exit because the expected output is up-to-date | help |
-runtime-compatibility-version value | Link compatibility library for Swift runtime version, or 'none' | help |
-save-optimization-record-passes regex | Only include passes which match a specified regular expression in the generated optimization record (by default, include all passes) | help |
-save-optimization-record-path value | Specify the file name of any generated optimization record | help |
-save-optimization-record format | Generate an optimization record file in a specific format (default: YAML) | help |
-scanner-prefix-map-sdk path | Remap paths within SDK reported by dependency scanner | help |
-scanner-prefix-map-toolchain path | Remap paths within toolchain directory reported by dependency scanner | help |
-scanner-prefix-map prefix=replacement | Remap paths reported by dependency scanner | help |
-sdk sdk | Compile against <sdk> | help |
-serialize-diagnostics-path path | Emit a serialized diagnostics file to <path> | help |
-static-executable | Statically link the executable | help |
-static-stdlib | Statically link the Swift standard library | help |
-strict-concurrency value | Specify the how strict concurrency checking will be. | help |
-suppress-remarks | Suppress all remarks | help |
-suppress-warnings | Suppress all warnings | help |
-swift-version vers | Interpret input according to a specific Swift language version number | help |
-target-cpu value | Generate code for a particular CPU variant | help |
-target-min-inlining-version value | Require inlinable code with no '@available' attribute to back-deploy to this version of the '-target' OS | help |
-target triple | Generate code for the given target <triple>, such as x86_64-apple-macos10.9 | help |
-use-ld value | Specifies the flavor of the linker to be used | help |
-user-module-version vers | Module version specified from Swift module authors | help |
-validate-clang-modules-once | Don't verify input files for Clang modules if the module has been successfully validated or loaded during this build session | help |
-version | Print version information and exit | help |
-vfsoverlay value | Add directory to VFS overlay file | help |
-visualc-tools-root root | VisualC++ Tools Root | help |
-visualc-tools-version version | VisualC++ ToolSet Version | help |
-v | Show commands to run and use verbose output | help |
-warn-concurrency | Warn about code that is unsafe according to the Swift Concurrency model and will become ill-formed in a future language version | help |
-warn-implicit-overrides | Warn about implicit overrides of protocol members | help |
-warnings-as-errors | Treat warnings as errors | help |
-windows-sdk-root root | Windows SDK Root | help |
-windows-sdk-version version | Windows SDK Version | help |
-working-directory path | Resolve file paths relative to the specified directory | help |
-Xcc arg | Pass <arg> to the C/C++/Objective-C compiler | help |
-Xlinker value | Specifies an option which should be passed to the linker | help |