diff options
author | Andy Cedilnik <andy.cedilnik@kitware.com> | 2002-10-04 22:16:13 (GMT) |
---|---|---|
committer | Andy Cedilnik <andy.cedilnik@kitware.com> | 2002-10-04 22:16:13 (GMT) |
commit | a518fed4e35bc7c630be548c62f756121dba0b8b (patch) | |
tree | 4dc7659acd9a658510d6d511f6a30eccb203830f /Source/cmSourceGroupCommand.cxx | |
parent | 77616437d1f348bf20c7714c156fd23f19323d4b (diff) | |
download | CMake-a518fed4e35bc7c630be548c62f756121dba0b8b.zip CMake-a518fed4e35bc7c630be548c62f756121dba0b8b.tar.gz CMake-a518fed4e35bc7c630be548c62f756121dba0b8b.tar.bz2 |
Try to improve source group interface
Diffstat (limited to 'Source/cmSourceGroupCommand.cxx')
-rw-r--r-- | Source/cmSourceGroupCommand.cxx | 36 |
1 files changed, 32 insertions, 4 deletions
diff --git a/Source/cmSourceGroupCommand.cxx b/Source/cmSourceGroupCommand.cxx index 17bf434..d62fd77 100644 --- a/Source/cmSourceGroupCommand.cxx +++ b/Source/cmSourceGroupCommand.cxx @@ -19,14 +19,42 @@ // cmSourceGroupCommand bool cmSourceGroupCommand::InitialPass(std::vector<std::string> const& args) { - if(args.size() != 2) + if(args.size() < 1) { this->SetError("called with incorrect number of arguments"); return false; - } + } - m_Makefile->AddSourceGroup(args[0].c_str(), args[1].c_str()); + if ( args[1] == "REGULAR_EXPRESSION" && args.size() == 3 ) + { + m_Makefile->AddSourceGroup(args[0].c_str(), args[2].c_str()); + return true; + } + + if ( args[1] == "FILES" ) + { + cmSourceGroup* sg = m_Makefile->GetSourceGroup(args[0].c_str()); + if ( !sg ) + { + m_Makefile->AddSourceGroup(args[0].c_str(), 0); + sg = m_Makefile->GetSourceGroup(args[0].c_str()); + } + unsigned int cc; + for ( cc = 3; cc < args.size(); cc ++ ) + { + sg->AddSource(args[cc].c_str(), 0); + } + + return true; + } - return true; + if ( args.size() == 2 ) + { + m_Makefile->AddSourceGroup(args[0].c_str(), args[1].c_str()); + return true; + } + + this->SetError("called with incorrect number of arguments"); + return false; } |