Lines Matching full:options
63 #include "Options.inc"
68 #include "Options.inc"
72 #include "Options.inc"
78 #include "Options.inc"
173 // Verify that the given combination of options makes sense.
174 static Error verifyOptions(const DsymutilOptions &Options) {
175 if (Options.LinkOpts.Verbose && Options.LinkOpts.Quiet) {
181 if (Options.InputFiles.empty()) {
186 if (!Options.Flat && Options.OutputFile == "-")
191 if (Options.InputFiles.size() > 1 && Options.Flat &&
192 !Options.OutputFile.empty())
197 if (!Options.ReproducerPath.empty() &&
198 Options.ReproMode != ReproducerMode::Use)
289 /// Parses the command line options into the LinkOptions struct and performs
292 DsymutilOptions Options;
294 Options.DumpDebugMap = Args.hasArg(OPT_dump_debug_map);
295 Options.DumpStab = Args.hasArg(OPT_symtab);
296 Options.Flat = Args.hasArg(OPT_flat);
297 Options.InputIsYAMLDebugMap = Args.hasArg(OPT_yaml_input);
298 Options.NoObjectTimestamp = Args.hasArg(OPT_no_object_timestamp);
301 Options.Verify = *Verify;
306 Options.LinkOpts.NoODR = Args.hasArg(OPT_no_odr);
307 Options.LinkOpts.VerifyInputDWARF =
308 flagIsSet(Options.Verify, DWARFVerify::Input);
309 Options.LinkOpts.NoOutput = Args.hasArg(OPT_no_output);
310 Options.LinkOpts.NoTimestamp = Args.hasArg(OPT_no_swiftmodule_timestamp);
311 Options.LinkOpts.Update = Args.hasArg(OPT_update);
312 Options.LinkOpts.Verbose = Args.hasArg(OPT_verbose);
313 Options.LinkOpts.Quiet = Args.hasArg(OPT_quiet);
314 Options.LinkOpts.Statistics = Args.hasArg(OPT_statistics);
315 Options.LinkOpts.Fat64 = Args.hasArg(OPT_fat64);
316 Options.LinkOpts.KeepFunctionForStatic =
320 Options.ReproMode = ReproducerMode::Use;
321 Options.ReproducerPath = ReproducerPath->getValue();
324 Options.ReproMode = *ReproMode;
331 Options.LinkOpts.TheAccelTableKind = *AccelKind;
338 Options.LinkOpts.DWARFLinkerType = *DWARFLinkerType;
344 getInputs(Args, Options.LinkOpts.Update)) {
345 Options.InputFiles = std::move(*InputFiles);
351 Options.Archs.push_back(Arch->getValue());
354 Options.LinkOpts.PrependPath = OsoPrependPath->getValue();
358 Options.LinkOpts.ObjectPrefixMap.insert(
363 Options.OutputFile = OutputFile->getValue();
366 Options.Toolchain = Toolchain->getValue();
369 Options.LinkOpts.FileType = DWARFLinkerBase::OutputFileType::Assembly;
372 Options.LinkOpts.Threads = atoi(NumThreads->getValue());
374 Options.LinkOpts.Threads = 0; // Use all available hardware threads
376 if (Options.DumpDebugMap || Options.LinkOpts.Verbose)
377 Options.LinkOpts.Threads = 1;
380 Options.LinkOpts.RemarksPrependPath = RemarksPrependPath->getValue();
386 Options.LinkOpts.RemarksFormat = *FormatOrErr;
391 Options.LinkOpts.RemarksKeepAll =
395 Options.LinkOpts.BuildVariantSuffix = BuildVariantSuffix->getValue();
398 Options.LinkOpts.DSYMSearchPaths.push_back(SearchPath->getValue());
400 if (Error E = verifyOptions(Options))
402 return Options;
483 DsymutilOptions Options, std::mutex &Mutex) {
486 if (!Options.LinkOpts.Quiet) {
494 if (Options.LinkOpts.NoOutput) {
495 if (!Options.LinkOpts.Quiet) {
514 if (!Options.LinkOpts.Quiet) {
523 if (Options.LinkOpts.Verbose) {
557 getOutputFileName(StringRef InputFile, const DsymutilOptions &Options) {
558 if (Options.OutputFile == "-")
559 return OutputLocation(Options.OutputFile);
562 if (Options.OutputFile.empty() && Options.LinkOpts.Update)
567 if (Options.DumpDebugMap)
571 if (Options.Flat) {
572 if (Options.OutputFile.empty()) {
578 return OutputLocation(Options.OutputFile);
591 SmallString<128> Path(Options.OutputFile);
594 if (!Options.LinkOpts.NoOutput) {
597 if (auto E = createPlistFile(DwarfFile, Path, Options.Toolchain))
626 outs(), (std::string(argv[0]) + " [options] <input files>").c_str(),
646 auto &Options = *OptionsOrErr;
653 auto Repro = Reproducer::createReproducer(Options.ReproMode,
654 Options.ReproducerPath, argc, argv);
660 Options.LinkOpts.VFS = (*Repro)->getVFS();
662 for (const auto &Arch : Options.Archs)
669 for (auto &InputFile : Options.InputFiles) {
671 BinaryHolder::Options BinOpts;
672 BinOpts.Verbose = Options.LinkOpts.Verbose;
673 BinOpts.Warn = !Options.NoObjectTimestamp;
674 BinaryHolder BinHolder(Options.LinkOpts.VFS, BinOpts);
677 if (Options.DumpStab) {
678 if (!dumpStab(BinHolder, InputFile, Options.Archs,
679 Options.LinkOpts.DSYMSearchPaths,
680 Options.LinkOpts.PrependPath,
681 Options.LinkOpts.BuildVariantSuffix))
687 BinHolder, InputFile, Options.Archs, Options.LinkOpts.DSYMSearchPaths,
688 Options.LinkOpts.PrependPath, Options.LinkOpts.BuildVariantSuffix,
689 Options.LinkOpts.Verbose, Options.InputIsYAMLDebugMap);
699 Options.LinkOpts.NumDebugMaps = DebugMapPtrsOrErr->size();
701 if (Options.LinkOpts.Update) {
717 getOutputFileName(InputFile, Options);
722 Options.LinkOpts.ResourceDir = OutputLocationOrErr->getResourceDir();
728 Options.LinkOpts.Statistics ? 1 : Options.LinkOpts.Threads);
729 if (Options.LinkOpts.Threads == 0) {
740 !Options.DumpDebugMap && (Options.OutputFile != "-") &&
741 (DebugMapPtrsOrErr->size() != 1 || Options.LinkOpts.Update);
755 if (Options.LinkOpts.Verbose || Options.DumpDebugMap)
758 if (Options.DumpDebugMap)
762 if (!Options.LinkOpts.Quiet) {
794 Options.LinkOpts.NoOutput ? "-" : OutputFile, EC,
805 DwarfLinkerForBinary Linker(*Stream, BinHolder, Options.LinkOpts,
809 if (flagIsSet(Options.Verify, DWARFVerify::Output) ||
810 (flagIsSet(Options.Verify, DWARFVerify::OutputOnValidInput) &&
814 Options, ErrorHandlerMutex));
837 bool Fat64 = Options.LinkOpts.Fat64;
860 Options.LinkOpts.VFS->status(File.getPath());
879 TempFiles, OutputLocationOrErr->DWARFFile, Options.LinkOpts,