summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2017-05-31 12:55:40 (GMT)
committerKitware Robot <kwrobot@kitware.com>2017-05-31 12:55:44 (GMT)
commitde16ff3e58b0518c707ae877e80b6f81e26a4326 (patch)
tree093f58a468bdbf33e4c15ab8073677c0b3b65239
parent47281310bf610f3ab975d00831e9f3fe713ddde1 (diff)
parent6a2f8335638605d34f066f4e1f2fc646e324564e (diff)
downloadCMake-de16ff3e58b0518c707ae877e80b6f81e26a4326.zip
CMake-de16ff3e58b0518c707ae877e80b6f81e26a4326.tar.gz
CMake-de16ff3e58b0518c707ae877e80b6f81e26a4326.tar.bz2
Merge topic 'ninja-mingw'
6a2f8335 Ninja: Fix escaping of path to depfile 781eb380 Tests: Fix VSResource test on MinGW with Ninja and a space in the path Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !911
-rw-r--r--Source/cmGlobalNinjaGenerator.cxx7
-rw-r--r--Source/cmGlobalNinjaGenerator.h1
-rw-r--r--Source/cmNinjaTargetGenerator.cxx8
-rw-r--r--Tests/VSResource/CMakeLists.txt5
4 files changed, 6 insertions, 15 deletions
diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx
index e1e165c..39f5d8f 100644
--- a/Source/cmGlobalNinjaGenerator.cxx
+++ b/Source/cmGlobalNinjaGenerator.cxx
@@ -146,13 +146,6 @@ std::string cmGlobalNinjaGenerator::EncodePath(const std::string& path)
return EncodeLiteral(result);
}
-std::string cmGlobalNinjaGenerator::EncodeDepfileSpace(const std::string& path)
-{
- std::string result = path;
- cmSystemTools::ReplaceString(result, " ", "\\ ");
- return result;
-}
-
void cmGlobalNinjaGenerator::WriteBuild(
std::ostream& os, const std::string& comment, const std::string& rule,
const cmNinjaDeps& outputs, const cmNinjaDeps& implicitOuts,
diff --git a/Source/cmGlobalNinjaGenerator.h b/Source/cmGlobalNinjaGenerator.h
index b1d6155..41c5175 100644
--- a/Source/cmGlobalNinjaGenerator.h
+++ b/Source/cmGlobalNinjaGenerator.h
@@ -75,7 +75,6 @@ public:
static std::string EncodeIdent(const std::string& ident, std::ostream& vars);
static std::string EncodeLiteral(const std::string& lit);
std::string EncodePath(const std::string& path);
- static std::string EncodeDepfileSpace(const std::string& path);
cmLinkLineComputer* CreateLinkLineComputer(
cmOutputConverter* outputConverter,
diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx
index 7e29681..2f4cccb 100644
--- a/Source/cmNinjaTargetGenerator.cxx
+++ b/Source/cmNinjaTargetGenerator.cxx
@@ -822,8 +822,8 @@ void cmNinjaTargetGenerator::WriteObjectBuildStatement(
vars["DEFINES"] = this->ComputeDefines(source, language);
vars["INCLUDES"] = this->GetIncludes(language);
if (!this->NeedDepTypeMSVC(language)) {
- vars["DEP_FILE"] =
- cmGlobalNinjaGenerator::EncodeDepfileSpace(objectFileName + ".d");
+ vars["DEP_FILE"] = this->GetLocalGenerator()->ConvertToOutputFormat(
+ objectFileName + ".d", cmOutputConverter::SHELL);
}
this->ExportObjectCompileCommand(
@@ -920,8 +920,8 @@ void cmNinjaTargetGenerator::WriteObjectBuildStatement(
vars["INCLUDES"] = sourceDirectoryFlag + " " + vars["INCLUDES"];
// Explicit preprocessing always uses a depfile.
- ppVars["DEP_FILE"] =
- cmGlobalNinjaGenerator::EncodeDepfileSpace(ppFileName + ".d");
+ ppVars["DEP_FILE"] = this->GetLocalGenerator()->ConvertToOutputFormat(
+ ppFileName + ".d", cmOutputConverter::SHELL);
// The actual compilation does not need a depfile because it
// depends on the already-preprocessed source.
vars.erase("DEP_FILE");
diff --git a/Tests/VSResource/CMakeLists.txt b/Tests/VSResource/CMakeLists.txt
index 3b9cfc3..ee660ed 100644
--- a/Tests/VSResource/CMakeLists.txt
+++ b/Tests/VSResource/CMakeLists.txt
@@ -18,9 +18,8 @@ if(CMAKE_RC_COMPILER MATCHES windres)
message(STATUS "CMAKE_RC_COMPILER MATCHES windres")
add_definitions(/DCMAKE_RCDEFINE=test.txt)
add_definitions(/DCMAKE_RCDEFINE_NO_QUOTED_STRINGS)
- if(MSYS AND CMAKE_CURRENT_BINARY_DIR MATCHES " ")
- # windres cannot handle spaces in include dir, and
- # for the MSys shell we do not convert to shortpath.
+ if(CMAKE_CURRENT_BINARY_DIR MATCHES " ")
+ # windres cannot handle spaces in include dir
set(CMAKE_RC_NO_INCLUDE 1)
endif()
elseif(MSVC60)