[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