Path: blob/main/contrib/llvm-project/clang/lib/Driver/ToolChains/CSKYToolChain.h
35268 views
//===--- CSKYToolchain.h - CSKY ToolChain Implementations -----*- C++ -*-===//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//78#ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_CSKYTOOLCHAIN_H9#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_CSKYTOOLCHAIN_H1011#include "Gnu.h"12#include "clang/Driver/ToolChain.h"1314namespace clang {15namespace driver {16namespace toolchains {1718class LLVM_LIBRARY_VISIBILITY CSKYToolChain : public Generic_ELF {19public:20CSKYToolChain(const Driver &D, const llvm::Triple &Triple,21const llvm::opt::ArgList &Args);2223void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs,24llvm::opt::ArgStringList &CC1Args,25Action::OffloadKind) const override;26RuntimeLibType GetDefaultRuntimeLibType() const override;27UnwindLibType GetUnwindLibType(const llvm::opt::ArgList &Args) const override;28void29AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,30llvm::opt::ArgStringList &CC1Args) const override;31void32addLibStdCxxIncludePaths(const llvm::opt::ArgList &DriverArgs,33llvm::opt::ArgStringList &CC1Args) const override;3435protected:36Tool *buildLinker() const override;3738private:39std::string computeSysRoot() const override;40};4142} // end namespace toolchains4344namespace tools {45namespace CSKY {46class LLVM_LIBRARY_VISIBILITY Linker final : public Tool {47public:48Linker(const ToolChain &TC) : Tool("CSKY::Linker", "ld", TC) {}49bool hasIntegratedCPP() const override { return false; }50bool isLinkJob() const override { return true; }51void ConstructJob(Compilation &C, const JobAction &JA,52const InputInfo &Output, const InputInfoList &Inputs,53const llvm::opt::ArgList &TCArgs,54const char *LinkingOutput) const override;55};56} // end namespace CSKY57} // end namespace tools5859} // end namespace driver60} // end namespace clang6162#endif // LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_CSKYTOOLCHAIN_H636465