summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Source/cmSourceGroupCommand.cxx22
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)