diff options
author | Gabor Bencze <b.gabor98@gmail.com> | 2019-08-21 18:49:22 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2019-08-26 15:48:43 (GMT) |
commit | c2c222eba13476a95a362731528d85a3e76ed83a (patch) | |
tree | 7f895e66295b3b82ceab8c1d9a7547d356e5c2fc /Source/cmOutputRequiredFilesCommand.cxx | |
parent | 7533e47cccb8828885de518e40d58b629200d23d (diff) | |
download | CMake-c2c222eba13476a95a362731528d85a3e76ed83a.zip CMake-c2c222eba13476a95a362731528d85a3e76ed83a.tar.gz CMake-c2c222eba13476a95a362731528d85a3e76ed83a.tar.bz2 |
cmCommand refactor: cmOutputRequiredFilesCommand
Diffstat (limited to 'Source/cmOutputRequiredFilesCommand.cxx')
-rw-r--r-- | Source/cmOutputRequiredFilesCommand.cxx | 41 |
1 files changed, 24 insertions, 17 deletions
diff --git a/Source/cmOutputRequiredFilesCommand.cxx b/Source/cmOutputRequiredFilesCommand.cxx index 38e86e3..eb12ea0 100644 --- a/Source/cmOutputRequiredFilesCommand.cxx +++ b/Source/cmOutputRequiredFilesCommand.cxx @@ -5,9 +5,12 @@ #include "cmsys/FStream.hxx" #include "cmsys/RegularExpression.hxx" #include <map> +#include <set> +#include <stdio.h> #include <utility> #include "cmAlgorithms.h" +#include "cmExecutionStatus.h" #include "cmGeneratorExpression.h" #include "cmMakefile.h" #include "cmSourceFile.h" @@ -15,8 +18,7 @@ #include "cmSystemTools.h" #include "cmTarget.h" -class cmExecutionStatus; - +namespace { /** \class cmDependInformation * \brief Store dependency information for a single source file. * @@ -453,43 +455,47 @@ protected: DirectoryToFileToPathMapType DirectoryToFileToPathMap; }; +void ListDependencies(cmDependInformation const* info, FILE* fout, + std::set<cmDependInformation const*>* visited); +} + // cmOutputRequiredFilesCommand -bool cmOutputRequiredFilesCommand::InitialPass( - std::vector<std::string> const& args, cmExecutionStatus&) +bool cmOutputRequiredFilesCommand(std::vector<std::string> const& args, + cmExecutionStatus& status) { if (args.size() != 2) { - this->SetError("called with incorrect number of arguments"); + status.SetError("called with incorrect number of arguments"); return false; } // store the arg for final pass - this->File = args[0]; - this->OutputFile = args[1]; + const std::string& file = args[0]; + const std::string& outputFile = args[1]; // compute the list of files cmLBDepend md; - md.SetMakefile(this->Makefile); - md.AddSearchPath(this->Makefile->GetCurrentSourceDirectory()); + md.SetMakefile(&status.GetMakefile()); + md.AddSearchPath(status.GetMakefile().GetCurrentSourceDirectory()); // find the depends for a file - const cmDependInformation* info = md.FindDependencies(this->File.c_str()); + const cmDependInformation* info = md.FindDependencies(file.c_str()); if (info) { // write them out - FILE* fout = cmsys::SystemTools::Fopen(this->OutputFile, "w"); + FILE* fout = cmsys::SystemTools::Fopen(outputFile, "w"); if (!fout) { - this->SetError(cmStrCat("Can not open output file: ", this->OutputFile)); + status.SetError(cmStrCat("Can not open output file: ", outputFile)); return false; } std::set<cmDependInformation const*> visited; - this->ListDependencies(info, fout, &visited); + ListDependencies(info, fout, &visited); fclose(fout); } return true; } -void cmOutputRequiredFilesCommand::ListDependencies( - cmDependInformation const* info, FILE* fout, - std::set<cmDependInformation const*>* visited) +namespace { +void ListDependencies(cmDependInformation const* info, FILE* fout, + std::set<cmDependInformation const*>* visited) { // add info to the visited set visited->insert(info); @@ -504,7 +510,8 @@ void cmOutputRequiredFilesCommand::ListDependencies( fprintf(fout, "%s\n", d->FullPath.c_str()); } } - this->ListDependencies(d, fout, visited); + ListDependencies(d, fout, visited); } } } +} |