aboutsummaryrefslogtreecommitdiff
path: root/ninja.cc
diff options
context:
space:
mode:
authorShinichiro Hamaji <shinichiro.hamaji@gmail.com>2016-04-27 17:26:21 +0900
committerShinichiro Hamaji <shinichiro.hamaji@gmail.com>2016-04-27 17:26:21 +0900
commit2941ea07651737a6151b19db45c010d2083dfa1d (patch)
tree7ddf455eb757a3eef2912097ef0f806b9d2de52f /ninja.cc
parent03fa34583ab79e9b0382c6c61104227c7d165970 (diff)
[C++] Handle .POSIX at eval time
.POSIX pseudo target should change the behavior of $(shell). This also implements .POSIX for ckati's non-ninja mode.
Diffstat (limited to 'ninja.cc')
-rw-r--r--ninja.cc7
1 files changed, 4 insertions, 3 deletions
diff --git a/ninja.cc b/ninja.cc
index 762f602..771ddd2 100644
--- a/ninja.cc
+++ b/ninja.cc
@@ -184,8 +184,8 @@ class NinjaGenerator {
start_time_(start_time),
default_target_(NULL) {
ev_->set_avoid_io(true);
- shell_ = EscapeNinja(ev->EvalVar(kShellSym));
- shell_flags_ = g_flags.posix_shell ? "ec" : "c";
+ shell_ = EscapeNinja(ev->GetShell());
+ shell_flags_ = EscapeNinja(ev->GetShellFlag());
const string use_goma_str = ev->EvalVar(Intern("USE_GOMA"));
use_goma_ = !(use_goma_str.empty() || use_goma_str == "false");
if (g_flags.goma_dir)
@@ -502,7 +502,8 @@ class NinjaGenerator {
*o << " command = " << shell_ << " $out.rsp\n";
} else {
EscapeShell(&cmd_buf);
- *o << " command = " << shell_ << " -" << shell_flags_ << " \"" << cmd_buf << "\"\n";
+ *o << " command = " << shell_ << ' ' << shell_flags_
+ << " \"" << cmd_buf << "\"\n";
}
if (node->is_restat) {
*o << " restat = 1\n";