[Cmake-commits] CMake branch, next, updated. v3.5.0-599-g207223d

Brad King brad.king at kitware.com
Tue Mar 22 13:03:06 EDT 2016


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  207223d0c13b3c0d02dc53c3c9ede2ffd738bc6a (commit)
       via  66f7509df06db9262dd9bbd25bff9e9da6117012 (commit)
       via  26c2fd4e1a8c0f71dc3288260f1bd44077acbfcc (commit)
       via  c05ea48545f04dee8666094b0731366b64dfc9ad (commit)
      from  b97f9947f85629a46b0be182b48d14448857cb13 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=207223d0c13b3c0d02dc53c3c9ede2ffd738bc6a
commit 207223d0c13b3c0d02dc53c3c9ede2ffd738bc6a
Merge: b97f994 66f7509
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Mar 22 13:03:04 2016 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue Mar 22 13:03:04 2016 -0400

    Merge topic 'vs-startup-project' into next
    
    66f7509d VS: Put ALL_BUILD in the PREDEFINED_TARGETS_FOLDER
    26c2fd4e VS: Fix default target support for targets nested inside a folder
    c05ea485 VS: Improve unit test macros


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=66f7509df06db9262dd9bbd25bff9e9da6117012
commit 66f7509df06db9262dd9bbd25bff9e9da6117012
Author:     Taylor Braun-Jones <taylor at braun-jones.org>
AuthorDate: Mon Mar 21 16:05:41 2016 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Mar 22 13:02:36 2016 -0400

    VS: Put ALL_BUILD in the PREDEFINED_TARGETS_FOLDER

diff --git a/Source/cmGlobalVisualStudioGenerator.cxx b/Source/cmGlobalVisualStudioGenerator.cxx
index b11b49a..9817b09 100644
--- a/Source/cmGlobalVisualStudioGenerator.cxx
+++ b/Source/cmGlobalVisualStudioGenerator.cxx
@@ -89,11 +89,6 @@ 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:
       //
@@ -101,7 +96,6 @@ void cmGlobalVisualStudioGenerator::AddExtraIDETargets()
         {
         allBuild->SetProperty("FOLDER", this->GetPredefinedTargetsFolder());
         }
-#endif
 
       // Now make all targets depend on the ALL_BUILD target
       for(std::vector<cmLocalGenerator*>::iterator i = gen.begin();

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=26c2fd4e1a8c0f71dc3288260f1bd44077acbfcc
commit 26c2fd4e1a8c0f71dc3288260f1bd44077acbfcc
Author:     Taylor Braun-Jones <taylor at braun-jones.org>
AuthorDate: Mon Mar 21 16:01:20 2016 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Mar 22 13:02:06 2016 -0400

    VS: Fix default target support for targets nested inside a folder
    
    It's not actually the first target in a `.sln` file that is treated as
    the default startup project, but rather the first fully defined target.

diff --git a/Source/cmGlobalVisualStudio71Generator.cxx b/Source/cmGlobalVisualStudio71Generator.cxx
index f6796a5..289fbb5 100644
--- a/Source/cmGlobalVisualStudio71Generator.cxx
+++ b/Source/cmGlobalVisualStudio71Generator.cxx
@@ -97,7 +97,8 @@ void cmGlobalVisualStudio71Generator
   OrderedTargetDependSet orderedProjectTargets(
     projectTargets, this->GetStartupProjectName(root));
 
-  this->WriteTargetsToSolution(fout, root, orderedProjectTargets);
+  std::stringstream targetsSlnString;
+  this->WriteTargetsToSolution(targetsSlnString, root, orderedProjectTargets);
 
   bool useFolderProperty = this->UseFolderProperty();
   if (useFolderProperty)
@@ -105,6 +106,8 @@ void cmGlobalVisualStudio71Generator
     this->WriteFolders(fout);
     }
 
+  fout << targetsSlnString.str();
+
   // Write out the configurations information for the solution
   fout << "Global\n";
   // Write out the configurations for the solution
diff --git a/Tests/RunCMake/VSSolution/RunCMakeTest.cmake b/Tests/RunCMake/VSSolution/RunCMakeTest.cmake
index 8ae9598..19b309c 100644
--- a/Tests/RunCMake/VSSolution/RunCMakeTest.cmake
+++ b/Tests/RunCMake/VSSolution/RunCMakeTest.cmake
@@ -10,3 +10,4 @@ run_cmake(Override1)
 run_cmake(Override2)
 run_cmake(StartupProject)
 run_cmake(StartupProjectMissing)
