[Cmake-commits] CMake branch, next, updated. v3.3.0-rc3-993-g5f654be

Stephen Kelly steveire at gmail.com
Sun Jul 12 04:10:06 EDT 2015


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  5f654be0342fa580f071501f51c2149b96a35231 (commit)
       via  d4f032b5460afce396dcc5ce3b0af9eb0619812b (commit)
      from  3272d0abcb5383b6e2a90c57a94c0a406bcc07ee (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 -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5f654be0342fa580f071501f51c2149b96a35231
commit 5f654be0342fa580f071501f51c2149b96a35231
Merge: 3272d0a d4f032b
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sun Jul 12 04:10:06 2015 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Sun Jul 12 04:10:06 2015 -0400

    Merge topic 'fix-command-rename' into next
    
    d4f032b5 cmState: Restore renamed commands on cleanup.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d4f032b5460afce396dcc5ce3b0af9eb0619812b
commit d4f032b5460afce396dcc5ce3b0af9eb0619812b
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat Jul 11 10:51:36 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sun Jul 12 10:09:54 2015 +0200

    cmState: Restore renamed commands on cleanup.
    
    Commit v3.3.0-rc1~196^2~7 (cmake: Simplify command clean up
    loop., 2015-04-12) introduced a bug that built-in commands which
    were renamed no longer had their original name restored when
    cleanup is performed between configure runs.  Check for that
    and restore the commands with their original name.
    
    Extend the complex test for this. That test is run by ctest with
    the --build-two-config command line option.

diff --git a/Source/cmState.cxx b/Source/cmState.cxx
index 58885d3..042fabe 100644
--- a/Source/cmState.cxx
+++ b/Source/cmState.cxx
@@ -406,6 +406,7 @@ std::vector<std::string> cmState::GetCommandNames() const
 
 void cmState::RemoveUserDefinedCommands()
 {
+  std::vector<cmCommand*> renamedCommands;
   for(std::map<std::string, cmCommand*>::iterator j = this->Commands.begin();
       j != this->Commands.end(); )
     {
@@ -415,11 +416,21 @@ void cmState::RemoveUserDefinedCommands()
       delete j->second;
       this->Commands.erase(j++);
       }
+    else if (j->first != j->second->GetName())
+      {
+      renamedCommands.push_back(j->second);
+      this->Commands.erase(j++);
+      }
     else
       {
       ++j;
       }
     }
+  for (std::vector<cmCommand*>::const_iterator it = renamedCommands.begin();
+       it != renamedCommands.end(); ++it)
+    {
+    this->Commands[cmSystemTools::LowerCase((*it)->GetName())] = *it;
+    }
 }
 
 void cmState::SetGlobalProperty(const std::string& prop, const char* value)
diff --git a/Tests/Complex/CMakeLists.txt b/Tests/Complex/CMakeLists.txt
index 5e5eead..9251ff3 100644
--- a/Tests/Complex/CMakeLists.txt
+++ b/Tests/Complex/CMakeLists.txt
@@ -4,6 +4,13 @@
 cmake_minimum_required(VERSION 2.4)
 project (Complex)
 
+# Test that renaming a built-in works when configured multiple times.
+message("message")
+function(message)
+  _message(${ARGN})
+endfunction()
+message("message")
+
 # Try setting a new policy.  The IF test is for coverage.
 if(POLICY CMP0003)
   cmake_policy(SET CMP0003 NEW)

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

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list