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  cc04b2272954e90e97af212ab76ba8322bf225d4 (commit)
       via  87cc9bfc3c6892c93e10f73421e2b0fdba06b8e9 (commit)
       via  42db2ebc756a48ecdb15841c18747cb69e9df11f (commit)
      from  1529102dab129c3d2e1010f1e37544fd4a698f5d (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=cc04b2272954e90e97af212ab76ba8322bf225d4
commit cc04b2272954e90e97af212ab76ba8322bf225d4
Merge: 1529102 87cc9bf
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Tue Oct 25 09:05:08 2016 -0400
Commit:     CMake Topic Stage <kwro...@kitware.com>
CommitDate: Tue Oct 25 09:05:08 2016 -0400

    Merge topic 'ninja-subdir-binary-dir' into next
    
    87cc9bfc Merge branch 'backport-ninja-subdir-binary-dir' into 
ninja-subdir-binary-dir
    42db2ebc Ninja: Use binary dir for `$subdir/all` targets


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=87cc9bfc3c6892c93e10f73421e2b0fdba06b8e9
commit 87cc9bfc3c6892c93e10f73421e2b0fdba06b8e9
Merge: e983bd3 42db2eb
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Mon Oct 24 10:30:52 2016 -0400
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Mon Oct 24 10:30:52 2016 -0400

    Merge branch 'backport-ninja-subdir-binary-dir' into ninja-subdir-binary-dir


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=42db2ebc756a48ecdb15841c18747cb69e9df11f
commit 42db2ebc756a48ecdb15841c18747cb69e9df11f
Author:     Alexis Murzeau <amub...@outlook.fr>
AuthorDate: Sun Oct 23 18:58:28 2016 +0200
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Mon Oct 24 09:49:23 2016 -0400

    Ninja: Use binary dir for `$subdir/all` targets
    
    The targets added by commit v3.6.0-rc1~240^2~2 (Ninja: Add `$subdir/all`
    targets, 2016-03-11) use as `$subdir` the relative path from the top of
    the source tree to the current source directory.  This is not correct
    when using `add_subdirectory(test test_bin)`.  Instead we need to use
    the relative path from the top of the binary tree to the current binary
    directory as was done for related targets by commit v3.7.0-rc1~268^2
    (Ninja: Add `$subdir/{test,install,package}` targets, 2016-08-05).

diff --git a/Source/cmGlobalNinjaGenerator.cxx 
b/Source/cmGlobalNinjaGenerator.cxx
index f5a0e68..5e6036d 100644
--- a/Source/cmGlobalNinjaGenerator.cxx
+++ b/Source/cmGlobalNinjaGenerator.cxx
@@ -843,20 +843,6 @@ std::string 
cmGlobalNinjaGenerator::ConvertToNinjaPath(const std::string& path)
   return convPath;
 }
 
-std::string cmGlobalNinjaGenerator::ConvertToNinjaFolderRule(
-  const std::string& path)
-{
-  cmLocalNinjaGenerator* ng =
-    static_cast<cmLocalNinjaGenerator*>(this->LocalGenerators[0]);
-  std::string convPath = ng->ConvertToRelativePath(
-    this->LocalGenerators[0]->GetState()->GetSourceDirectory(), path + "/all");
-  convPath = this->NinjaOutputPath(convPath);
-#ifdef _WIN32
-  std::replace(convPath.begin(), convPath.end(), '/', '\\');
-#endif
-  return convPath;
-}
-
 void cmGlobalNinjaGenerator::AddCXXCompileCommand(
   const std::string& commandLine, const std::string& sourceFile)
 {
@@ -1083,11 +1069,11 @@ void 
cmGlobalNinjaGenerator::WriteFolderTargets(std::ostream& os)
          this->LocalGenerators.begin();
        lgi != this->LocalGenerators.end(); ++lgi) {
     cmLocalGenerator const* lg = *lgi;
-    const std::string currentSourceFolder(
-      lg->GetStateSnapshot().GetDirectory().GetCurrentSource());
+    const std::string currentBinaryFolder(
+      lg->GetStateSnapshot().GetDirectory().GetCurrentBinary());
     // The directory-level rule should depend on the target-level rules
     // for all targets in the directory.
-    targetsPerFolder[currentSourceFolder] = cmNinjaDeps();
+    targetsPerFolder[currentBinaryFolder] = cmNinjaDeps();
     for (std::vector<cmGeneratorTarget*>::const_iterator ti =
            lg->GetGeneratorTargets().begin();
          ti != lg->GetGeneratorTargets().end(); ++ti) {
@@ -1098,7 +1084,7 @@ void 
cmGlobalNinjaGenerator::WriteFolderTargets(std::ostream& os)
            type == cmState::MODULE_LIBRARY ||
            type == cmState::OBJECT_LIBRARY || type == cmState::UTILITY) &&
           !gt->GetPropertyAsBool("EXCLUDE_FROM_ALL")) {
-        targetsPerFolder[currentSourceFolder].push_back(gt->GetName());
+        targetsPerFolder[currentBinaryFolder].push_back(gt->GetName());
       }
     }
 
