diff options
| author | Brad King <brad.king@kitware.com> | 2009-01-03 15:47:58 -0500 |
|---|---|---|
| committer | Brad King <brad.king@kitware.com> | 2009-01-03 15:47:58 -0500 |
| commit | cd7585df22070bb8367c6486086f933c10f4a1ec (patch) | |
| tree | ca8b807e73fa1150219c2d8b4d49847bf200f1ba /Source/cmCMakeMinimumRequired.cxx | |
| parent | ee1d1b2c68ed5bdb719c2bb400a9069081e6b64d (diff) | |
| download | cmake-cd7585df22070bb8367c6486086f933c10f4a1ec.tar.gz | |
ENH: Ignore unknown cmake_minimum_required args
When cmake_minimum_required is called with an unknown argument it should
not complain about it if the version specified is in the future. This
allows the proper error to be shown about the current CMake being too
old.
Diffstat (limited to 'Source/cmCMakeMinimumRequired.cxx')
| -rw-r--r-- | Source/cmCMakeMinimumRequired.cxx | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/Source/cmCMakeMinimumRequired.cxx b/Source/cmCMakeMinimumRequired.cxx index f04600e06d..49860c5973 100644 --- a/Source/cmCMakeMinimumRequired.cxx +++ b/Source/cmCMakeMinimumRequired.cxx @@ -47,10 +47,7 @@ bool cmCMakeMinimumRequired } else { - cmOStringStream e; - e << "called with unknown argument \"" << args[i].c_str() << "\"."; - this->SetError(e.str().c_str()); - return false; + this->UnknownArguments.push_back(args[i]); } } if(doing_version) @@ -62,7 +59,7 @@ bool cmCMakeMinimumRequired // Make sure there was a version to check. if(version_string.empty()) { - return true; + return this->EnforceUnknownArguments(); } // Save the required version string. @@ -107,6 +104,12 @@ bool cmCMakeMinimumRequired return true; } + // The version is not from the future, so enforce unknown arguments. + if(!this->EnforceUnknownArguments()) + { + return false; + } + if (required_major < 2 || required_major == 2 && required_minor < 4) { this->Makefile->SetPolicyVersion("2.4"); @@ -119,3 +122,16 @@ bool cmCMakeMinimumRequired return true; } +//---------------------------------------------------------------------------- +bool cmCMakeMinimumRequired::EnforceUnknownArguments() +{ + if(!this->UnknownArguments.empty()) + { + cmOStringStream e; + e << "called with unknown argument \"" + << this->UnknownArguments[0] << "\"."; + this->SetError(e.str().c_str()); + return false; + } + return true; +} |
