[Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-242-g38c92f8

Brad King brad.king at kitware.com
Fri Feb 17 14:33:46 EST 2017


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  38c92f8d1c4e372aaeb598f54822dc71281a580a (commit)
       via  e2d78f7535951adc505014d3afde59b52caf35f1 (commit)
      from  0f8ea1fdfa8e8ad51633d17dd0ffc158f619a8fb (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=38c92f8d1c4e372aaeb598f54822dc71281a580a
commit 38c92f8d1c4e372aaeb598f54822dc71281a580a
Merge: 0f8ea1f e2d78f7
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Feb 17 14:33:45 2017 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Fri Feb 17 14:33:45 2017 -0500

    Merge topic 'fix-CMP0017-path-case' into next
    
    e2d78f75 Windows: Fix inconsistent behavior on changes to case of path to cmake


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e2d78f7535951adc505014d3afde59b52caf35f1
commit e2d78f7535951adc505014d3afde59b52caf35f1
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Feb 17 10:15:21 2017 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Fri Feb 17 11:10:45 2017 -0500

    Windows: Fix inconsistent behavior on changes to case of path to cmake
    
    In commit v3.4.0-rc1~333^2 (Merge branch 'upstream-kwsys' into
    update-kwsys, 2015-07-15) we brought in upstream KWSys commit 86a24794
    (SystemTools: Fix GetActualCaseForPath drive letter case handling,
    2015-07-09).  This caused our path processing to convert drive letters
    to upper-case and exposed an existing bug in our implementation of
    CMP0017.
    
    Policy CMP0017 is responsible for ensuring that modules included from a
    builtin module only load other builtin modules and cannot be overridden
    by a file in `CMAKE_MODULE_PATH`.  If there is a case difference in the
    drive letter (or other path components) then the path to the including
    module may not match our builtin module directory in a simple string
    comparison.  This means builtin modules may not be recognized as such,
    and they may not reliably include their builtin dependencies.  For
    example, if a project provides a `Platform/Windows` module in
    `CMAKE_MODULE_PATH` it can break inclusion of our builtin
    `Platform/Windows` module, leading to strange behavior.
    
    Fix this by comparing the path to the including module to our builtin
    module directory using a function that is aware of case-insensitivity of
    paths on Windows.
    
    Fixes: #16648, #16622

diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index bfe46ae..1e995fb 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -3362,7 +3362,7 @@ std::string cmMakefile::GetModulesFile(const char* filename) const
   if (!moduleInCMakeModulePath.empty() && !moduleInCMakeRoot.empty()) {
     const char* currentFile = this->GetDefinition("CMAKE_CURRENT_LIST_FILE");
     std::string mods = cmSystemTools::GetCMakeRoot() + "/Modules/";
-    if (currentFile && strncmp(currentFile, mods.c_str(), mods.size()) == 0) {
+    if (currentFile && cmSystemTools::IsSubDirectory(currentFile, mods)) {
       switch (this->GetPolicyStatus(cmPolicies::CMP0017)) {
         case cmPolicies::WARN: {
           std::ostringstream e;

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

Summary of changes:
 Source/cmMakefile.cxx |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list