diff options
author | Brad King <brad.king@kitware.com> | 2020-04-10 19:15:21 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2020-04-15 12:34:49 (GMT) |
commit | d74e651b7834937a6761b880d4e713683f5a44e3 (patch) | |
tree | afb3c0b0976c36b78ae756d5a9f4ffa3b11ec416 /Tests | |
parent | 031bfaa865956c101aff74d35573381ebe71f0a1 (diff) | |
download | CMake-d74e651b7834937a6761b880d4e713683f5a44e3.zip CMake-d74e651b7834937a6761b880d4e713683f5a44e3.tar.gz CMake-d74e651b7834937a6761b880d4e713683f5a44e3.tar.bz2 |
Makefiles: Re-implement makefile target path escaping and quoting
Previously we used `cmSystemTools::ConvertToOutputPath` which internally
used KWSys methods
* SystemTools::ConvertToUnixOutputPath
* SystemTools::ConvertToWindowsOutputPath
These were written in very early days of CMake and have some
limitations:
* They do not encode all characters. E.g. '#' is left out.
* They attempt to do some path cleanup and handle existing quotes.
These days CMake has clean unquoted paths already.
* They attempted to encode paths both for makefile targets and
for shell command lines. The latter use has mostly been replaced.
* Choosing between the two methods depends on a global variable!
Several code paths in CMake have to copy the global generator's
member ForceUnixPaths variable over to the cmSystemTools global.
Re-implement the `ConvertToMakefilePath` method to drop use of those
methods. Compute suitable makefile target path escaping and quoting
via local logic. Add support for more characters like '#'.
Fixes: #20555
Diffstat (limited to 'Tests')
0 files changed, 0 insertions, 0 deletions