X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbuildercli.cpp;h=2bea4ddad54d704404bacf73f18e1aa352d834ad;hb=bc85cc286c8a3f1055f1979a7ff8697cf1b61912;hp=c0a4f06c8f10c1b692b39c7a79798cf361a362e6;hpb=64661ac00a3a7eaa2295b85be642b6c96276cf97;p=builder.git diff --git a/source/buildercli.cpp b/source/buildercli.cpp index c0a4f06..2bea4dd 100644 --- a/source/buildercli.cpp +++ b/source/buildercli.cpp @@ -8,11 +8,14 @@ #include "buildercli.h" #include "filetarget.h" #include "sourcepackage.h" +#include "tool.h" +#include "toolchain.h" using namespace std; using namespace Msp; BuilderCLI::BuilderCLI(int argc, char **argv): + RegisteredApplication("builder"), analyzer(0), build(false), clean(0), @@ -142,15 +145,15 @@ BuilderCLI::BuilderCLI(int argc, char **argv): package_manager.append_package_path(cwd); package_manager.append_package_path(cwd/".."); - package_manager.append_binary_package_path(FS::get_sys_data_dir(argv[0], "builder")); + package_manager.append_binary_package_path(FS::get_sys_data_dir()/"packages"); package_manager.set_no_externals(no_externals); builder.set_architecture(arch); list start_files; - start_files.push_back(FS::get_sys_data_dir(argv[0], "builder")/"builderrc"); - start_files.push_back(FS::get_user_data_dir("builder")/"rc"); + start_files.push_back(FS::get_sys_data_dir()/"builderrc"); + start_files.push_back(FS::get_user_data_dir()/"rc"); for(list::const_iterator i=start_files.begin(); i!=start_files.end(); ++i) if(FS::exists(*i)) builder.load_build_file(*i); @@ -165,6 +168,18 @@ BuilderCLI::BuilderCLI(int argc, char **argv): builder.set_build_type(build_type); builder.add_default_tools(); + + const Toolchain &toolchain = builder.get_toolchain(); + for(Config::InputOptions::iterator i=cmdline_options.begin(); i!=cmdline_options.end(); ) + { + if(toolchain.has_tool(i->first)) + { + toolchain.get_tool(i->first).set_command(i->second); + cmdline_options.erase(i++); + } + else + ++i; + } } BuilderCLI::~BuilderCLI()