diff options
Diffstat (limited to 'Source/cmUseMangledMesaCommand.cxx')
-rw-r--r-- | Source/cmUseMangledMesaCommand.cxx | 101 |
1 files changed, 38 insertions, 63 deletions
diff --git a/Source/cmUseMangledMesaCommand.cxx b/Source/cmUseMangledMesaCommand.cxx index 4c189e665..07095b137 100644 --- a/Source/cmUseMangledMesaCommand.cxx +++ b/Source/cmUseMangledMesaCommand.cxx @@ -1,68 +1,56 @@ -/*============================================================================ - CMake - Cross Platform Makefile Generator - Copyright 2000-2009 Kitware, Inc., Insight Software Consortium +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#include "cmUseMangledMesaCommand.h" - Distributed under the OSI-approved BSD License (the "License"); - see accompanying file Copyright.txt for details. +#include "cmsys/FStream.hxx" +#include "cmsys/RegularExpression.hxx" - This software is distributed WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the License for more information. -============================================================================*/ -#include "cmUseMangledMesaCommand.h" #include "cmSystemTools.h" -#include <cmsys/RegularExpression.hxx> +class cmExecutionStatus; -// cmUseMangledMesaCommand -bool cmUseMangledMesaCommand -::InitialPass(std::vector<std::string> const& args, cmExecutionStatus &) +bool cmUseMangledMesaCommand::InitialPass(std::vector<std::string> const& args, + cmExecutionStatus&) { // expected two arguments: // arguement one: the full path to gl_mangle.h // arguement two : directory for output of edited headers - if(args.size() != 2) - { + if (args.size() != 2) { this->SetError("called with incorrect number of arguments"); return false; - } + } const char* inputDir = args[0].c_str(); std::string glh = inputDir; glh += "/"; glh += "gl.h"; - if(!cmSystemTools::FileExists(glh.c_str())) - { + if (!cmSystemTools::FileExists(glh.c_str())) { std::string e = "Bad path to Mesa, could not find: "; e += glh; e += " "; - this->SetError(e.c_str()); + this->SetError(e); return false; - } + } const char* destDir = args[1].c_str(); std::vector<std::string> files; cmSystemTools::Glob(inputDir, "\\.h$", files); - if(files.size() == 0) - { + if (files.empty()) { cmSystemTools::Error("Could not open Mesa Directory ", inputDir); return false; - } + } cmSystemTools::MakeDirectory(destDir); - for(std::vector<std::string>::iterator i = files.begin(); - i != files.end(); ++i) - { + for (std::vector<std::string>::iterator i = files.begin(); i != files.end(); + ++i) { std::string path = inputDir; path += "/"; path += *i; this->CopyAndFullPathMesaHeader(path.c_str(), destDir); - } + } return true; } -void -cmUseMangledMesaCommand:: -CopyAndFullPathMesaHeader(const char* source, - const char* outdir) +void cmUseMangledMesaCommand::CopyAndFullPathMesaHeader(const char* source, + const char* outdir) { std::string dir, file; cmSystemTools::SplitProgramPath(source, dir, file); @@ -71,21 +59,19 @@ CopyAndFullPathMesaHeader(const char* source, outFile += file; std::string tempOutputFile = outFile; tempOutputFile += ".tmp"; - std::ofstream fout(tempOutputFile.c_str()); - if(!fout) - { + cmsys::ofstream fout(tempOutputFile.c_str()); + if (!fout) { cmSystemTools::Error("Could not open file for write in copy operation: ", tempOutputFile.c_str(), outdir); cmSystemTools::ReportLastSystemError(""); return; - } - std::ifstream fin(source); - if(!fin) - { + } + cmsys::ifstream fin(source); + if (!fin) { cmSystemTools::Error("Could not open file for read in copy operation", source); return; - } + } // now copy input to output and expand variables in the // input file at the same time std::string inLine; @@ -96,36 +82,25 @@ CopyAndFullPathMesaHeader(const char* source, cmsys::RegularExpression glDirLine("(gl|GL)(/|\\\\)([^<\"]+)"); // regular expression for gl GL or xmesa in a file (match(1) of above) cmsys::RegularExpression glLine("(gl|GL|xmesa)"); - while(cmSystemTools::GetLineFromStream(fin,inLine)) - { - if(includeLine.find(inLine.c_str())) - { + while (cmSystemTools::GetLineFromStream(fin, inLine)) { + if (includeLine.find(inLine.c_str())) { std::string includeFile = includeLine.match(1); - if(glDirLine.find(includeFile.c_str())) - { + if (glDirLine.find(includeFile.c_str())) { std::string gfile = glDirLine.match(3); - fout << "#include \"" << outdir << "/" << gfile.c_str() << "\"\n"; - } - else if(glLine.find(includeFile.c_str())) - { - fout << "#include \"" << outdir << "/" << - includeLine.match(1).c_str() << "\"\n"; - } - else - { + fout << "#include \"" << outdir << "/" << gfile << "\"\n"; + } else if (glLine.find(includeFile.c_str())) { + fout << "#include \"" << outdir << "/" << includeLine.match(1) + << "\"\n"; + } else { fout << inLine << "\n"; - } } - else - { + } else { fout << inLine << "\n"; - } } + } // close the files before attempting to copy fin.close(); fout.close(); - cmSystemTools::CopyFileIfDifferent(tempOutputFile.c_str(), - outFile.c_str()); - cmSystemTools::RemoveFile(tempOutputFile.c_str()); + cmSystemTools::CopyFileIfDifferent(tempOutputFile.c_str(), outFile.c_str()); + cmSystemTools::RemoveFile(tempOutputFile); } - |