| //===--- ToolChains.h - Platform-specific ToolChain logic -------*- C++ -*-===// |
| // |
| // This source file is part of the Swift.org open source project |
| // |
| // Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors |
| // Licensed under Apache License v2.0 with Runtime Library Exception |
| // |
| // See http://swift.org/LICENSE.txt for license information |
| // See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef SWIFT_DRIVER_TOOLCHAINS_H |
| #define SWIFT_DRIVER_TOOLCHAINS_H |
| |
| #include "swift/Basic/LLVM.h" |
| #include "swift/Driver/ToolChain.h" |
| #include "llvm/Support/Compiler.h" |
| |
| namespace swift { |
| namespace driver { |
| namespace toolchains { |
| |
| class LLVM_LIBRARY_VISIBILITY Darwin : public ToolChain { |
| protected: |
| InvocationInfo constructInvocation(const InterpretJobAction &job, |
| const JobContext &context) const override; |
| InvocationInfo constructInvocation(const LinkJobAction &job, |
| const JobContext &context) const override; |
| |
| std::string findProgramRelativeToSwiftImpl(StringRef name) const override; |
| |
| public: |
| Darwin(const Driver &D, const llvm::Triple &Triple) : ToolChain(D, Triple) {} |
| ~Darwin() = default; |
| |
| }; |
| |
| class LLVM_LIBRARY_VISIBILITY GenericUnix : public ToolChain { |
| protected: |
| InvocationInfo constructInvocation(const InterpretJobAction &job, |
| const JobContext &context) const override; |
| InvocationInfo constructInvocation(const AutolinkExtractJobAction &job, |
| const JobContext &context) const override; |
| InvocationInfo constructInvocation(const LinkJobAction &job, |
| const JobContext &context) const override; |
| |
| public: |
| GenericUnix(const Driver &D, const llvm::Triple &Triple) : ToolChain(D, Triple) {} |
| ~GenericUnix() = default; |
| }; |
| |
| } // end namespace toolchains |
| } // end namespace driver |
| } // end namespace swift |
| |
| #endif |
| |