diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2004-09-14 18:05:40 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2004-09-14 18:05:40 (GMT) |
commit | 32fe8caaefba6d0ec8ea183ec87cedad29a660c0 (patch) | |
tree | 6f5f7d23badfe43db3d4870ea0ccf611d989f77d /Source/cmGlobalVisualStudio71Generator.cxx | |
parent | c30e7771ee3678adad173903458d71972d77c1e7 (diff) | |
download | CMake-32fe8caaefba6d0ec8ea183ec87cedad29a660c0.zip CMake-32fe8caaefba6d0ec8ea183ec87cedad29a660c0.tar.gz CMake-32fe8caaefba6d0ec8ea183ec87cedad29a660c0.tar.bz2 |
bug fixes for external projects
Diffstat (limited to 'Source/cmGlobalVisualStudio71Generator.cxx')
-rw-r--r-- | Source/cmGlobalVisualStudio71Generator.cxx | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/Source/cmGlobalVisualStudio71Generator.cxx b/Source/cmGlobalVisualStudio71Generator.cxx index a65fc67..6867519 100644 --- a/Source/cmGlobalVisualStudio71Generator.cxx +++ b/Source/cmGlobalVisualStudio71Generator.cxx @@ -204,8 +204,16 @@ void cmGlobalVisualStudio71Generator::WriteSLNFile(std::ostream& fout, for(std::vector<std::string>::iterator si = dspnames.begin(); l != tgts.end() && si != dspnames.end(); ++l) { - if ((l->second.GetType() != cmTarget::INSTALL_FILES) - && (l->second.GetType() != cmTarget::INSTALL_PROGRAMS)) + if (strncmp(l->first.c_str(), "INCLUDE_EXTERNAL_MSPROJECT", 26) == 0) + { + cmCustomCommand cc = l->second.GetPostBuildCommands()[0]; + // dodgy use of the cmCustomCommand's members to store the + // arguments from the INCLUDE_EXTERNAL_MSPROJECT command + std::vector<std::string> stuff = cc.GetDepends(); + this->WriteProjectConfigurations(fout, stuff[0].c_str(), l->second.IsInAll()); + } + else if ((l->second.GetType() != cmTarget::INSTALL_FILES) + && (l->second.GetType() != cmTarget::INSTALL_PROGRAMS)) { this->WriteProjectConfigurations(fout, si->c_str(), l->second.IsInAll()); ++si; @@ -281,8 +289,11 @@ void cmGlobalVisualStudio71Generator::WriteProjectDepends(std::ostream& fout, { if(*i != dspname) { - fout << "\t\t{" << this->GetGUID(i->c_str()) << "} = {" - << this->GetGUID(i->c_str()) << "}\n"; + std::string name = i->c_str(); + if(strncmp(name.c_str(), "INCLUDE_EXTERNAL_MSPROJECT", 26) == 0) + name.erase(name.begin(), name.begin() + 27); + fout << "\t\t{" << this->GetGUID(name.c_str()) << "} = {" + << this->GetGUID(name.c_str()) << "}\n"; } } } |