From eda30754781a3ef4d3a0e9fa72f1bade50bb6a94 Mon Sep 17 00:00:00 2001 From: Peter Kuemmel Date: Thu, 14 Jun 2012 16:20:49 +0200 Subject: [PATCH] Ninja: sh needs something befor and after && --- Source/cmNinjaNormalTargetGenerator.cxx | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx index 12e871f3e..22f77f031 100644 --- a/Source/cmNinjaNormalTargetGenerator.cxx +++ b/Source/cmNinjaNormalTargetGenerator.cxx @@ -479,14 +479,13 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement() if (targetOutput == targetOutputReal) { vars["POST_BUILD"] = postBuildCmdLine; + if (preLinkCmdLines.empty()) { + // rule with PRE_LINK will be selected, feed it + vars["PRE_LINK"] = locGtor->nopCommand(); + } } else { - vars["POST_BUILD"] = ":"; symlinkVars["POST_BUILD"] = postBuildCmdLine; } - if (preLinkCmdLines.empty()) { - // rule with PRE_LINK will be selected, feed it - vars["PRE_LINK"] = locGtor->nopCommand(); - } } bool suppressShell = preLinkCmdLines.empty() && postBuildCmdLines.empty(); @@ -496,7 +495,16 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement() cmdLineLimit = 8000; #else // cmdLineLimit = ?? TODO - suppressShell = true; + suppressShell = false; + + // TODO also use _NOSHELL rule + if (vars.find("PRE_LINK") == vars.end()) + vars["PRE_LINK"] = locGtor->nopCommand(); + if (vars.find("POST_BUILD") == vars.end()) + vars["POST_BUILD"] = locGtor->nopCommand(); + if (targetOutput != targetOutputReal && + symlinkVars.find("POST_BUILD") == symlinkVars.end()) + symlinkVars["POST_BUILD"] = locGtor->nopCommand(); #endif // Write the build statement for this target. cmGlobalNinjaGenerator::WriteBuild(this->GetBuildFileStream(),