From 781eb380f47c743ddb9f3ad65c6f7d3eda7af171 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 30 May 2017 14:10:45 -0400 Subject: Tests: Fix VSResource test on MinGW with Ninja and a space in the path --- Tests/VSResource/CMakeLists.txt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) 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) -- cgit v0.12 From 6a2f8335638605d34f066f4e1f2fc646e324564e Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 30 May 2017 14:17:00 -0400 Subject: Ninja: Fix escaping of path to depfile Replace the dedicated and non-portable escaping code with use of our standard escaping logic. --- Source/cmGlobalNinjaGenerator.cxx | 7 ------- Source/cmGlobalNinjaGenerator.h | 1 - Source/cmNinjaTargetGenerator.cxx | 8 ++++---- 3 files changed, 4 insertions(+), 12 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"); -- cgit v0.12