//===--- Util.h - Common Driver Utilities -----------------------*- 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 // //===----------------------------------------------------------------------===// #ifndef SWIFT_DRIVER_UTIL_H #define SWIFT_DRIVER_UTIL_H #include "swift/Driver/Types.h" #include "swift/Basic/LLVM.h" #include "llvm/ADT/SmallVector.h" namespace llvm { namespace opt { class Arg; } // end namespace opt } // end namespace llvm namespace swift { namespace driver { /// An input argument from the command line and its inferred type. typedef std::pair InputPair; /// Type used for a list of input arguments. typedef SmallVector InputFileList; enum class LinkKind { None, Executable, DynamicLibrary }; /// Used by a Job to request a "filelist": a file containing a list of all /// input or output files of a certain type. /// /// The Compilation is responsible for generating this file before running /// the Job this info is attached to. struct FilelistInfo { enum class WhichFiles : unsigned { Input, PrimaryInputs, Output }; StringRef path; types::ID type; WhichFiles whichFiles; }; } // end namespace driver } // end namespace swift #endif