summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2013-06-03 13:57:32 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2013-06-03 13:57:32 (GMT)
commit90441b289da6e7bd9f50a970d7adefc7b6be749f (patch)
tree9bc76c283b8a3c5dc09257ee5952b615181a75a1
parentdb5f5243b5079ebfeb06dea9c82e1cd1537a325b (diff)
parentcca955a27cf3fc8344ee3dce213472b61e1edef7 (diff)
downloadCMake-90441b289da6e7bd9f50a970d7adefc7b6be749f.zip
CMake-90441b289da6e7bd9f50a970d7adefc7b6be749f.tar.gz
CMake-90441b289da6e7bd9f50a970d7adefc7b6be749f.tar.bz2
Merge topic 'vs-RootNamespace'
cca955a VS: Add VS_GLOBAL_ROOTNAMESPACE target property
-rw-r--r--Source/cmTarget.cxx5
-rw-r--r--Source/cmVisualStudio10TargetGenerator.cxx9
2 files changed, 14 insertions, 0 deletions
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 71edf88..5628971 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -1337,6 +1337,11 @@ void cmTarget::DefineProperties(cmake *cm)
"this value with \"ManagedCProj\", for example, in a Visual "
"Studio managed C++ unit test project.");
cm->DefineProperty
+ ("VS_GLOBAL_ROOTNAMESPACE", cmProperty::TARGET,
+ "Visual Studio project root namespace.",
+ "Sets the \"RootNamespace\" attribute for a generated Visual Studio "
+ "project. The attribute will be generated only if this is set.");
+ cm->DefineProperty
("VS_DOTNET_REFERENCES", cmProperty::TARGET,
"Visual Studio managed project .NET references",
"Adds one or more semicolon-delimited .NET references to a "
diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx
index 88c4deb..d0ab976 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -262,6 +262,15 @@ void cmVisualStudio10TargetGenerator::Generate()
"</Keyword>\n";
}
+ const char* vsGlobalRootNamespace =
+ this->Target->GetProperty("VS_GLOBAL_ROOTNAMESPACE");
+ if(vsGlobalRootNamespace)
+ {
+ this->WriteString("<RootNamespace>", 2);
+ (*this->BuildFileStream) << cmVS10EscapeXML(vsGlobalRootNamespace) <<
+ "</RootNamespace>\n";
+ }
+
this->WriteString("<Platform>", 2);
(*this->BuildFileStream) << this->Platform << "</Platform>\n";
const char* projLabel = this->Target->GetProperty("PROJECT_LABEL");