From 848520859afebb3353a91561725e4e96b48a6c35 Mon Sep 17 00:00:00 2001 From: Peter Collingbourne Date: Sat, 17 Mar 2012 20:55:09 +0000 Subject: Ninja: shell escape $(CMAKE_SOURCE_DIR) and $(CMAKE_BINARY_DIR) --- Source/cmNinjaUtilityTargetGenerator.cxx | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/Source/cmNinjaUtilityTargetGenerator.cxx b/Source/cmNinjaUtilityTargetGenerator.cxx index 8eeca77..9c2fd13 100644 --- a/Source/cmNinjaUtilityTargetGenerator.cxx +++ b/Source/cmNinjaUtilityTargetGenerator.cxx @@ -78,10 +78,18 @@ void cmNinjaUtilityTargetGenerator::Generate() // TODO: fix problematic global targets. For now, search and replace the // makefile vars. - cmSystemTools::ReplaceString(command, "$(CMAKE_SOURCE_DIR)", - this->GetTarget()->GetMakefile()->GetHomeDirectory()); - cmSystemTools::ReplaceString(command, "$(CMAKE_BINARY_DIR)", - this->GetTarget()->GetMakefile()->GetHomeOutputDirectory()); + cmSystemTools::ReplaceString( + command, + "$(CMAKE_SOURCE_DIR)", + this->GetLocalGenerator()->ConvertToOutputFormat( + this->GetTarget()->GetMakefile()->GetHomeDirectory(), + cmLocalGenerator::SHELL).c_str()); + cmSystemTools::ReplaceString( + command, + "$(CMAKE_BINARY_DIR)", + this->GetLocalGenerator()->ConvertToOutputFormat( + this->GetTarget()->GetMakefile()->GetHomeOutputDirectory(), + cmLocalGenerator::SHELL).c_str()); cmSystemTools::ReplaceString(command, "$(ARGS)", ""); if (command.find('$') != std::string::npos) -- cgit v0.12