MCPcopy Create free account
hub / github.com/Kitware/CMake / WriteSln

Function WriteSln

Source/cmVSSolution.cxx:276–311  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

274}
275
276void WriteSln(std::ostream& sln, Solution const& solution)
277{
278 assert(solution.VSVersion);
279 assert(solution.VSExpress);
280
281 std::vector<Solution::Project const*> projects = solution.GetAllProjects();
282 std::sort(projects.begin(), projects.end(),
283 [&solution](Solution::Project const* l,
284 Solution::Project const* r) -> bool {
285 if (r->Name == solution.StartupProject) {
286 return false;
287 }
288 if (l->Name == solution.StartupProject) {
289 return true;
290 }
291 return l->Name < r->Name;
292 });
293
294 WriteSlnHeader(sln, *solution.VSVersion, *solution.VSExpress);
295 for (Solution::Folder const* folder : solution.Folders) {
296 WriteSlnFolder(sln, *folder);
297 }
298 for (Solution::Project const* project : projects) {
299 WriteSlnProject(sln, *project);
300 }
301 sln << "Global\n";
302 WriteSlnSolutionConfigurationPlatforms(sln, solution);
303 WriteSlnProjectConfigurationPlatforms(sln, solution, projects);
304 if (!solution.Folders.empty()) {
305 WriteSlnNestedProjects(sln, solution.Folders);
306 }
307 for (Solution::PropertyGroup const* pg : solution.PropertyGroups) {
308 WriteSlnPropertyGroup(sln, *pg);
309 }
310 sln << "EndGlobal\n";
311}
312
313namespace {
314

Callers 1

GenerateSolutionMethod · 0.85

Calls 11

WriteSlnHeaderFunction · 0.85
WriteSlnFolderFunction · 0.85
WriteSlnProjectFunction · 0.85
WriteSlnNestedProjectsFunction · 0.85
WriteSlnPropertyGroupFunction · 0.85
GetAllProjectsMethod · 0.80
beginMethod · 0.45
endMethod · 0.45
emptyMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…