| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- /*============================================================================
- 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 "cmCustomCommand.h"
- #include "cmMakefile.h"
- #include <cmsys/auto_ptr.hxx>
- //----------------------------------------------------------------------------
- cmCustomCommand::cmCustomCommand()
- : Backtrace(NULL)
- {
- this->HaveComment = false;
- this->EscapeOldStyle = true;
- this->EscapeAllowMakeVars = false;
- }
- //----------------------------------------------------------------------------
- cmCustomCommand::cmCustomCommand(const cmCustomCommand& r):
- Outputs(r.Outputs),
- Depends(r.Depends),
- CommandLines(r.CommandLines),
- HaveComment(r.HaveComment),
- Comment(r.Comment),
- WorkingDirectory(r.WorkingDirectory),
- EscapeAllowMakeVars(r.EscapeAllowMakeVars),
- EscapeOldStyle(r.EscapeOldStyle),
- Backtrace(r.Backtrace)
- {
- }
- //----------------------------------------------------------------------------
- cmCustomCommand& cmCustomCommand::operator=(cmCustomCommand const& r)
- {
- if(this == &r)
- {
- return *this;
- }
- this->Outputs = r.Outputs;
- this->Depends = r.Depends;
- this->CommandLines = r.CommandLines;
- this->HaveComment = r.HaveComment;
- this->Comment = r.Comment;
- this->WorkingDirectory = r.WorkingDirectory;
- this->EscapeAllowMakeVars = r.EscapeAllowMakeVars;
- this->EscapeOldStyle = r.EscapeOldStyle;
- this->ImplicitDepends = r.ImplicitDepends;
- this->Backtrace = r.Backtrace;
- return *this;
- }
- //----------------------------------------------------------------------------
- cmCustomCommand::cmCustomCommand(cmMakefile const* mf,
- const std::vector<std::string>& outputs,
- const std::vector<std::string>& depends,
- const cmCustomCommandLines& commandLines,
- const char* comment,
- const char* workingDirectory):
- Outputs(outputs),
- Depends(depends),
- CommandLines(commandLines),
- HaveComment(comment?true:false),
- Comment(comment?comment:""),
- WorkingDirectory(workingDirectory?workingDirectory:""),
- EscapeAllowMakeVars(false),
- EscapeOldStyle(true),
- Backtrace(NULL)
- {
- this->EscapeOldStyle = true;
- this->EscapeAllowMakeVars = false;
- if(mf)
- {
- this->Backtrace = mf->GetBacktrace();
- }
- }
- //----------------------------------------------------------------------------
- cmCustomCommand::~cmCustomCommand()
- {
- }
- //----------------------------------------------------------------------------
- const std::vector<std::string>& cmCustomCommand::GetOutputs() const
- {
- return this->Outputs;
- }
- //----------------------------------------------------------------------------
- const std::vector<std::string>& cmCustomCommand::GetDepends() const
- {
- return this->Depends;
- }
- //----------------------------------------------------------------------------
- const cmCustomCommandLines& cmCustomCommand::GetCommandLines() const
- {
- return this->CommandLines;
- }
- //----------------------------------------------------------------------------
- const char* cmCustomCommand::GetComment() const
- {
- const char* no_comment = 0;
- return this->HaveComment? this->Comment.c_str() : no_comment;
- }
- //----------------------------------------------------------------------------
- void cmCustomCommand::AppendCommands(const cmCustomCommandLines& commandLines)
- {
- for(cmCustomCommandLines::const_iterator i=commandLines.begin();
- i != commandLines.end(); ++i)
- {
- this->CommandLines.push_back(*i);
- }
- }
- //----------------------------------------------------------------------------
- void cmCustomCommand::AppendDepends(const std::vector<std::string>& depends)
- {
- for(std::vector<std::string>::const_iterator i=depends.begin();
- i != depends.end(); ++i)
- {
- this->Depends.push_back(*i);
- }
- }
- //----------------------------------------------------------------------------
- bool cmCustomCommand::GetEscapeOldStyle() const
- {
- return this->EscapeOldStyle;
- }
- //----------------------------------------------------------------------------
- void cmCustomCommand::SetEscapeOldStyle(bool b)
- {
- this->EscapeOldStyle = b;
- }
- //----------------------------------------------------------------------------
- bool cmCustomCommand::GetEscapeAllowMakeVars() const
- {
- return this->EscapeAllowMakeVars;
- }
- //----------------------------------------------------------------------------
- void cmCustomCommand::SetEscapeAllowMakeVars(bool b)
- {
- this->EscapeAllowMakeVars = b;
- }
- //----------------------------------------------------------------------------
- cmListFileBacktrace const& cmCustomCommand::GetBacktrace() const
- {
- return this->Backtrace;
- }
- //----------------------------------------------------------------------------
- cmCustomCommand::ImplicitDependsList const&
- cmCustomCommand::GetImplicitDepends() const
- {
- return this->ImplicitDepends;
- }
- //----------------------------------------------------------------------------
- void cmCustomCommand::SetImplicitDepends(ImplicitDependsList const& l)
- {
- this->ImplicitDepends = l;
- }
- //----------------------------------------------------------------------------
- void cmCustomCommand::AppendImplicitDepends(ImplicitDependsList const& l)
- {
- this->ImplicitDepends.insert(this->ImplicitDepends.end(),
- l.begin(), l.end());
- }
|