+ projects.push_back(project);
+
+ for(vector<const VcxProjectFile *>::const_iterator i=projects.begin(); i!=projects.end(); ++i)
+ {
+ const SourcePackage *pkg = (*i)->get_package();
+ IO::print(out, "Project(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"%s\", \"%s\", \"{%s}\"\nEndProject\n",
+ pkg->get_name(), (*i)->get_path(), (*i)->get_guid());
+ }
+
+ vector<string> build_types = builder.get_build_types();
+ const char *platforms[] = { "x86", "x64", 0 };
+
+ IO::print(out, "Global\n");
+ IO::print(out, "\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\n");
+ for(vector<string>::const_iterator i=build_types.begin(); i!=build_types.end(); ++i)
+ for(const char **j=platforms; *j; ++j)
+ IO::print(out, "\t\t%s|%s = %s|%s\n", *i, *j, *i, *j);
+ IO::print(out, "\tEndGlobalSection\n");
+ IO::print(out, "\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\n");
+ for(vector<const VcxProjectFile *>::const_iterator i=projects.begin(); i!=projects.end(); ++i)
+ for(vector<string>::const_iterator j=build_types.begin(); j!=build_types.end(); ++j)
+ for(const char **k=platforms; *k; ++k)
+ {
+ const char *project_platform = (!strcmp(*k, "x86") ? "Win32" : *k);
+ IO::print(out, "\t\t{%s}.%s|%s.ActiveCfg = %s|%s\n", (*i)->get_guid(), *j, *k, *j, project_platform);
+ if(i==projects.begin())
+ IO::print(out, "\t\t{%s}.%s|%s.Build.0 = %s|%s\n", (*i)->get_guid(), *j, *k, *j, project_platform);
+ }
+ IO::print(out, "\tEndGlobalSection\n");
+ IO::print(out, "EndGlobal\n");