summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2012-02-18 16:32:47 (GMT)
committerPeter Collingbourne <peter@pcc.me.uk>2012-02-18 20:33:33 (GMT)
commit99856d537c996544bf495f33e6b058d83af4c6b7 (patch)
tree8c96408b7e7b75cc0b92b5d2c0cf44d77426f04b
parentf999a59afe804063cebf4dd89ef99662829bf3e4 (diff)
downloadCMake-99856d537c996544bf495f33e6b058d83af4c6b7.zip
CMake-99856d537c996544bf495f33e6b058d83af4c6b7.tar.gz
CMake-99856d537c996544bf495f33e6b058d83af4c6b7.tar.bz2
Ninja: Partially revert "win fixes: escape back slash/colon, use cd. as cmd.exe nop"
It introduced encoding rules in the wrong place, and broke the CustomCommand test case. This reverts commit 7fb2bb3e8b0dc7bc718aadc4ab9a74cb7fdb656e.
-rw-r--r--Source/CMakeLists.txt9
-rw-r--r--Source/cmGlobalNinjaGenerator.cxx11
2 files changed, 7 insertions, 13 deletions
diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt
index 7cc56d7..7ddabbd 100644
--- a/Source/CMakeLists.txt
+++ b/Source/CMakeLists.txt
@@ -353,8 +353,9 @@ IF (WIN32)
ENDIF(NOT UNIX)
ENDIF (WIN32)
-
-SET(SRCS ${SRCS}
+# Ninja only works on UNIX.
+IF(UNIX)
+ SET(SRCS ${SRCS}
cmGlobalNinjaGenerator.cxx
cmGlobalNinjaGenerator.h
cmNinjaTypes.h
@@ -367,8 +368,8 @@ SET(SRCS ${SRCS}
cmNinjaUtilityTargetGenerator.cxx
cmNinjaUtilityTargetGenerator.h
)
-ADD_DEFINITIONS(-DCMAKE_USE_NINJA)
-
+ ADD_DEFINITIONS(-DCMAKE_USE_NINJA)
+ENDIF(UNIX)
# create a library used by the command line and the GUI
ADD_LIBRARY(CMakeLib ${SRCS})
diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx
index 879a973..7ff33ba 100644
--- a/Source/cmGlobalNinjaGenerator.cxx
+++ b/Source/cmGlobalNinjaGenerator.cxx
@@ -59,7 +59,6 @@ static bool IsIdentChar(char c)
(c == '_') || (c == '$') || (c == '\\');
}
-
std::string cmGlobalNinjaGenerator::EncodeIdent(const std::string &ident,
std::ostream &vars) {
if (std::find_if(ident.begin(), ident.end(),
@@ -70,19 +69,14 @@ std::string cmGlobalNinjaGenerator::EncodeIdent(const std::string &ident,
vars << names.str() << " = " << ident << "\n";
return "$" + names.str();
} else {
- return EncodeLiteral(ident);
+ return ident;
}
}
-
std::string cmGlobalNinjaGenerator::EncodeLiteral(const std::string &lit)
{
std::string result = lit;
cmSystemTools::ReplaceString(result, "$", "$$");
- cmSystemTools::ReplaceString(result, ":", "$:");
-#ifdef _WIN32
- cmSystemTools::ReplaceString(result, "/", "\\");
-#endif
return result;
}
@@ -206,8 +200,7 @@ cmGlobalNinjaGenerator::WriteCustomCommandBuild(const std::string& command,
this->AddCustomCommandRule();
cmNinjaVars vars;
-
- vars["COMMAND"] = EncodeLiteral(command);
+ vars["COMMAND"] = command;
vars["DESC"] = EncodeLiteral(description);
cmGlobalNinjaGenerator::WriteBuild(*this->BuildFileStream,