| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 | 
							- /*============================================================================
 
-   CMake - Cross Platform Makefile Generator
 
-   Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
 
-   Distributed under the OSI-approved BSD License (the "License");
 
-   see accompanying file Copyright.txt for details.
 
-   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 "cmConfigureFileCommand.h"
 
- #include <cmsys/RegularExpression.hxx>
 
- // cmConfigureFileCommand
 
- bool cmConfigureFileCommand
 
- ::InitialPass(std::vector<std::string> const& args, cmExecutionStatus &)
 
- {
 
-   if(args.size() < 2 )
 
-     {
 
-     this->SetError("called with incorrect number of arguments, expected 2");
 
-     return false;
 
-     }
 
-   const char* inFile = args[0].c_str();
 
-   if(!cmSystemTools::FileIsFullPath(inFile))
 
-     {
 
-     this->InputFile = this->Makefile->GetCurrentSourceDirectory();
 
-     this->InputFile += "/";
 
-     }
 
-   this->InputFile += inFile;
 
-   // If the input location is a directory, error out.
 
-   if(cmSystemTools::FileIsDirectory(this->InputFile))
 
-     {
 
-     std::ostringstream e;
 
-     e << "input location\n"
 
-       << "  " << this->InputFile << "\n"
 
-       << "is a directory but a file was expected.";
 
-     this->SetError(e.str());
 
-     return false;
 
-     }
 
-   const char* outFile = args[1].c_str();
 
-   if(!cmSystemTools::FileIsFullPath(outFile))
 
-     {
 
-     this->OutputFile = this->Makefile->GetCurrentOutputDirectory();
 
-     this->OutputFile += "/";
 
-     }
 
-   this->OutputFile += outFile;
 
-   // If the output location is already a directory put the file in it.
 
-   if(cmSystemTools::FileIsDirectory(this->OutputFile))
 
-     {
 
-     this->OutputFile += "/";
 
-     this->OutputFile += cmSystemTools::GetFilenameName(inFile);
 
-     }
 
-   if ( !this->Makefile->CanIWriteThisFile(this->OutputFile.c_str()) )
 
-     {
 
-     std::string e = "attempted to configure a file: " + this->OutputFile
 
-       + " into a source directory.";
 
-     this->SetError(e);
 
-     cmSystemTools::SetFatalErrorOccured();
 
-     return false;
 
-     }
 
-   std::string errorMessage;
 
-   if (!this->NewLineStyle.ReadFromArguments(args, errorMessage))
 
-     {
 
-     this->SetError(errorMessage);
 
-     return false;
 
-     }
 
-   this->CopyOnly = false;
 
-   this->EscapeQuotes = false;
 
-   std::string unknown_args;
 
-   this->AtOnly = false;
 
-   for(unsigned int i=2;i < args.size();++i)
 
-     {
 
-     if(args[i] == "COPYONLY")
 
-       {
 
-       this->CopyOnly = true;
 
-       if (this->NewLineStyle.IsValid())
 
-         {
 
-         this->SetError("COPYONLY could not be used in combination "
 
-                        "with NEWLINE_STYLE");
 
-         return false;
 
-         }
 
-       }
 
-     else if(args[i] == "ESCAPE_QUOTES")
 
-       {
 
-       this->EscapeQuotes = true;
 
-       }
 
-     else if(args[i] == "@ONLY")
 
-       {
 
-       this->AtOnly = true;
 
-       }
 
-     else if(args[i] == "IMMEDIATE")
 
-       {
 
-       /* Ignore legacy option.  */
 
-       }
 
-     else if(args[i] == "NEWLINE_STYLE" ||
 
-             args[i] == "LF" || args[i] == "UNIX" ||
 
-             args[i] == "CRLF" || args[i] == "WIN32" ||
 
-             args[i] == "DOS")
 
-       {
 
-       /* Options handled by NewLineStyle member above.  */
 
-       }
 
-     else
 
-       {
 
-       unknown_args += " ";
 
-       unknown_args += args[i];
 
-       unknown_args += "\n";
 
-       }
 
-     }
 
-   if (!unknown_args.empty())
 
-     {
 
-     std::string msg = "configure_file called with unknown argument(s):\n";
 
-     msg += unknown_args;
 
-     this->Makefile->IssueMessage(cmake::AUTHOR_WARNING, msg);
 
-     }
 
-   if ( !this->ConfigureFile() )
 
-     {
 
-     this->SetError("Problem configuring file");
 
-     return false;
 
-     }
 
-   return true;
 
- }
 
- int cmConfigureFileCommand::ConfigureFile()
 
- {
 
-   return this->Makefile->ConfigureFile(
 
-     this->InputFile.c_str(),
 
-     this->OutputFile.c_str(),
 
-     this->CopyOnly,
 
-     this->AtOnly,
 
-     this->EscapeQuotes,
 
-     this->NewLineStyle);
 
- }
 
 
  |