[Cmake-commits] CMake branch, next, updated. v2.8.8-3140-g947d387

Brad King brad.king at kitware.com
Wed Jun 13 08:57:10 EDT 2012


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  947d387668ec5382c71c56db6315e5a4ec7c5e38 (commit)
       via  a41557a2c8e92f1720b6a38688275c5afa9cc67b (commit)
      from  54449c11d0b779b62178e71136cc013771078931 (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=947d387668ec5382c71c56db6315e5a4ec7c5e38
commit 947d387668ec5382c71c56db6315e5a4ec7c5e38
Merge: 54449c1 a41557a
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Jun 13 08:57:08 2012 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Wed Jun 13 08:57:08 2012 -0400

    Merge topic 'install-case-sensitive-mac' into next
    
    a41557a install: Fix FILES_MATCHING on case-sensitive Mac filesystems (#13177)


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a41557a2c8e92f1720b6a38688275c5afa9cc67b
commit a41557a2c8e92f1720b6a38688275c5afa9cc67b
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Jun 13 08:42:39 2012 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Jun 13 08:50:44 2012 -0400

    install: Fix FILES_MATCHING on case-sensitive Mac filesystems (#13177)
    
    Windows and Apple machines have predominantly used case-insensitive
    filesystems so our file(INSTALL) command uses case-insensitive pattern
    matching.  It is implemented by converting the pattern and file path to
    lower case before matching.  The FILES_MATCHING option is implemented by
    excluding a path that does not match any pattern unless it is a
    directory that must be searched recursively.  However, the test that an
    excluded path is a directory is executed on the lower-case path and
    therefore fails on mixed-case input paths on case-sensitive filesystems.
    Fix the file(INSTALL) implementation to use the lower-case path only for
    pattern matching and preserve the original path for tests against the
    real filesystem.

diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx
index 3f14fa1..aab6446 100644
--- a/Source/cmFileCommand.cxx
+++ b/Source/cmFileCommand.cxx
@@ -1003,7 +1003,9 @@ protected:
     // Match rules are case-insensitive on some platforms.
 #if defined(_WIN32) || defined(__APPLE__) || defined(__CYGWIN__)
     std::string lower = cmSystemTools::LowerCase(file);
-    file = lower.c_str();
+    const char* file_to_match = lower.c_str();
+#else
+    const char* file_to_match = file;
 #endif
 
     // Collect properties from all matching rules.
@@ -1012,7 +1014,7 @@ protected:
     for(std::vector<MatchRule>::iterator mr = this->MatchRules.begin();
         mr != this->MatchRules.end(); ++mr)
       {
-      if(mr->Regex.find(file))
+      if(mr->Regex.find(file_to_match))
         {
         matched = true;
         result.Exclude |= mr->Properties.Exclude;

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

Summary of changes:
 Source/cmFileCommand.cxx |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list