blob: 16a2cf9fa7654cb4524488212b4ec6dad9d0b95c [file] [log] [blame]
//===--- MigratorOptions.h - Swift Migrator ---------------------*- C++ -*-===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
//
// A container for Swift Migrator options pulled in through the driver/frontend.
//
//===----------------------------------------------------------------------===//
#ifndef SWIFT_MIGRATOR_MIGRATOROPTIONS_H
#define SWIFT_MIGRATOR_MIGRATOROPTIONS_H
namespace swift {
struct MigratorOptions {
/// Add `@objc` to declarations that would've been implicitly
/// visible to the Objective-C runtime in Swift 3.
bool KeepObjcVisibility = false;
/// Skip the migration phase that repeatedly asks for fix-its from the
/// compiler and applies them. This is generally for debugging.
bool EnableMigratorFixits = true;
/// Whether to print each USR we query the api change data store about.
bool DumpUsr = false;
/// If non-empty, print a replacement map describing changes to get from
/// the first MigrationState's output text to the last MigrationState's
/// output text.
std::string EmitRemapFilePath = "";
/// If non-empty, print the last MigrationState's output text to the given
/// file path.
std::string EmitMigratedFilePath = "";
/// If non-empty, dump all Migrator::States to this directory.
std::string DumpMigrationStatesDir = "";
/// If non-empty, use the api change data serialized to this path.
std::vector<std::string> APIDigesterDataStorePaths;
bool shouldRunMigrator() const {
return !(EmitRemapFilePath.empty() && EmitMigratedFilePath.empty() &&
DumpMigrationStatesDir.empty());
}
};
} // end namespace swift
#endif // SWIFT_MIGRATOR_MIGRATOROPTIONS_H