#Every Single Option Under The Sun
- optimization level options
- automatic crashing options
- debug info options
- swift internal options
- swift debug/development internal options
- linker-specific options
- mode options
Flag | Description |
---|---|
Xcc | Pass to the C/C++/Objective-C compiler |
Xfrontend | Pass to the Swift frontend |
Xlinker | Specifies an option which should be passed to the linker |
Xllvm | Pass to LLVM. |
application-extension | Restrict code to those available for App Extensions |
assert-config | Specify the assert_configuration replacement. Possible values are Debug, Release, Replacement. |
autolink-force-load | Force ld to link against this module even if no symbols are used |
color-diagnostics | Print diagnostics in color |
debug-assert-after | Force an assertion failure after parsing |
debug-assert-immediately | Force an assertion failure immediately |
debug-constraints-attempt | Debug the constraint solver at a given attempt |
debug-constraints | Debug the constraint-based type checker |
debug-crash-after | Force a crash after parsing |
debug-crash-immediately | Force a crash immediately |
debug-forbid-typecheck | Triggers llvm fatal_error if typechecker tries to typecheck a decl with the provided prefix name |
debug-generic-signatures | Debug generic signatures |
debug-time-function | Dumps the time it takes to type-check each function body |
debugger-support | Process swift code as if running in the debugger |
delayed-function-body | Delay function body parsing until the end of all files |
deprecated-integrated-repl | |
disable-access-control | Don't respect access control restrictions |
disable-arc-opts | Don't run SIL ARC optimization passes. |
disable-diagnostic-passes | Don't run diagnostic passes |
disable-func-sig | Disable function signature optimizations |
disable-llvm-arc | Don't run LLVM ARC optimization passes. |
disable-llvm-optzns | Don't run LLVM optimization passes |
disable-llvm-slp | Don't run LLVM SLP vectorizer |
disable-llvm-verify | Don't run the LLVM IR verifier. |
disable-objc-attr | Disable requiring uses of @objc to require importing the Foundation module |
disable-objc-interop | Disable Objective-C interop code generation and config directives |
disable-playground-transform | Disable playground transformation |
disable-sil-linking | Don't link SIL functions |
disable-target-os | Disable checking the target OS of serialized modules |
driver-mode= | Set the driver mode to either 'swift' or 'swiftc' or 'swift-update' |
driver-print-actions | Dump list of actions to perform |
driver-print-bindings | Dump list of bindings |
driver-print-jobs | Dump list of jobs to execute |
driver-print-output | Dump the contents of the output file map |
driver-skip-execution | Skip execution of subtasks when performing compilation |
driver-use-frontend | Use the given executable to perform compilations |
dump-ast | Parse and type-check input file(s) and dump AST(s) |
dump-clang-diagnostics | Dump Clang diagnostics to stderr |
dump-parse | Parse input file(s) and dump AST(s) |
D | Specifies one or more build configuration options |
emit-assembly | Emit assembly file(s) (-S) |
emit-bc | Emit LLVM BC file(s) |
emit-dependencies-path | Output basic Make-compatible dependencies file to |
emit-dependencies | Emit basic Make-compatible dependencies files |
emit-executable | Emit a linked executable |
emit-ir | Emit LLVM IR file(s) |
emit-library | Emit a linked library |
emit-module-doc | Output module documentation file |
emit-module-doc | Emit a module documentation file based on documentation comments |
emit-module-path | emit-module-path |
emit-module | Emit an importable module |
emit-objc-header-path | Emit an Objective-C header file to <path> |
emit-objc-header | Emit an Objective-C header file |
emit-object | Emit object file(s) (-c) |
emit-reference-dependencies | Output Swift-style dependencies file to |
emit-reference-dependencies | Emit a Swift-style dependencies file |
emit-silgen | Emit raw SIL file(s) |
emit-sil | Emit canonical SIL file(s) |
emit-sorted-sil | When printing SIL, print out all sil entities sorted by name to ease diffing |
emit-verbose-sil | Emit locations during SIL emission |
enable-access-control | Respect access control restrictions |
enable-character-literals | Enable legacy character literals |
enable-dynamic-value | Enable experimental dynamic generic struct/enum/class type layout |
enable-experimental-availability | Enable experimental checking for API availability |
enable-experimental-patterns | Enable experimental 'switch' pattern matching features |
enable-experimental-unavailable | Enable experimental treat unavailable symbols as optional |
enable-guaranteed-self | Enable the passing of self as a guaranteed parameter |
enable-objc-attr | Enable requiring uses of @objc to require importing the Foundation module |
enable-objc-implicit | Import Objective-C "implicit properties" as properties |
enable-objc-interop | Enable Objective-C interop code generation and config directives |
enable-private-discriminators | Mangle discriminators into the symbol names for private entities |
enable-source-import | Enable importing of Swift source files |
enable-target-os | Enable checking the target OS of serialized modules |
enable-union-import | Import C unions |
external-pass-pipeline | Use the pass pipeline defined by <pass_pipeline_file> |
force-single-frontend | framework |
F= | Specifies a framework which should be linked against |
F | Add directory to framework search path |
gline-tables-only | Emit minimal debug info for backtraces only |
gnone | Don't emit debug info |
g | Emit debug info |
help-hidden | Display available options, including hidden options |
help | Display available options |
import-cf-types | Recognize and import CF types as class types |
import-module | Implicitly import the specified module |
import-objc-header | Implicitly imports an Objective-C header file |
import-underlying-module | Implicitly imports the Objective-C half of a module |
incremental | Perform an incremental build if possible |
interpret | Immediate mode |
I | Add directory to the import search path |
j | Number of commands to execute in parallel |
link-objc-runtime | Link in additions to the Objective-C runtime |
lldb-repl | LLDB-enhanced REPL mode |
L= | Add directory to library link search path |
L | Specifies a library which should be linked against |
module-cache-path | Specifies the Clang module cache path |
module-link-name= | Library to link against when using this module |
module-name= | Name of the module to build |
no-link-objc | Don't link in additions to the Objective-C runtime |
nostdimport | Don't search the standard library import path for modules |
Onone | Compile without any optimization |
Ounchecked | Compile with optimizations and remove runtime safety checks |
output-file-map | A file which specifies the location of outputs |
O | Compile with optimizations |
o | Write output to |
parse-as-library | Parse the input file(s) as libraries, not scripts |
parse-sil | Parse the input file as SIL code, not Swift source |
parse-stdlib | Parse the input file(s) as the Swift standard library |
parseable-output | Emit textual output in a parseable format |
parse | Parse input file(s) |
playground | Apply the playground semantics and transformation |
primary-file | Produce output for this file, not the whole module |
print-ast | Parse and type-check input file(s) and pretty print AST(s) |
print-clang-stats | Print Clang importer statistics |
print-inst-counts | Before IRGen, count all the various SIL instructions. Must be used in conjunction with -print-stats. |
print-stats | Print various statistics |
remove-runtime-asserts | Remove runtime asserts. |
repl | REPL mode (the default if there is no input file) |
resource-dir | The directory that holds the compiler resource files </usr/lib/swift> |
save-temps | Save intermediate compilation results |
sdk | Compile against |
serialize-debugging-options | Always serialize options for debugging (default: only for apps) |
serialize-diagnostics-path | Output serialized diagnostics to |
serialize-diagnostics | Serialize diagnostics in a binary format |
show-diagnostics-after | Keep emitting subsequent diagnostics after a fatal error |
sil-debug-serialization | Do not eliminate functions in Mandatory Inlining/SILCombine dead functions. (for debugging only) |
sil-devirt-threshold | Controls the aggressiveness of devirtualization |
sil-inline-threshold | Controls the aggressiveness of performance inlining |
sil-link-all | Link all SIL functions |
sil-opt-pass | Stop optimizing after optimization passes |
sil-print-all | Print SIL after each transform |
sil-print-pass | Print SIL pass name before each transform |
sil-serialize-all | Serialize all generated SIL |
sil-time-transforms | Time each SIL transform invocation |
sil-verify-all | Verify SIL after each transform |
solver-memory-threshold | Set the upper bound for memory consumption, in bytes, by the constraint solver |
split-objc-selectors | Split imported Objective-C selectors based on prepositions |
target-cpu | Generate code for a particular CPU variant |
target=<target triple> |
Generate code for the given target |
typecheck | Parse and typecheck Swift code |
update-code | Update Swift code |
use-jit | Register Objective-C classes as if the JIT were in use |
use-malloc | Allocate internal data structures using malloc (for memory debugging) |
verify-type-layout | Verify compile-time and runtime type layout information for type |
verify | Verify diagnostics against expected-{error |
version | Print version information and exit |
v | Show commands to run and use verbose output |
whole-module-optimization | Optimize input files together instead of individually |
I wonder how to you generate this from a .td file? refer to https://github.com/apple/swift/blob/master/include/swift/Option/Options.td, this page looks a lot easier to read.