diff options
author | Brad King <brad.king@kitware.com> | 2019-02-01 13:10:58 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2019-02-01 13:11:19 (GMT) |
commit | cf3af44af2b73ab6a89a8773b5fc3bee8276a47c (patch) | |
tree | 844dba39ddcf43857efe418a0ca968ed3c79cd62 /Source | |
parent | 9512a582389df6f588781eed41cf826a7bacabe0 (diff) | |
parent | 1c6c2bae285ecce518d68f708729840df9c28fb0 (diff) | |
download | CMake-cf3af44af2b73ab6a89a8773b5fc3bee8276a47c.zip CMake-cf3af44af2b73ab6a89a8773b5fc3bee8276a47c.tar.gz CMake-cf3af44af2b73ab6a89a8773b5fc3bee8276a47c.tar.bz2 |
Merge topic 'server-normalize-paths'
1c6c2bae28 cmake-server: Normalize build and source directories
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2898
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmServerProtocol.cxx | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/Source/cmServerProtocol.cxx b/Source/cmServerProtocol.cxx index c3c8156..203ee93 100644 --- a/Source/cmServerProtocol.cxx +++ b/Source/cmServerProtocol.cxx @@ -222,13 +222,22 @@ bool cmServerProtocol1::DoActivate(const cmServerRequest& request, std::string* errorMessage) { std::string sourceDirectory = request.Data[kSOURCE_DIRECTORY_KEY].asString(); - const std::string buildDirectory = - request.Data[kBUILD_DIRECTORY_KEY].asString(); + std::string buildDirectory = request.Data[kBUILD_DIRECTORY_KEY].asString(); std::string generator = request.Data[kGENERATOR_KEY].asString(); std::string extraGenerator = request.Data[kEXTRA_GENERATOR_KEY].asString(); std::string toolset = request.Data[kTOOLSET_KEY].asString(); std::string platform = request.Data[kPLATFORM_KEY].asString(); + // normalize source and build directory + if (!sourceDirectory.empty()) { + sourceDirectory = cmSystemTools::CollapseFullPath(sourceDirectory); + cmSystemTools::ConvertToUnixSlashes(sourceDirectory); + } + if (!buildDirectory.empty()) { + buildDirectory = cmSystemTools::CollapseFullPath(buildDirectory); + cmSystemTools::ConvertToUnixSlashes(buildDirectory); + } + if (buildDirectory.empty()) { setErrorMessage(errorMessage, std::string("\"") + kBUILD_DIRECTORY_KEY + |