diff options
Diffstat (limited to 'Source/cmSourceFilesRequireCommand.cxx')
-rw-r--r-- | Source/cmSourceFilesRequireCommand.cxx | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/Source/cmSourceFilesRequireCommand.cxx b/Source/cmSourceFilesRequireCommand.cxx new file mode 100644 index 0000000000..a489689898 --- /dev/null +++ b/Source/cmSourceFilesRequireCommand.cxx @@ -0,0 +1,54 @@ +/*========================================================================= + + Program: Insight Segmentation & Registration Toolkit + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + + Copyright (c) 2000 National Library of Medicine + All rights reserved. + + See COPYRIGHT.txt for copyright details. + +=========================================================================*/ +#include "cmSourceFilesRequireCommand.h" + +// cmSourceFilesRequireCommand +bool cmSourceFilesRequireCommand::Invoke(std::vector<std::string>& args) +{ + if(args.size() < 3 ) + { + this->SetError("called with incorrect number of arguments"); + return false; + } + std::vector<std::string>::iterator i = args.begin(); + // Search to the key word SOURCES_BEGIN is found + // if one of the required defines is not there, then + // return as none of the source files will be added + // if the required definition is not there. + while(i != args.end() && (*i) != "SOURCES_BEGIN" ) + { + if(!m_Makefile->GetDefinition((*i).c_str())) + { + return true; + } + i++; + } + if(i != args.end()) + { + i++; + } + + // Add the rest of the arguments as source files + for(; i != args.end(); ++i) + { + cmClassFile file; + file.m_AbstractClass = false; + file.SetName((*i).c_str(), m_Makefile->GetCurrentDirectory()); + m_Makefile->AddClass(file); + } + return true; +} + |