@@ -1109,28 +1095,30 @@ void 
cmGlobalNinjaGenerator::WriteFolderTargets(std::ostream& os)
     for (std::vector<cmState::Snapshot>::const_iterator stateIt =
            children.begin();
          stateIt != children.end(); ++stateIt) {
-      targetsPerFolder[currentSourceFolder].push_back(
-        this->ConvertToNinjaFolderRule(
-          stateIt->GetDirectory().GetCurrentSource()));
+      std::string const currentBinaryDir =
+        stateIt->GetDirectory().GetCurrentBinary();
+
+      targetsPerFolder[currentBinaryFolder].push_back(
+        this->ConvertToNinjaPath(currentBinaryDir + "/all"));
     }
   }
 
-  std::string const rootSourceDir =
-    this->LocalGenerators[0]->GetSourceDirectory();
+  std::string const rootBinaryDir =
+    this->LocalGenerators[0]->GetBinaryDirectory();
   for (std::map<std::string, cmNinjaDeps>::const_iterator it =
          targetsPerFolder.begin();
        it != targetsPerFolder.end(); ++it) {
     cmGlobalNinjaGenerator::WriteDivider(os);
-    std::string const& currentSourceDir = it->first;
+    std::string const& currentBinaryDir = it->first;
 
-    // Do not generate a rule for the root source dir.
-    if (rootSourceDir.length() >= currentSourceDir.length()) {
+    // Do not generate a rule for the root binary dir.
+    if (rootBinaryDir.length() >= currentBinaryDir.length()) {
       continue;
     }
 
-    std::string const comment = "Folder: " + currentSourceDir;
+    std::string const comment = "Folder: " + currentBinaryDir;
     cmNinjaDeps output(1);
-    output.push_back(this->ConvertToNinjaFolderRule(currentSourceDir));
+    output.push_back(this->ConvertToNinjaPath(currentBinaryDir + "/all"));
 
     this->WritePhonyBuild(os, comment, output, it->second);
   }
diff --git a/Source/cmGlobalNinjaGenerator.h b/Source/cmGlobalNinjaGenerator.h
index dcf7406..2ce3c80 100644
--- a/Source/cmGlobalNinjaGenerator.h
+++ b/Source/cmGlobalNinjaGenerator.h
@@ -234,7 +234,6 @@ public:
   }
 
   std::string ConvertToNinjaPath(const std::string& path);
