summaryrefslogtreecommitdiffstats
path: root/Source/cmInstallGenerator.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2017-02-17 15:15:21 (GMT)
committerBrad King <brad.king@kitware.com>2017-02-17 16:10:45 (GMT)
commite2d78f7535951adc505014d3afde59b52caf35f1 (patch)
tree612939a7a7197cbeccc84df0b23b4f8646ee2271 /Source/cmInstallGenerator.cxx
parent6cbad490c2fdbd9bdc67b406b9f2dcdc21e08ddb (diff)
downloadCMake-e2d78f7535951adc505014d3afde59b52caf35f1.zip
CMake-e2d78f7535951adc505014d3afde59b52caf35f1.tar.gz
CMake-e2d78f7535951adc505014d3afde59b52caf35f1.tar.bz2
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
Diffstat (limited to 'Source/cmInstallGenerator.cxx')
0 files changed, 0 insertions, 0 deletions