]> git.tdb.fi Git - builder.git/blobdiff - source/buildercli.cpp
Log environment information before preparing the build
[builder.git] / source / buildercli.cpp
index bf53c2912dfd59c964a9e8d96f26e14796105eea..8ba8d96bdba0e105ac3f43bf811fbe05af9eddb8 100644 (file)
@@ -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 &current_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<string> package_details;
@@ -353,7 +347,7 @@ void BuilderCLI::package_help()
 
        SourcePackage &main_pkg = dynamic_cast<SourcePackage &>(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())