diff options
| author | Brad King <brad.king@kitware.com> | 2016-03-24 12:49:41 (GMT) |
|---|---|---|
| committer | CMake Topic Stage <kwrobot@kitware.com> | 2016-03-24 12:49:41 (GMT) |
| commit | 5b2acf6c1c904df96bd0031c9469e61118da5200 (patch) | |
| tree | af7a870a3b4490f521d5d8c87a182d8f63930698 /Source/cmGlobalVisualStudioGenerator.cxx | |
| parent | 59f53f7422818f3ccad8518ab0863de6bb7fd293 (diff) | |
| parent | ad140c6e1bb6eda5d17a199304578dbd92bedbad (diff) | |
| download | CMake-5b2acf6c1c904df96bd0031c9469e61118da5200.zip CMake-5b2acf6c1c904df96bd0031c9469e61118da5200.tar.gz CMake-5b2acf6c1c904df96bd0031c9469e61118da5200.tar.bz2 | |
Merge topic 'vs-startup-project'
ad140c6e VS: Put ALL_BUILD in the PREDEFINED_TARGETS_FOLDER
f069be05 VS: Fix default target support for targets nested inside a folder
c05ea485 VS: Improve unit test macros
78ec0461 VS: Add option to choose the `.sln` startup project (#15578)
Diffstat (limited to 'Source/cmGlobalVisualStudioGenerator.cxx')
| -rw-r--r-- | Source/cmGlobalVisualStudioGenerator.cxx | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/Source/cmGlobalVisualStudioGenerator.cxx b/Source/cmGlobalVisualStudioGenerator.cxx index 00bb511..04146fb 100644 --- a/Source/cmGlobalVisualStudioGenerator.cxx +++ b/Source/cmGlobalVisualStudioGenerator.cxx @@ -89,19 +89,13 @@ void cmGlobalVisualStudioGenerator::AddExtraIDETargets() cmGeneratorTarget* gt = new cmGeneratorTarget(allBuild, gen[0]); gen[0]->AddGeneratorTarget(gt); -#if 0 - // Can't activate this code because we want ALL_BUILD - // selected as the default "startup project" when first - // opened in Visual Studio... And if it's nested in a - // folder, then that doesn't happen. // // Organize in the "predefined targets" folder: // - if (this->UseFolderProperty()) + if (this->UseFolderProperty() && this->GetVersion() > VS71) { allBuild->SetProperty("FOLDER", this->GetPredefinedTargetsFolder()); } -#endif // Now make all targets depend on the ALL_BUILD target for(std::vector<cmLocalGenerator*>::iterator i = gen.begin(); @@ -519,6 +513,32 @@ cmGlobalVisualStudioGenerator::GetUtilityDepend( } //---------------------------------------------------------------------------- +std::string +cmGlobalVisualStudioGenerator::GetStartupProjectName( + cmLocalGenerator const* root) const +{ + const char* n = root->GetMakefile()->GetProperty("VS_STARTUP_PROJECT"); + if (n && *n) + { + std::string startup = n; + if (this->FindTarget(startup)) + { + return startup; + } + else + { + root->GetMakefile()->IssueMessage( + cmake::AUTHOR_WARNING, + "Directory property VS_STARTUP_PROJECT specifies target " + "'" + startup + "' that does not exist. Ignoring."); + } + } + + // default, if not specified + return this->GetAllTargetName(); +} + +//---------------------------------------------------------------------------- #include <windows.h> //---------------------------------------------------------------------------- |
