mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
tblgen: Move dependency file output to a separate function.
This keeps it out of the main flow of TableGenMain. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165542 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6b73e8a280
commit
88dbc5e6c3
@ -47,6 +47,34 @@ namespace {
|
||||
cl::value_desc("directory"), cl::Prefix);
|
||||
}
|
||||
|
||||
/// \brief Create a dependency file for `-d` option.
|
||||
///
|
||||
/// This functionality is really only for the benefit of the build system.
|
||||
/// It is similar to GCC's `-M*` family of options.
|
||||
static int handleDependencies(const TGParser &Parser, const char *argv0) {
|
||||
if (OutputFilename == "-") {
|
||||
errs() << argv0 << ": the option -d must be used together with -o\n";
|
||||
return 1;
|
||||
}
|
||||
std::string Error;
|
||||
tool_output_file DepOut(DependFilename.c_str(), Error);
|
||||
if (!Error.empty()) {
|
||||
errs() << argv0 << ": error opening " << DependFilename
|
||||
<< ":" << Error << "\n";
|
||||
return 1;
|
||||
}
|
||||
DepOut.os() << OutputFilename << ":";
|
||||
const std::vector<std::string> &Dependencies = Parser.getDependencies();
|
||||
for (std::vector<std::string>::const_iterator I = Dependencies.begin(),
|
||||
E = Dependencies.end();
|
||||
I != E; ++I) {
|
||||
DepOut.os() << " " << (*I);
|
||||
}
|
||||
DepOut.os() << "\n";
|
||||
DepOut.keep();
|
||||
return 0;
|
||||
}
|
||||
|
||||
namespace llvm {
|
||||
|
||||
int TableGenMain(char *argv0, TableGenMainFn *MainFn) {
|
||||
@ -82,27 +110,9 @@ int TableGenMain(char *argv0, TableGenMainFn *MainFn) {
|
||||
<< ":" << Error << "\n";
|
||||
return 1;
|
||||
}
|
||||
if (!DependFilename.empty()) {
|
||||
if (OutputFilename == "-") {
|
||||
errs() << argv0 << ": the option -d must be used together with -o\n";
|
||||
return 1;
|
||||
}
|
||||
tool_output_file DepOut(DependFilename.c_str(), Error);
|
||||
if (!Error.empty()) {
|
||||
errs() << argv0 << ": error opening " << DependFilename
|
||||
<< ":" << Error << "\n";
|
||||
return 1;
|
||||
}
|
||||
DepOut.os() << OutputFilename << ":";
|
||||
const std::vector<std::string> &Dependencies = Parser.getDependencies();
|
||||
for (std::vector<std::string>::const_iterator I = Dependencies.begin(),
|
||||
E = Dependencies.end();
|
||||
I != E; ++I) {
|
||||
DepOut.os() << " " << (*I);
|
||||
}
|
||||
DepOut.os() << "\n";
|
||||
DepOut.keep();
|
||||
}
|
||||
if (!DependFilename.empty())
|
||||
if (int Ret = handleDependencies(Parser, argv0))
|
||||
return Ret;
|
||||
|
||||
if (MainFn(Out.os(), Records))
|
||||
return 1;
|
||||
|
Loading…
Reference in New Issue
Block a user