diff options
author | John Hodge (Mutabah) <acessdev@gmail.com> | 2018-02-11 15:33:08 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-11 15:33:08 +0800 |
commit | 6caf5739a97774b2602106e616db75e8a0ad5f8a (patch) | |
tree | 9d16f869bbff27743fe7c233fba9c4665a4d9138 /tools/minicargo/main.cpp | |
parent | 9e864a5d3ea05706ea6c7f68e47d32629a2c877e (diff) | |
parent | 3718f8cb7ee7b8c93e4d69b9aa2e00b4f50efd62 (diff) | |
download | mrust-6caf5739a97774b2602106e616db75e8a0ad5f8a.tar.gz |
Merge pull request #52 from thepowersgang/common_layout
Merge "common_layout" branch
Diffstat (limited to 'tools/minicargo/main.cpp')
-rw-r--r-- | tools/minicargo/main.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tools/minicargo/main.cpp b/tools/minicargo/main.cpp index 008ae0aa..50e08619 100644 --- a/tools/minicargo/main.cpp +++ b/tools/minicargo/main.cpp @@ -27,6 +27,9 @@ struct ProgramOptions // Output/build directory const char* output_directory = nullptr; + // Emit Monomorphised MIR instead of C + bool emit_mmir = false; + // Target name (if null, defaults to host) const char* target = nullptr; @@ -84,6 +87,7 @@ int main(int argc, const char* argv[]) build_opts.build_script_overrides = ::std::move(bs_override_dir); build_opts.output_dir = opts.output_directory ? ::helpers::path(opts.output_directory) : ::helpers::path("output"); build_opts.lib_search_dirs.reserve(opts.lib_search_dirs.size()); + build_opts.emit_mmir = opts.emit_mmir; build_opts.target_name = opts.target; for(const auto* d : opts.lib_search_dirs) build_opts.lib_search_dirs.push_back( ::helpers::path(d) ); @@ -158,6 +162,25 @@ int ProgramOptions::parse(int argc, const char* argv[]) } this->build_jobs = ::std::strtol(argv[++i], nullptr, 10); break; + case 'Z': + if( arg[2] != '\0' ) { + arg = arg + 2; + } + else { + if(i+1 == argc) { + ::std::cerr << "Flag " << arg << " takes an argument" << ::std::endl; + return 1; + } + arg = argv[++i]; + } + if( ::std::strcmp(arg, "emit-mmir") == 0 ) { + this->emit_mmir = true; + } + else { + ::std::cerr << "Unknown debug option -Z " << arg << ::std::endl; + return 1; + } + break; case 'n': this->build_jobs = 0; break; |