|
@@ -477,8 +477,16 @@ void cmGlobalVisualStudio7Generator::WriteSLNFile(std::ostream& fout,
|
|
for(std::vector<std::string>::iterator si = dspnames.begin();
|
|
for(std::vector<std::string>::iterator si = dspnames.begin();
|
|
l != tgts.end() && si != dspnames.end(); ++l)
|
|
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->WriteProjectDepends(fout, si->c_str(), dir.c_str(),l->second);
|
|
this->WriteProjectDepends(fout, si->c_str(), dir.c_str(),l->second);
|
|
++si;
|
|
++si;
|
|
@@ -614,13 +622,33 @@ cmGlobalVisualStudio7Generator::WriteProjectConfigurations(std::ostream& fout,
|
|
void cmGlobalVisualStudio7Generator::WriteExternalProject(std::ostream& fout,
|
|
void cmGlobalVisualStudio7Generator::WriteExternalProject(std::ostream& fout,
|
|
const char* name,
|
|
const char* name,
|
|
const char* location,
|
|
const char* location,
|
|
- const std::vector<std::string>& )
|
|
|
|
|
|
+ const std::vector<std::string>& depends)
|
|
{
|
|
{
|
|
std::string d = cmSystemTools::ConvertToOutputPath(location);
|
|
std::string d = cmSystemTools::ConvertToOutputPath(location);
|
|
fout << "Project(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \""
|
|
fout << "Project(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \""
|
|
<< name << "\", \""
|
|
<< name << "\", \""
|
|
<< d << "\", \"{"
|
|
<< d << "\", \"{"
|
|
- << this->GetGUID(name) << "}\"\nEndProject\n";
|
|
|
|
|
|
+ << this->GetGUID(name)
|
|
|
|
+ << "}\"\n";
|
|
|
|
+
|
|
|
|
+ if(!depends.empty())
|
|
|
|
+ {
|
|
|
|
+ fout << "\tProjectSection(ProjectDependencies) = postProject\n";
|
|
|
|
+ std::vector<std::string>::const_iterator it;
|
|
|
|
+ for(it = depends.begin(); it != depends.end(); ++it)
|
|
|
|
+ {
|
|
|
|
+ if(it->size() > 0)
|
|
|
|
+ {
|
|
|
|
+ fout << "\t\t{"
|
|
|
|
+ << this->GetGUID(it->c_str())
|
|
|
|
+ << "} = {"
|
|
|
|
+ << this->GetGUID(it->c_str())
|
|
|
|
+ << "}\n";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ fout << "\tEndProjectSection\n";
|
|
|
|
+ }
|
|
|
|
+ fout << "EndProject\n";
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|