12#include "llvm/Support/Path.h"
20 const llvm::opt::ArgList &Args,
21 const char *LinkingOutput)
const {
24 llvm::opt::ArgStringList CmdArgs;
25 CmdArgs.push_back(
"--input-format=IFS");
26 const bool WriteBin = !Args.getLastArg(options::OPT_emit_merged_ifs);
27 CmdArgs.push_back(WriteBin ?
"--output-format=ELF" :
"--output-format=IFS");
28 CmdArgs.push_back(
"-o");
37 if (OutputFilename !=
"-") {
38 if (Args.hasArg(options::OPT_shared))
39 llvm::sys::path::replace_extension(OutputFilename,
40 (WriteBin ?
"ifso" :
"ifs"));
42 OutputFilename += (WriteBin ?
".ifso" :
".ifs");
45 CmdArgs.push_back(Args.MakeArgString(OutputFilename.c_str()));
49 for (
const auto &Input : Inputs) {
50 if (!Input.isFilename())
53 if (Input.getType() == types::TY_Object)
54 llvm::sys::path::replace_extension(InputFilename,
".ifs");
55 CmdArgs.push_back(Args.MakeArgString(InputFilename.c_str()));
59 Args.MakeArgString(
Merger), CmdArgs,
Compilation - A set of tasks to perform for a single driver invocation.
The JSON file list parser is used to communicate input to InstallAPI.
static constexpr ResponseFileSupport None()
Returns a ResponseFileSupport indicating that response files are not supported.