blob: 01b991633559ae6012e9a56dcae5acf87a408d80 [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::string APIDigesterDataStorePath = "";
bool shouldRunMigrator() const {
return !(EmitRemapFilePath.empty() && EmitMigratedFilePath.empty() &&
DumpMigrationStatesDir.empty());
}
};
} // end namespace swift
#endif // SWIFT_MIGRATOR_MIGRATOROPTIONS_H