diff options
author | Ben Boeckel <ben.boeckel@kitware.com> | 2020-01-09 21:40:22 (GMT) |
---|---|---|
committer | Ben Boeckel <ben.boeckel@kitware.com> | 2020-01-16 18:56:30 (GMT) |
commit | ec479f101f7113d21efd15257461e337ddc4f8b4 (patch) | |
tree | b56377fac68c62ab79fade02679fc00dbb835240 | |
parent | fd0ba705ce37f54eb88f17e257e5a57e823351bb (diff) | |
download | CMake-ec479f101f7113d21efd15257461e337ddc4f8b4.zip CMake-ec479f101f7113d21efd15257461e337ddc4f8b4.tar.gz CMake-ec479f101f7113d21efd15257461e337ddc4f8b4.tar.bz2 |
cmLocalGenerator: collapse the path after construction
The path may contain `..` or `.` components naïvely, so compute them out
before letting the generator handle them.
-rw-r--r-- | Source/cmLocalGenerator.cxx | 2 | ||||
-rw-r--r-- | Tests/CustomCommand/CMakeLists.txt | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index 6b282ab..4f1f582 100644 --- a/Source/cmLocalGenerator.cxx +++ b/Source/cmLocalGenerator.cxx @@ -2011,6 +2011,8 @@ bool cmLocalGenerator::GetRealDependency(const std::string& inName, dep = cmStrCat(this->GetCurrentBinaryDirectory(), '/', inName); } + dep = cmSystemTools::CollapseFullPath(dep, this->GetBinaryDirectory()); + return true; } diff --git a/Tests/CustomCommand/CMakeLists.txt b/Tests/CustomCommand/CMakeLists.txt index 86c74ba..d43cdba 100644 --- a/Tests/CustomCommand/CMakeLists.txt +++ b/Tests/CustomCommand/CMakeLists.txt @@ -535,6 +535,7 @@ set_property(SOURCE "${gen_file}" PROPERTY SYMBOLIC ON) add_custom_target(command_expand_lists ALL DEPENDS "${gen_file}") set_property(TARGET command_expand_lists PROPERTY CMPARGS "${cmp_args}") +# This also tests that `./` is squeezed out of the resulting path. set(depends_path "./depended_upon_path.txt") add_custom_command( |