diff options
author | David Cole <david.cole@kitware.com> | 2011-08-02 19:10:09 (GMT) |
---|---|---|
committer | CMake Topic Stage <kwrobot@kitware.com> | 2011-08-02 19:10:09 (GMT) |
commit | 86bae62bd1a3369a1487887392d22be39530a2bd (patch) | |
tree | c0ccfa5dc65b9055424af3121bc0168293054fbe /Source | |
parent | 7ef2f53d02869c397ca1555781c3661a7519a9dc (diff) | |
parent | df9577259ca5a30f5c79baee038fe42e25b4a1e5 (diff) | |
download | CMake-86bae62bd1a3369a1487887392d22be39530a2bd.zip CMake-86bae62bd1a3369a1487887392d22be39530a2bd.tar.gz CMake-86bae62bd1a3369a1487887392d22be39530a2bd.tar.bz2 |
Merge topic 'fix-8707-add-vs-globals'
df95772 Add support for Visual Studio project-specific globals (#8707)
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmLocalVisualStudio7Generator.cxx | 26 | ||||
-rw-r--r-- | Source/cmLocalVisualStudio7Generator.h | 2 | ||||
-rw-r--r-- | Source/cmSetTargetPropertiesCommand.h | 4 | ||||
-rw-r--r-- | Source/cmTarget.cxx | 8 |
4 files changed, 35 insertions, 5 deletions
diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx index 7a62b9c..3e76f59 100644 --- a/Source/cmLocalVisualStudio7Generator.cxx +++ b/Source/cmLocalVisualStudio7Generator.cxx @@ -1279,7 +1279,7 @@ void cmLocalVisualStudio7Generator::WriteVCProjFile(std::ostream& fout, fout << "\t</Files>\n"; // Write the VCProj file's footer. - this->WriteVCProjFooter(fout); + this->WriteVCProjFooter(fout, target); } struct cmLVS7GFileConfig @@ -1880,10 +1880,28 @@ cmLocalVisualStudio7Generator::WriteProjectStart(std::ostream& fout, } -void cmLocalVisualStudio7Generator::WriteVCProjFooter(std::ostream& fout) +void cmLocalVisualStudio7Generator::WriteVCProjFooter(std::ostream& fout, + cmTarget &target) { - fout << "\t<Globals>\n" - << "\t</Globals>\n" + fout << "\t<Globals>\n"; + + cmPropertyMap const& props = target.GetProperties(); + for(cmPropertyMap::const_iterator i = props.begin(); i != props.end(); ++i) + { + if(i->first.find("VS_GLOBAL_") == 0) + { + std::string name = i->first.substr(10); + if(name != "") + { + fout << "\t\t<Global\n" + << "\t\t\tName=\"" << name << "\"\n" + << "\t\t\tValue=\"" << i->second.GetValue() << "\"\n" + << "\t\t/>\n"; + } + } + } + + fout << "\t</Globals>\n" << "</VisualStudioProject>\n"; } diff --git a/Source/cmLocalVisualStudio7Generator.h b/Source/cmLocalVisualStudio7Generator.h index 160e2d4..4fdbc58 100644 --- a/Source/cmLocalVisualStudio7Generator.h +++ b/Source/cmLocalVisualStudio7Generator.h @@ -84,7 +84,7 @@ private: void WriteProjectFiles(); void WriteVCProjHeader(std::ostream& fout, const char *libName, cmTarget &tgt, std::vector<cmSourceGroup> &sgs); - void WriteVCProjFooter(std::ostream& fout); + void WriteVCProjFooter(std::ostream& fout, cmTarget &target); void CreateSingleVCProj(const char *lname, cmTarget &tgt); void WriteVCProjFile(std::ostream& fout, const char *libName, cmTarget &tgt); diff --git a/Source/cmSetTargetPropertiesCommand.h b/Source/cmSetTargetPropertiesCommand.h index 9e39401..feead00 100644 --- a/Source/cmSetTargetPropertiesCommand.h +++ b/Source/cmSetTargetPropertiesCommand.h @@ -143,6 +143,10 @@ public: "VS_SCC_PROJECTNAME, VS_SCC_LOCALPATH, VS_SCC_PROVIDER can be set " "to add support for source control bindings in a Visual Studio " "project file.\n" + "VS_GLOBAL_<variable> can be set to add a Visual Studio " + "project-specific global variable. " + "Qt integration works better if VS_GLOBAL_QtVersion is set to " + "the Qt version FindQt4.cmake found. For example, \"4.7.3\"\n" "The PRE_INSTALL_SCRIPT and POST_INSTALL_SCRIPT properties are the " "old way to specify CMake scripts to run before and after " "installing a target. They are used only when the old " diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index e10ba4a..17a26cc 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -960,6 +960,14 @@ void cmTarget::DefineProperties(cmake *cm) "Visual Studio Source Code Control Project.", "Can be set to change the visual studio source code control " "project name property."); + cm->DefineProperty + ("VS_GLOBAL_<variable>", cmProperty::TARGET, + "Visual Studio project-specific global variable.", + "Tell the Visual Studio generator to set the global variable " + "'<variable>' to a given value in the generated Visual Studio " + "project. Ignored on other generators. Qt integration works " + "better if VS_GLOBAL_QtVersion is set to the version " + "FindQt4.cmake found. For example, \"4.7.3\""); #if 0 cm->DefineProperty |