@@ -61,6 +61,9 @@ def SwiftAPIExtractOption : OptionFlag;
6161// The option should be accepted by swift-symbolgraph-extract.
6262def SwiftSymbolGraphExtractOption : OptionFlag;
6363
64+ // The option should be accepted by swift-api-digester.
65+ def SwiftAPIDigesterOption : OptionFlag;
66+
6467/////////
6568// Options
6669
@@ -177,15 +180,15 @@ def driver_mode : Joined<["--"], "driver-mode=">, Flags<[HelpHidden]>,
177180def help : Flag<["-", "--"], "help">,
178181 Flags<[FrontendOption, AutolinkExtractOption, ModuleWrapOption,
179182 SwiftIndentOption, SwiftAPIExtractOption,
180- SwiftSymbolGraphExtractOption]>,
183+ SwiftSymbolGraphExtractOption, SwiftAPIDigesterOption ]>,
181184 HelpText<"Display available options">;
182185def h : Flag<["-"], "h">, Alias<help>;
183186def help_hidden : Flag<["-", "--"], "help-hidden">,
184187 Flags<[HelpHidden, FrontendOption]>,
185188 HelpText<"Display available options, including hidden options">;
186189
187190def v : Flag<["-"], "v">,
188- Flags<[DoesNotAffectIncrementalBuild, SwiftSymbolGraphExtractOption]>,
191+ Flags<[DoesNotAffectIncrementalBuild, SwiftSymbolGraphExtractOption, SwiftAPIDigesterOption ]>,
189192 HelpText<"Show commands to run and use verbose output">;
190193def version : Flag<["-", "--"], "version">, Flags<[FrontendOption]>,
191194 HelpText<"Print version information and exit">;
@@ -201,18 +204,20 @@ def _DASH_DASH : Option<["--"], "", KIND_REMAINING_ARGS>,
201204def o : JoinedOrSeparate<["-"], "o">,
202205 Flags<[FrontendOption, AutolinkExtractOption, ModuleWrapOption,
203206 NoInteractiveOption, SwiftIndentOption, ArgumentIsPath,
204- SwiftAPIExtractOption]>,
207+ SwiftAPIExtractOption, SwiftAPIDigesterOption ]>,
205208 HelpText<"Write output to <file>">, MetaVarName<"<file>">;
206209
207210def j : JoinedOrSeparate<["-"], "j">, Flags<[DoesNotAffectIncrementalBuild]>,
208211 HelpText<"Number of commands to execute in parallel">, MetaVarName<"<n>">;
209212
210213def sdk : Separate<["-"], "sdk">,
211- Flags<[FrontendOption, ArgumentIsPath, SwiftAPIExtractOption, SwiftSymbolGraphExtractOption]>,
214+ Flags<[FrontendOption, ArgumentIsPath, SwiftAPIExtractOption, SwiftSymbolGraphExtractOption,
215+ SwiftAPIDigesterOption]>,
212216 HelpText<"Compile against <sdk>">, MetaVarName<"<sdk>">;
213217
214218def swift_version : Separate<["-"], "swift-version">,
215- Flags<[FrontendOption, ModuleInterfaceOption, SwiftAPIExtractOption, SwiftSymbolGraphExtractOption]>,
219+ Flags<[FrontendOption, ModuleInterfaceOption, SwiftAPIExtractOption, SwiftSymbolGraphExtractOption,
220+ SwiftAPIDigesterOption]>,
216221 HelpText<"Interpret input according to a specific Swift language version number">,
217222 MetaVarName<"<vers>">;
218223
@@ -230,7 +235,7 @@ def D : JoinedOrSeparate<["-"], "D">, Flags<[FrontendOption]>,
230235 HelpText<"Marks a conditional compilation flag as true">;
231236
232237def F : JoinedOrSeparate<["-"], "F">,
233- Flags<[FrontendOption, ArgumentIsPath, SwiftAPIExtractOption, SwiftSymbolGraphExtractOption]>,
238+ Flags<[FrontendOption, ArgumentIsPath, SwiftAPIExtractOption, SwiftSymbolGraphExtractOption, SwiftAPIDigesterOption ]>,
234239 HelpText<"Add directory to framework search path">;
235240def F_EQ : Joined<["-"], "F=">, Flags<[FrontendOption, ArgumentIsPath]>,
236241 Alias<F>;
@@ -240,7 +245,7 @@ def Fsystem : Separate<["-"], "Fsystem">,
240245 HelpText<"Add directory to system framework search path">;
241246
242247def I : JoinedOrSeparate<["-"], "I">,
243- Flags<[FrontendOption, ArgumentIsPath, SwiftAPIExtractOption, SwiftSymbolGraphExtractOption]>,
248+ Flags<[FrontendOption, ArgumentIsPath, SwiftAPIExtractOption, SwiftSymbolGraphExtractOption, SwiftAPIDigesterOption ]>,
244249 HelpText<"Add directory to the import search path">;
245250def I_EQ : Joined<["-"], "I=">, Flags<[FrontendOption, ArgumentIsPath]>,
246251 Alias<I>;
@@ -347,11 +352,13 @@ def serialize_diagnostics : Flag<["-"], "serialize-diagnostics">,
347352 Flags<[FrontendOption, NoInteractiveOption, SupplementaryOutput]>,
348353 HelpText<"Serialize diagnostics in a binary format">;
349354def serialize_diagnostics_path : Separate<["-"], "serialize-diagnostics-path">,
350- Flags<[FrontendOption, NoBatchOption, ArgumentIsPath, SupplementaryOutput]>,
355+ Flags<[FrontendOption, SwiftAPIDigesterOption, NoBatchOption,
356+ ArgumentIsPath, SupplementaryOutput]>,
351357 HelpText<"Emit a serialized diagnostics file to <path>">,
352358 MetaVarName<"<path>">;
353359def serialize_diagnostics_path_EQ: Joined<["-"], "serialize-diagnostics-path=">,
354- Flags<[FrontendOption, NoBatchOption, ArgumentIsPath, SupplementaryOutput]>,
360+ Flags<[FrontendOption, SwiftAPIDigesterOption, NoBatchOption,
361+ ArgumentIsPath, SupplementaryOutput]>,
355362 Alias<serialize_diagnostics_path>;
356363def color_diagnostics : Flag<["-"], "color-diagnostics">,
357364 Flags<[FrontendOption, DoesNotAffectIncrementalBuild]>,
@@ -383,7 +390,7 @@ def localization_path : Separate<["-"], "localization-path">,
383390
384391def module_cache_path : Separate<["-"], "module-cache-path">,
385392 Flags<[FrontendOption, DoesNotAffectIncrementalBuild, ArgumentIsPath, SwiftAPIExtractOption,
386- SwiftSymbolGraphExtractOption]>,
393+ SwiftSymbolGraphExtractOption, SwiftAPIDigesterOption ]>,
387394 HelpText<"Specifies the Clang module cache path">;
388395
389396def enable_library_evolution : Flag<["-"], "enable-library-evolution">,
@@ -1045,12 +1052,13 @@ def Xllvm : Separate<["-"], "Xllvm">,
10451052 MetaVarName<"<arg>">, HelpText<"Pass <arg> to LLVM.">;
10461053
10471054def resource_dir : Separate<["-"], "resource-dir">,
1048- Flags<[FrontendOption, SwiftSymbolGraphExtractOption, HelpHidden, ArgumentIsPath]>,
1055+ Flags<[FrontendOption, SwiftSymbolGraphExtractOption, SwiftAPIDigesterOption, HelpHidden, ArgumentIsPath]>,
10491056 MetaVarName<"</usr/lib/swift>">,
10501057 HelpText<"The directory that holds the compiler resource files">;
10511058
10521059def target : Separate<["-"], "target">,
1053- Flags<[FrontendOption, ModuleWrapOption, ModuleInterfaceOption, SwiftAPIExtractOption, SwiftSymbolGraphExtractOption]>,
1060+ Flags<[FrontendOption, ModuleWrapOption, ModuleInterfaceOption, SwiftAPIExtractOption, SwiftSymbolGraphExtractOption,
1061+ SwiftAPIDigesterOption]>,
10541062 HelpText<"Generate code for the given target <triple>, such as x86_64-apple-macos10.9">, MetaVarName<"<triple>">;
10551063def target_legacy_spelling : Joined<["--"], "target=">,
10561064 Flags<[FrontendOption]>, Alias<target>;
@@ -1216,8 +1224,9 @@ def pretty_print: Flag<["-"], "pretty-print">,
12161224
12171225// swift-symbolgraph-extract-only options
12181226def output_dir : Separate<["-"], "output-dir">,
1219- Flags<[NoDriverOption, SwiftSymbolGraphExtractOption, ArgumentIsPath]>,
1220- HelpText<"Symbol Graph JSON Output Directory (Required)">,
1227+ Flags<[NoDriverOption, SwiftSymbolGraphExtractOption, SwiftAPIDigesterOption,
1228+ ArgumentIsPath]>,
1229+ HelpText<"Output directory">,
12211230 MetaVarName<"<dir>">;
12221231
12231232def skip_synthesized_members: Flag<[ "-" ], "skip-synthesized-members">,
@@ -1235,4 +1244,151 @@ def skip_inherited_docs : Flag<["-"], "skip-inherited-docs">,
12351244 HelpText<"Skip emitting doc comments for members inherited through classes or "
12361245 "default implementations">;
12371246
1247+ // swift-api-digester-only options
1248+ def dump_sdk: Flag<["-", "--"], "dump-sdk">,
1249+ Flags<[NoDriverOption, SwiftAPIDigesterOption]>,
1250+ HelpText<"Dump SDK content to JSON file">;
1251+
1252+ def generate_migration_script: Flag<["-", "--"], "generate-migration-script">,
1253+ Flags<[NoDriverOption, SwiftAPIDigesterOption]>,
1254+ HelpText<"Compare SDK content in JSON file and generate migration script">;
1255+
1256+ def diagnose_sdk: Flag<["-", "--"], "diagnose-sdk">,
1257+ Flags<[NoDriverOption, SwiftAPIDigesterOption]>,
1258+ HelpText<"Diagnose SDK content in JSON file">;
1259+
1260+ def deserialize_diff: Flag<["-", "--"], "deserialize-diff">,
1261+ Flags<[NoDriverOption, SwiftAPIDigesterOption]>,
1262+ HelpText<"Deserialize diff items in a JSON file">;
1263+
1264+ def deserialize_sdk: Flag<["-", "--"], "deserialize-sdk">,
1265+ Flags<[NoDriverOption, SwiftAPIDigesterOption]>,
1266+ HelpText<"Deserialize sdk digester in a JSON file">;
1267+
1268+ def find_usr: Flag<["-", "--"], "find-usr">,
1269+ Flags<[NoDriverOption, SwiftAPIDigesterOption]>,
1270+ HelpText<"Find USR for decls by given condition">;
1271+
1272+ def generate_name_correction: Flag<["-", "--"], "generate-name-correction">,
1273+ Flags<[NoDriverOption, SwiftAPIDigesterOption]>,
1274+ HelpText<"Generate name correction template">;
1275+
1276+ def generate_empty_baseline: Flag<["-", "--"], "generate-empty-baseline">,
1277+ Flags<[NoDriverOption, SwiftAPIDigesterOption]>,
1278+ HelpText<"Generate an empty baseline">;
1279+
1280+ def empty_baseline: Flag<["-", "--"], "empty-baseline">,
1281+ Flags<[NoDriverOption, SwiftAPIDigesterOption]>,
1282+ HelpText<"Use empty baseline for diagnostics">;
1283+
1284+ def ignored_usrs: Separate<["-", "--"], "ignored-usrs">,
1285+ Flags<[NoDriverOption, SwiftAPIDigesterOption, ArgumentIsPath]>,
1286+ HelpText<"the file containing USRs of removed decls that the digester should ignore">,
1287+ MetaVarName<"<path>">;
1288+
1289+ def protocol_requirement_allow_list: Separate<["-", "--"], "protocol-requirement-allow-list">,
1290+ Flags<[NoDriverOption, SwiftAPIDigesterOption, ArgumentIsPath]>,
1291+ HelpText<"File containing a new-line separated list of protocol names">,
1292+ MetaVarName<"<path>">;
1293+
1294+ def input_paths: Separate<["-", "--"], "input-paths">,
1295+ Flags<[NoDriverOption, SwiftAPIDigesterOption, ArgumentIsPath]>,
1296+ HelpText<"The SDK contents under comparison">,
1297+ MetaVarName<"<path>">;
1298+
1299+ def compiler_style_diags: Flag<["-", "--"], "compiler-style-diags">,
1300+ Flags<[NoDriverOption, SwiftAPIDigesterOption]>,
1301+ HelpText<"Print compiler style diagnostics to stderr.">;
1302+
1303+ def json: Flag<["-", "--"], "json">,
1304+ Flags<[NoDriverOption, SwiftAPIDigesterOption]>,
1305+ HelpText<"Print output in JSON format.">;
1306+
1307+ def avoid_location: Flag<["-", "--"], "avoid-location">,
1308+ Flags<[NoDriverOption, SwiftAPIDigesterOption]>,
1309+ HelpText<"Avoid serializing the file paths of SDK nodes.">;
1310+
1311+ def location: Separate<["-", "--"], "location">,
1312+ Flags<[NoDriverOption, SwiftAPIDigesterOption]>,
1313+ HelpText<"Filter nodes with the given location.">,
1314+ MetaVarName<"<location>">;
1315+
1316+ def avoid_tool_args: Flag<["-", "--"], "avoid-tool-args">,
1317+ Flags<[NoDriverOption, SwiftAPIDigesterOption]>,
1318+ HelpText<"Avoid serializing the arguments for invoking the tool.">;
1319+
1320+ def abi: Flag<["-", "--"], "abi">,
1321+ Flags<[NoDriverOption, SwiftAPIDigesterOption]>,
1322+ HelpText<"Dumping ABI interface">;
1323+
1324+ def swift_only: Flag<["-", "--"], "swift-only">,
1325+ Flags<[NoDriverOption, SwiftAPIDigesterOption]>,
1326+ HelpText<"Only include APIs defined from Swift source">;
1327+
1328+ def disable_os_checks: Flag<["-", "--"], "disable-os-checks">,
1329+ Flags<[NoDriverOption, SwiftAPIDigesterOption]>,
1330+ HelpText<"Skip OS related diagnostics">;
1331+
1332+ def print_module: Flag<["-", "--"], "print-module">,
1333+ Flags<[NoDriverOption, SwiftAPIDigesterOption]>,
1334+ HelpText<"Print module names in diagnostics">;
1335+
1336+ def migrator: Flag<["-", "--"], "migrator">,
1337+ Flags<[NoDriverOption, SwiftAPIDigesterOption]>,
1338+ HelpText<"Dump Json suitable for generating migration script">;
1339+
1340+ def abort_on_module_fail: Flag<["-", "--"], "abort-on-module-fail">,
1341+ Flags<[NoDriverOption, SwiftAPIDigesterOption]>,
1342+ HelpText<"Abort if a module failed to load">;
1343+
1344+ def debug_mapping: Flag<["-", "--"], "debug-mapping">,
1345+ Flags<[NoDriverOption, SwiftAPIDigesterOption]>,
1346+ HelpText<"Dumping information for debug purposes">;
1347+
1348+ def BF : JoinedOrSeparate<["-"], "BF">,
1349+ Flags<[NoDriverOption, SwiftAPIDigesterOption, ArgumentIsPath]>,
1350+ HelpText<"add a directory to the baseline framework search path">;
1351+ def BF_EQ : Joined<["-"], "BF=">, Flags<[NoDriverOption, SwiftAPIDigesterOption]>,
1352+ Alias<BF>;
1353+
1354+ def BI : JoinedOrSeparate<["-"], "BI">,
1355+ Flags<[NoDriverOption, SwiftAPIDigesterOption, ArgumentIsPath]>,
1356+ HelpText<"add a module for baseline input">;
1357+ def BI_EQ : Joined<["-"], "BI=">, Flags<[NoDriverOption, SwiftAPIDigesterOption]>,
1358+ Alias<BI>;
1359+
1360+ def iframework : JoinedOrSeparate<["-"], "iframework">,
1361+ Flags<[NoDriverOption, SwiftAPIDigesterOption, ArgumentIsPath]>,
1362+ HelpText<"add a directory to the clang importer system framework search path">;
1363+
1364+ def baseline_path : JoinedOrSeparate<["-"], "baseline-path">,
1365+ Flags<[NoDriverOption, SwiftAPIDigesterOption, ArgumentIsPath]>,
1366+ HelpText<"The path to the Json file that we should use as the baseline">;
1367+
1368+ def baseline_dir : JoinedOrSeparate<["-"], "baseline-dir">,
1369+ Flags<[NoDriverOption, SwiftAPIDigesterOption, ArgumentIsPath]>,
1370+ HelpText<"The path to a directory containing baseline files: macos.json, iphoneos.json, appletvos.json, watchos.json, and iosmac.json">;
1371+
1372+ def breakage_allowlist_path : JoinedOrSeparate<["-"], "breakage-allowlist-path">,
1373+ Flags<[NoDriverOption, SwiftAPIDigesterOption, ArgumentIsPath]>,
1374+ HelpText<"An allowlist of breakages to not complain about">;
1375+
1376+ def bsdk : JoinedOrSeparate<["-"], "bsdk">,
1377+ Flags<[NoDriverOption, SwiftAPIDigesterOption, ArgumentIsPath]>,
1378+ HelpText<"path to the baseline SDK to import frameworks">;
1379+
1380+ def module_list_file : JoinedOrSeparate<["-"], "module-list-file">,
1381+ Flags<[NoDriverOption, SwiftAPIDigesterOption, ArgumentIsPath]>,
1382+ HelpText<"File containing a new-line separated list of modules">;
1383+
1384+ def module: Separate<["-", "--"], "module">,
1385+ Flags<[NoDriverOption, SwiftAPIDigesterOption]>,
1386+ HelpText<"Names of modules">,
1387+ MetaVarName<"<name>">;
1388+
1389+ def use_interface_for_module: Separate<["-", "--"], "use-interface-for-module">,
1390+ Flags<[NoDriverOption, SwiftAPIDigesterOption]>,
1391+ HelpText<"Prefer loading these modules via interface">,
1392+ MetaVarName<"<name>">;
1393+
12381394include "FrontendOptions.td"
0 commit comments