summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalVisualStudio9Generator.cxx
diff options
context:
space:
mode:
authorDavid Cole <david.cole@kitware.com>2007-11-16 12:01:58 (GMT)
committerDavid Cole <david.cole@kitware.com>2007-11-16 12:01:58 (GMT)
commit867de7fc670ffd67c9cb8dcffae42f87de7023ed (patch)
treefebaeb64e474158b5289f31853b20cdcb396fe43 /Source/cmGlobalVisualStudio9Generator.cxx
parent0a001f1567dff13bb3441728b313b9fa7b2b1b11 (diff)
downloadCMake-867de7fc670ffd67c9cb8dcffae42f87de7023ed.zip
CMake-867de7fc670ffd67c9cb8dcffae42f87de7023ed.tar.gz
CMake-867de7fc670ffd67c9cb8dcffae42f87de7023ed.tar.bz2
ENH: Add ability to call Visual Studio macros from CMake. Add a CMake Visual Studio macro to reload a solution file automatically if CMake makes changes to .sln files or .vcproj files. Add code to call the macro automatically for any running Visual Studio instances with the .sln file open at the end of the Visual Studio Generate call. Only call the macro if some .sln or .vcproj file changed during Generate. Also, add handling for REG_EXPAND_SZ type to SystemTools::ReadRegistryValue - returned string has environment variable references expanded.
Diffstat (limited to 'Source/cmGlobalVisualStudio9Generator.cxx')
-rw-r--r--Source/cmGlobalVisualStudio9Generator.cxx27
1 files changed, 27 insertions, 0 deletions
diff --git a/Source/cmGlobalVisualStudio9Generator.cxx b/Source/cmGlobalVisualStudio9Generator.cxx
index c0d31e6..06d959b 100644
--- a/Source/cmGlobalVisualStudio9Generator.cxx
+++ b/Source/cmGlobalVisualStudio9Generator.cxx
@@ -53,9 +53,36 @@ void cmGlobalVisualStudio9Generator
entry.Full = "";
}
+//----------------------------------------------------------------------------
void cmGlobalVisualStudio9Generator
::EnableLanguage(std::vector<std::string>const & lang,
cmMakefile *mf, bool optional)
{
cmGlobalVisualStudio8Generator::EnableLanguage(lang, mf, optional);
}
+
+//----------------------------------------------------------------------------
+std::string cmGlobalVisualStudio9Generator::GetUserMacrosDirectory()
+{
+ std::string base;
+ std::string path;
+
+ // base begins with the VisualStudioProjectsLocation reg value...
+ if (cmSystemTools::ReadRegistryValue(
+ "HKEY_CURRENT_USER\\Software\\Microsoft\\VisualStudio\\9.0;VisualStudioProjectsLocation",
+ base))
+ {
+ cmSystemTools::ConvertToUnixSlashes(base);
+
+ // 9.0 macros folder:
+ path = base + "/VSMacros80";
+ // *NOT* a typo; right now in Visual Studio 2008 beta the macros
+ // folder is VSMacros80... They may change it to 90 before final
+ // release of 2008 or they may not... we'll have to keep our eyes
+ // on it
+ }
+
+ // path is (correctly) still empty if we did not read the base value from
+ // the Registry value
+ return path;
+}