diff options
-rw-r--r-- | Source/cmSourceGroupCommand.cxx | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/Source/cmSourceGroupCommand.cxx b/Source/cmSourceGroupCommand.cxx index 621b564558..e8639464b1 100644 --- a/Source/cmSourceGroupCommand.cxx +++ b/Source/cmSourceGroupCommand.cxx @@ -24,7 +24,7 @@ bool cmSourceGroupCommand::InitialPass(std::vector<std::string> const& args) this->SetError("called with incorrect number of arguments"); return false; } - + // Get the source group with the given name. cmSourceGroup* sg = m_Makefile->GetSourceGroup(args[0].c_str()); if(!sg) @@ -33,6 +33,26 @@ bool cmSourceGroupCommand::InitialPass(std::vector<std::string> const& args) sg = m_Makefile->GetSourceGroup(args[0].c_str()); } + // If only two arguments are given, the pre-1.8 version of the + // command is being invoked. + if(args.size() == 2 && args[1] != "FILES") + { + const char* versionValue = + m_Makefile->GetDefinition("CMAKE_BACKWARDS_COMPATIBILITY"); + if(atof(versionValue) > 1.6) + { + this->SetError("no longer accepts a two-argument form. Use the " + "REGULAR_EXPRESSION argument form instead, or set " + "CMAKE_BACKWARDS_COMPATIBILITY to 1.6 or less.\n"); + return false; + } + else + { + sg->SetGroupRegex(args[1].c_str()); + return true; + } + } + // Process arguments. bool doingFiles = false; for(unsigned int i=1; i < args.size(); ++i) |