diff options
author | Brad King <brad.king@kitware.com> | 2016-10-28 19:39:56 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2016-10-28 19:44:04 (GMT) |
commit | 353f6362baffbcc8750b9ff9649552bf9d555a63 (patch) | |
tree | 6189f825c66d6950d781813a8f8e41fef857eb87 | |
parent | ee0f2d23fcf3cd7a67ad8d7bd132a475ed78405f (diff) | |
download | CMake-353f6362baffbcc8750b9ff9649552bf9d555a63.zip CMake-353f6362baffbcc8750b9ff9649552bf9d555a63.tar.gz CMake-353f6362baffbcc8750b9ff9649552bf9d555a63.tar.bz2 |
Ninja: Fix POST_BUILD noop on Windows
Use `cd .` instead of `:` in a Windows shell.
Closes: #16393
-rw-r--r-- | Source/cmGlobalNinjaGenerator.cxx | 5 | ||||
-rw-r--r-- | Source/cmGlobalNinjaGenerator.h | 3 | ||||
-rw-r--r-- | Source/cmLocalNinjaGenerator.cxx | 8 | ||||
-rw-r--r-- | Source/cmNinjaNormalTargetGenerator.cxx | 2 |
4 files changed, 11 insertions, 7 deletions
diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx index ee594b0..830ab7f 100644 --- a/Source/cmGlobalNinjaGenerator.cxx +++ b/Source/cmGlobalNinjaGenerator.cxx @@ -34,6 +34,11 @@ const char* cmGlobalNinjaGenerator::NINJA_BUILD_FILE = "build.ninja"; const char* cmGlobalNinjaGenerator::NINJA_RULES_FILE = "rules.ninja"; const char* cmGlobalNinjaGenerator::INDENT = " "; +#ifdef _WIN32 +std::string const cmGlobalNinjaGenerator::SHELL_NOOP = "cd ."; +#else +std::string const cmGlobalNinjaGenerator::SHELL_NOOP = ":"; +#endif void cmGlobalNinjaGenerator::Indent(std::ostream& os, int count) { diff --git a/Source/cmGlobalNinjaGenerator.h b/Source/cmGlobalNinjaGenerator.h index 81ec3eb..064ff0b 100644 --- a/Source/cmGlobalNinjaGenerator.h +++ b/Source/cmGlobalNinjaGenerator.h @@ -58,6 +58,9 @@ public: /// The indentation string used when generating Ninja's build file. static const char* INDENT; + /// The shell command used for a no-op. + static std::string const SHELL_NOOP; + /// Write @a count times INDENT level to output stream @a os. static void Indent(std::ostream& os, int count); diff --git a/Source/cmLocalNinjaGenerator.cxx b/Source/cmLocalNinjaGenerator.cxx index cd9af54..c27ab09 100644 --- a/Source/cmLocalNinjaGenerator.cxx +++ b/Source/cmLocalNinjaGenerator.cxx @@ -299,15 +299,11 @@ void cmLocalNinjaGenerator::AppendCustomCommandDeps( std::string cmLocalNinjaGenerator::BuildCommandLine( const std::vector<std::string>& cmdLines) { - // If we have no commands but we need to build a command anyway, use ":". + // If we have no commands but we need to build a command anyway, use noop. // This happens when building a POST_BUILD value for link targets that // don't use POST_BUILD. if (cmdLines.empty()) { -#ifdef _WIN32 - return "cd ."; -#else - return ":"; -#endif + return cmGlobalNinjaGenerator::SHELL_NOOP; } std::ostringstream cmd; diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx index 11773f9..d70bf8e 100644 --- a/Source/cmNinjaNormalTargetGenerator.cxx +++ b/Source/cmNinjaNormalTargetGenerator.cxx @@ -675,7 +675,7 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement() if (!symlinkNeeded) { vars["POST_BUILD"] = postBuildCmdLine; } else { - vars["POST_BUILD"] = ":"; + vars["POST_BUILD"] = cmGlobalNinjaGenerator::SHELL_NOOP; symlinkVars["POST_BUILD"] = postBuildCmdLine; } cmGlobalNinjaGenerator& globalGen = *this->GetGlobalGenerator(); |