//===--- InterfaceStubs.cpp - Base InterfaceStubs Implementations C++ ---===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #include "InterfaceStubs.h" #include "CommonArgs.h" #include "clang/Driver/Compilation.h" namespace clang { namespace driver { namespace tools { namespace ifstool { void Merger::ConstructJob(Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, const llvm::opt::ArgList &Args, const char *LinkingOutput) const { std::string Merger = getToolChain().GetProgramPath(getShortName()); llvm::opt::ArgStringList CmdArgs; CmdArgs.push_back("-action"); CmdArgs.push_back(Args.getLastArg(options::OPT_emit_merged_ifs) ? "write-ifs" : "write-bin"); CmdArgs.push_back("-o"); CmdArgs.push_back(Output.getFilename()); for (const auto &Input : Inputs) CmdArgs.push_back(Input.getFilename()); C.addCommand(std::make_unique(JA, *this, Args.MakeArgString(Merger), CmdArgs, Inputs)); } } // namespace ifstool } // namespace tools } // namespace driver } // namespace clang