diff options
| author | Shinichiro Hamaji <shinichiro.hamaji@gmail.com> | 2016-04-27 17:26:21 +0900 |
|---|---|---|
| committer | Shinichiro Hamaji <shinichiro.hamaji@gmail.com> | 2016-04-27 17:26:21 +0900 |
| commit | 2941ea07651737a6151b19db45c010d2083dfa1d (patch) | |
| tree | 7ddf455eb757a3eef2912097ef0f806b9d2de52f /ninja.cc | |
| parent | 03fa34583ab79e9b0382c6c61104227c7d165970 (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.cc | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -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"; |