-  std::string ConvertToNinjaFolderRule(const std::string& path);
 
   struct MapToNinjaPathImpl
   {
diff --git a/Tests/RunCMake/Ninja/RunCMakeTest.cmake 
b/Tests/RunCMake/Ninja/RunCMakeTest.cmake
index 778f2c1..1d3639d 100644
--- a/Tests/RunCMake/Ninja/RunCMakeTest.cmake
+++ b/Tests/RunCMake/Ninja/RunCMakeTest.cmake
@@ -45,14 +45,23 @@ function(run_SubDir)
     set(SubDir_all [[SubDir\all]])
     set(SubDir_test [[SubDir\test]])
     set(SubDir_install [[SubDir\install]])
+    set(SubDirBinary_test [[SubDirBinary\test]])
+    set(SubDirBinary_all [[SubDirBinary\all]])
+    set(SubDirBinary_install [[SubDirBinary\install]])
   else()
     set(SubDir_all [[SubDir/all]])
     set(SubDir_test [[SubDir/test]])
     set(SubDir_install [[SubDir/install]])
+    set(SubDirBinary_all [[SubDirBinary/all]])
+    set(SubDirBinary_test [[SubDirBinary/test]])
+    set(SubDirBinary_install [[SubDirBinary/install]])
   endif()
   run_cmake_command(SubDir-build ${CMAKE_COMMAND} --build . --target 
${SubDir_all})
   run_cmake_command(SubDir-test ${CMAKE_COMMAND} --build . --target 
${SubDir_test})
   run_cmake_command(SubDir-install ${CMAKE_COMMAND} --build . --target 
${SubDir_install})
+  run_cmake_command(SubDirBinary-build ${CMAKE_COMMAND} --build . --target 
${SubDirBinary_all})
+  run_cmake_command(SubDirBinary-test ${CMAKE_COMMAND} --build . --target 
${SubDirBinary_test})
+  run_cmake_command(SubDirBinary-install ${CMAKE_COMMAND} --build . --target 
${SubDirBinary_install})
 endfunction()
 run_SubDir()
 
diff --git a/Tests/RunCMake/Ninja/SubDir.cmake 
b/Tests/RunCMake/Ninja/SubDir.cmake
index d227753..11f467a 100644
--- a/Tests/RunCMake/Ninja/SubDir.cmake
+++ b/Tests/RunCMake/Ninja/SubDir.cmake
@@ -1,5 +1,6 @@
 include(CTest)
 add_subdirectory(SubDir)
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/SubDirSource SubDirBinary)
 add_custom_target(TopFail ALL COMMAND does_not_exist)
 add_test(NAME TopTest COMMAND ${CMAKE_COMMAND} -E echo "Running TopTest")
 install(CODE [[
diff --git a/Tests/RunCMake/Ninja/SubDirBinary-build-stdout.txt 
b/Tests/RunCMake/Ninja/SubDirBinary-build-stdout.txt
new file mode 100644
index 0000000..244eaa0
--- /dev/null
+++ b/Tests/RunCMake/Ninja/SubDirBinary-build-stdout.txt
@@ -0,0 +1 @@
+Building SubDirSourceInAll
diff --git a/Tests/RunCMake/Ninja/SubDirBinary-install-stdout.txt 
b/Tests/RunCMake/Ninja/SubDirBinary-install-stdout.txt
new file mode 100644
index 0000000..6b6c6dd
--- /dev/null
+++ b/Tests/RunCMake/Ninja/SubDirBinary-install-stdout.txt
@@ -0,0 +1 @@
+-- Installing SubDirSource
diff --git a/Tests/RunCMake/Ninja/SubDirBinary-test-stdout.txt 
b/Tests/RunCMake/Ninja/SubDirBinary-test-stdout.txt
new file mode 100644
index 0000000..d6d6605
--- /dev/null
+++ b/Tests/RunCMake/Ninja/SubDirBinary-test-stdout.txt
@@ -0,0 +1 @@
+1/1 Test #1: SubDirSourceTest
diff --git a/Tests/RunCMake/Ninja/SubDirSource/CMakeLists.txt 
b/Tests/RunCMake/Ninja/SubDirSource/CMakeLists.txt
new file mode 100644
index 0000000..2664261
--- /dev/null
+++ b/Tests/RunCMake/Ninja/SubDirSource/CMakeLists.txt
@@ -0,0 +1,6 @@
+add_custom_target(SubDirSourceFail COMMAND does_not_exist)
+add_custom_target(SubDirSourceInAll ALL COMMAND ${CMAKE_COMMAND} -E echo 
"Building SubDirSourceInAll")
+add_test(NAME SubDirSourceTest COMMAND ${CMAKE_COMMAND} -E echo "Running 
SubDirSourceTest")
+install(CODE [[
+  message(STATUS "Installing SubDirSource")
+]])

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

Summary of changes:


hooks/post-receive
-- 
CMake
_______________________________________________
Cmake-commits mailing list
Cmake-commits@cmake.org
http://public.kitware.com/mailman/listinfo/cmake-commits

Reply via email to