summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/cmMakefile.cxx19
1 files changed, 17 insertions, 2 deletions
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 64163de..0b3c43e 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -41,7 +41,8 @@
#include <ctype.h> // for isspace
#include <assert.h>
-#define FOR_EACH_CXX_FEATURE(F)
+#define FOR_EACH_CXX_FEATURE(F) \
+ F(cxx_auto_type)
class cmMakefile::Internals
{
@@ -2453,6 +2454,12 @@ const char* cmMakefile::GetDefinition(const std::string& name) const
{
this->Internal->VarUsageStack.top().insert(name);
}
+ if (name == "CMAKE_CXX_KNOWN_FEATURES")
+ {
+#define STRING_LIST_ELEMENT(F) ";" #F
+ return FOR_EACH_CXX_FEATURE(STRING_LIST_ELEMENT) + 1;
+#undef STRING_LIST_ELEMENT
+ }
const char* def = this->Internal->VarStack.top().Get(name);
if(!def)
{
@@ -4520,7 +4527,15 @@ AddRequiredTargetFeature(cmTarget *target, const std::string& feature,
if (!isCxxFeature)
{
cmOStringStream e;
- e << "specified unknown feature \"" << feature << "\" specified for "
+ if (error)
+ {
+ e << "specified";
+ }
+ else
+ {
+ e << "Specified";
+ }
+ e << " unknown feature \"" << feature << "\" for "
"target \"" << target->GetName() << "\".";
if (error)
{