+run_cmake(StartupProjectUseFolders)
diff --git a/Tests/RunCMake/VSSolution/StartupProjectUseFolders-check.cmake b/Tests/RunCMake/VSSolution/StartupProjectUseFolders-check.cmake
new file mode 100644
index 0000000..c0a545a
--- /dev/null
+++ b/Tests/RunCMake/VSSolution/StartupProjectUseFolders-check.cmake
@@ -0,0 +1,9 @@
+getProjectNames(projects)
+list(GET projects 0 first_project)
+if(NOT first_project STREQUAL "CMakePredefinedTargets")
+  error("CMakePredefinedTargets is not the first project")
+endif()
+list(GET projects 1 second_project)
+if(NOT second_project STREQUAL "TestStartup")
+  error("TestStartup does not immediately follow the CMakePredefinedTargets project")
+endif()
diff --git a/Tests/RunCMake/VSSolution/StartupProjectUseFolders.cmake b/Tests/RunCMake/VSSolution/StartupProjectUseFolders.cmake
new file mode 100644
index 0000000..8e422a4
--- /dev/null
+++ b/Tests/RunCMake/VSSolution/StartupProjectUseFolders.cmake
@@ -0,0 +1,3 @@
+add_custom_target(TestStartup)
+set_property(GLOBAL PROPERTY USE_FOLDERS ON)
+set_property(DIRECTORY PROPERTY VS_STARTUP_PROJECT "TestStartup")

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c05ea48545f04dee8666094b0731366b64dfc9ad
commit c05ea48545f04dee8666094b0731366b64dfc9ad
Author:     Taylor Braun-Jones <taylor at braun-jones.org>
AuthorDate: Mon Mar 21 14:34:34 2016 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Mar 22 12:41:30 2016 -0400

    VS: Improve unit test macros
    
    Change `getFirstProject` macro to more flexible version
    `getProjectNames`

diff --git a/Tests/RunCMake/VSSolution/StartupProject-check.cmake b/Tests/RunCMake/VSSolution/StartupProject-check.cmake
index 352bbd5..f36aab2 100644
--- a/Tests/RunCMake/VSSolution/StartupProject-check.cmake
+++ b/Tests/RunCMake/VSSolution/StartupProject-check.cmake
@@ -1,4 +1,5 @@
-getFirstProject(first_project StartupProject)
+getProjectNames(projects)
+list(GET projects 0 first_project)
 if(NOT first_project STREQUAL "TestStartup")
   error("TestStartup is not the startup project")
 endif()
diff --git a/Tests/RunCMake/VSSolution/StartupProjectMissing-check.cmake b/Tests/RunCMake/VSSolution/StartupProjectMissing-check.cmake
index 95fede7..b1017dd 100644
--- a/Tests/RunCMake/VSSolution/StartupProjectMissing-check.cmake
+++ b/Tests/RunCMake/VSSolution/StartupProjectMissing-check.cmake
@@ -1,4 +1,5 @@
-getFirstProject(first_project StartupProjectMissing)
+getProjectNames(projects)
+list(GET projects 0 first_project)
 if(NOT first_project STREQUAL "ALL_BUILD")
   error("ALL_BUILD is not the startup project")
 endif()
diff --git a/Tests/RunCMake/VSSolution/solution_parsing.cmake b/Tests/RunCMake/VSSolution/solution_parsing.cmake
index 001b584..4e5bb59 100644
--- a/Tests/RunCMake/VSSolution/solution_parsing.cmake
+++ b/Tests/RunCMake/VSSolution/solution_parsing.cmake
@@ -50,17 +50,18 @@ macro(parseGlobalSections arg_out_pre arg_out_post testName)
 endmacro()
 
 
-macro(getFirstProject arg_out_first_project testName)
-  set(${arg_out_first_project} "")
-  set(sln "${RunCMake_TEST_BINARY_DIR}/${testName}.sln")
+macro(getProjectNames arg_out_projects)
+  set(${arg_out_projects} "")
+  set(sln "${RunCMake_TEST_BINARY_DIR}/${test}.sln")
   if(NOT EXISTS "${sln}")
     error("Expected solution file ${sln} does not exist")
   endif()
   file(STRINGS "${sln}" project_lines REGEX "^Project\\(")
-  list(GET project_lines 0 first_project)
-  string(REGEX REPLACE ".* = \"" "" first_project "${first_project}")
-  string(REGEX REPLACE "\", .*"  "" first_project "${first_project}")
-  set(${arg_out_first_project} "${first_project}")
+  foreach(project_line IN LISTS project_lines)
+    string(REGEX REPLACE ".* = \"" "" project_line "${project_line}")
+    string(REGEX REPLACE "\", .*"  "" project_line "${project_line}")
+    list(APPEND ${arg_out_projects} "${project_line}")
+  endforeach()
 endmacro()
 
 

-----------------------------------------------------------------------

Summary of changes:
 Source/cmGlobalVisualStudio71Generator.cxx              |    5 ++++-
 Source/cmGlobalVisualStudioGenerator.cxx                |    6 ------
 Tests/RunCMake/VSSolution/RunCMakeTest.cmake            |    1 +
 Tests/RunCMake/VSSolution/StartupProject-check.cmake    |    3 ++-
 .../VSSolution/StartupProjectMissing-check.cmake        |    3 ++-
 .../VSSolution/StartupProjectUseFolders-check.cmake     |    9 +++++++++
 ...rtupProject.cmake => StartupProjectUseFolders.cmake} |    1 +
 Tests/RunCMake/VSSolution/solution_parsing.cmake        |   15 ++++++++-------
 8 files changed, 27 insertions(+), 16 deletions(-)
 create mode 100644 Tests/RunCMake/VSSolution/StartupProjectUseFolders-check.cmake
 copy Tests/RunCMake/VSSolution/{StartupProject.cmake => StartupProjectUseFolders.cmake} (68%)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list