X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbuildercli.cpp;h=8ba8d96bdba0e105ac3f43bf811fbe05af9eddb8;hb=1f741a165cc715e4df92f1f2f5d77339a39be73a;hp=bf53c2912dfd59c964a9e8d96f26e14796105eea;hpb=7c2db9e2b91da953701be233336c5bfa1f3c4af0;p=builder.git diff --git a/source/buildercli.cpp b/source/buildercli.cpp index bf53c29..8ba8d96 100644 --- a/source/buildercli.cpp +++ b/source/buildercli.cpp @@ -121,18 +121,6 @@ BuilderCLI::BuilderCLI(int argc, char **argv): else if(!clean && !create_makefile) build = true; - for(auto i=cmdline_targets.begin(); i!=cmdline_targets.end(); ) - { - string::size_type equal = i->find('='); - if(equal!=string::npos) - { - cmdline_options.insert(Config::InputOptions::value_type(i->substr(0, equal), i->substr(equal+1))); - cmdline_targets.erase(i++); - } - else - ++i; - } - if(!work_dir.empty()) FS::chdir(work_dir); @@ -167,12 +155,18 @@ BuilderCLI::BuilderCLI(int argc, char **argv): builder.add_default_tools(); const Toolchain &toolchain = builder.get_toolchain(); - for(auto i=cmdline_options.begin(); i!=cmdline_options.end(); ) + for(auto i=cmdline_targets.begin(); i!=cmdline_targets.end(); ) { - if(toolchain.has_tool(i->first)) + string::size_type equal = i->find('='); + if(equal!=string::npos) { - toolchain.get_tool(i->first).set_command(i->second); - cmdline_options.erase(i++); + string key = i->substr(0, equal); + string value = i->substr(equal+1); + if(toolchain.has_tool(key)) + toolchain.get_tool(key).set_command(value); + else + cmdline_options.insert({ key, value }); + i = cmdline_targets.erase(i); } else ++i; @@ -209,12 +203,6 @@ int BuilderCLI::main() return 0; } - if(!prepare_build()) - return 1; - - if(conf_only) - return 0; - const Architecture &native_arch = builder.get_native_arch(); const Architecture ¤t_arch = builder.get_current_arch(); logger.log("environment", format("Building on %s, for %s%s", native_arch.get_name(), @@ -228,6 +216,12 @@ int BuilderCLI::main() const BuildType &build_type = builder.get_build_type(); logger.log("environment", format("Build type is %s", build_type.get_name())); + if(!prepare_build()) + return 1; + + if(conf_only) + return 0; + BuildGraph &build_graph = builder.get_build_graph(); PackageManager &package_manager = builder.get_package_manager(); list package_details; @@ -353,7 +347,7 @@ void BuilderCLI::package_help() SourcePackage &main_pkg = dynamic_cast(package_manager.get_main_package()); const Config &config = main_pkg.get_config(); - const Config::OptionMap &options = config.get_options(); + const auto &options = config.get_options(); const Package::Requirements &requires = main_pkg.get_required_packages(); if(!requires.empty() || !options.empty())