diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2015-09-17 13:52:35 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2015-09-17 13:52:35 +0200 |
commit | 01a3fda266073b58a4de6dd61417bb2d0e3ecf9e (patch) | |
tree | 39f0b573a5b18fa6375805857d08bac6118cf70e /bpkg/utility.cxx | |
parent | 5de2e18ab39d52818554ea344eacd6e0c4b72aa3 (diff) |
Add run_b() function to run build2
Diffstat (limited to 'bpkg/utility.cxx')
-rw-r--r-- | bpkg/utility.cxx | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/bpkg/utility.cxx b/bpkg/utility.cxx index d9e0413..b122545 100644 --- a/bpkg/utility.cxx +++ b/bpkg/utility.cxx @@ -150,5 +150,39 @@ namespace bpkg } } + void + run_b (const string& bspec, const strings& vars) + { + cstrings args {"b"}; + + // Map verbosity level. If we are running quiet or at level 1, + // then run build2 quiet. Otherwise, run it at the same level + // as us. + // + string vl; + if (verb <= 1) + args.push_back ("-q"); + else if (verb == 2) + args.push_back ("-v"); + else + { + vl = to_string (verb); + args.push_back ("--verbose"); + args.push_back (vl.c_str ()); + } + + // Add config vars. + // + for (const string& v: vars) + args.push_back (v.c_str ()); + + // Add buildspec. + // + args.push_back (bspec.c_str ()); + + args.push_back (nullptr); + run (args); + } + bool exception_unwinding_dtor = false; } |