diff options
author | Ken Martin <ken.martin@kitware.com> | 2003-06-03 14:30:23 (GMT) |
---|---|---|
committer | Ken Martin <ken.martin@kitware.com> | 2003-06-03 14:30:23 (GMT) |
commit | ba68f771b369e65476e7ce12aa8dd1cf18d7f529 (patch) | |
tree | 4580bb0cd83663ac32e7234b47f1a03881a2b709 /Source/cmSourceGroup.cxx | |
parent | 4f55e4870d0dea6f700943ccd4bac958c478cff4 (diff) | |
download | CMake-ba68f771b369e65476e7ce12aa8dd1cf18d7f529.zip CMake-ba68f771b369e65476e7ce12aa8dd1cf18d7f529.tar.gz CMake-ba68f771b369e65476e7ce12aa8dd1cf18d7f529.tar.bz2 |
yikes added new custom command support
Diffstat (limited to 'Source/cmSourceGroup.cxx')
-rw-r--r-- | Source/cmSourceGroup.cxx | 98 |
1 files changed, 2 insertions, 96 deletions
diff --git a/Source/cmSourceGroup.cxx b/Source/cmSourceGroup.cxx index 081f299..8815e30 100644 --- a/Source/cmSourceGroup.cxx +++ b/Source/cmSourceGroup.cxx @@ -33,7 +33,7 @@ cmSourceGroup::cmSourceGroup(const char* name, const char* regex): cmSourceGroup::cmSourceGroup(const cmSourceGroup& r): m_Name(r.m_Name), m_GroupRegex(r.m_GroupRegex), - m_BuildRules(r.m_BuildRules) + m_SourceFiles(r.m_SourceFiles) { } @@ -52,100 +52,6 @@ bool cmSourceGroup::Matches(const char* name) */ void cmSourceGroup::AddSource(const char* name, const cmSourceFile* sf) { - BuildRules::iterator s = m_BuildRules.find(name); - if(s == m_BuildRules.end()) - { - SourceAndCommands sc; - sc.m_SourceFile = sf; - // The source was not found. Add it with no commands. - m_BuildRules[name] = sc; - return; - } + m_SourceFiles.push_back(sf); } - -/** - * Add a source and corresponding custom command to the group. If the - * source already exists, the command will be added to its set of commands. - * If the command also already exists, the given dependencies and outputs - * are added to it. - */ -void cmSourceGroup::AddCustomCommand(const cmCustomCommand &cmd) -{ - std::string commandAndArgs = cmd.GetCommandAndArguments(); - BuildRules::iterator s = m_BuildRules.find(cmd.GetSourceName()); - if(s == m_BuildRules.end()) - { - // The source was not found. Add it with this command. - CommandFiles& cmdFiles = - m_BuildRules[cmd.GetSourceName()].m_Commands[commandAndArgs]; - cmdFiles.m_Command = cmd.GetCommand(); - cmdFiles.m_Comment = cmd.GetComment(); - cmdFiles.m_Arguments = cmd.GetArguments(); - cmdFiles.m_Depends.insert(cmd.GetDepends().begin(),cmd.GetDepends().end()); - cmdFiles.m_Outputs.insert(cmd.GetOutputs().begin(),cmd.GetOutputs().end()); - return; - } - - // The source already exists. See if the command exists. - Commands& commands = s->second.m_Commands; - Commands::iterator c = commands.find(commandAndArgs); - if(c == commands.end()) - { - // The command did not exist. Add it. - commands[commandAndArgs].m_Command = cmd.GetCommand(); - commands[commandAndArgs].m_Comment = cmd.GetComment(); - commands[commandAndArgs].m_Arguments = cmd.GetArguments(); - commands[commandAndArgs].m_Depends.insert(cmd.GetDepends().begin(), - cmd.GetDepends().end()); - commands[commandAndArgs].m_Outputs.insert(cmd.GetOutputs().begin(), - cmd.GetOutputs().end()); - return; - } - - // The command already exists for this source. Merge the sets. - CommandFiles& commandFiles = c->second; - commandFiles.m_Depends.insert(cmd.GetDepends().begin(), - cmd.GetDepends().end()); - commandFiles.m_Outputs.insert(cmd.GetOutputs().begin(), - cmd.GetOutputs().end()); -} - -void cmSourceGroup::Print() const -{ - std::cout << "cmSourceGroup: " << m_Name.c_str() << "\n"; - for(BuildRules::const_iterator i = m_BuildRules.begin(); - i != m_BuildRules.end(); ++i) - { - std::cout << "BuildRule: " << i->first.c_str() << "\n"; - for(Commands::const_iterator j = i->second.m_Commands.begin(); - j != i->second.m_Commands.end(); ++j) - { - std::cout << "FullCommand: " << j->first.c_str() << "\n"; - std::cout << "Command: " << j->second.m_Command.c_str() << "\n"; - std::cout << "Arguments: " << j->second.m_Arguments.c_str() << "\n"; - std::cout << "Command Outputs " - << static_cast<int>(j->second.m_Outputs.size()) << "\n"; - std::cout << "Command Depends " - << static_cast<int>(j->second.m_Depends.size()) << "\n"; - } - } -} - - -void cmSourceGroup::CommandFiles::Merge(const CommandFiles &r) -{ - std::set<std::string>::const_iterator dep = r.m_Depends.begin(); - std::set<std::string>::const_iterator out = r.m_Outputs.begin(); - for (;dep != r.m_Depends.end(); ++dep) - { - this->m_Depends.insert(*dep); - } - for (;out != r.m_Outputs.end(); ++out) - { - this->m_Outputs.insert(*out); - } -} - - - |