diff options
author | Shinichiro Hamaji <shinichiro.hamaji@gmail.com> | 2015-06-26 06:47:10 +0900 |
---|---|---|
committer | Shinichiro Hamaji <shinichiro.hamaji@gmail.com> | 2015-06-26 16:42:23 +0900 |
commit | 45a0c76779c3ea40bce4af89c039f8d853cd2d43 (patch) | |
tree | 31f68202592db579ece529c2e93cd30f89ab8c51 /main.cc | |
parent | 0ea9e9163eb86269af2ddae2649780cb491cc7ed (diff) | |
download | android_build_kati-45a0c76779c3ea40bce4af89c039f8d853cd2d43.tar.gz android_build_kati-45a0c76779c3ea40bce4af89c039f8d853cd2d43.tar.bz2 android_build_kati-45a0c76779c3ea40bce4af89c039f8d853cd2d43.zip |
[C++] Implement export and unexport
Diffstat (limited to 'main.cc')
-rw-r--r-- | main.cc | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -163,6 +163,19 @@ static int Run(const vector<StringPiece>& targets, vector<DepNode*> nodes; MakeDep(ev, ev->rules(), ev->rule_vars(), targets, &nodes); + for (const auto& p : ev->exports()) { + const string& name = p.first.as_string(); + if (p.second) { + Var* v = ev->LookupVar(name); + shared_ptr<string> value = v->Eval(ev); + LOG("setenv(%s, %s)", name.c_str(), value->c_str()); + setenv(name.c_str(), value->c_str(), 1); + } else { + LOG("unsetenv(%s)", name.c_str()); + unsetenv(name.c_str()); + } + } + Exec(nodes, ev); for (AST* ast : bootstrap_asts) |