#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<BuilderCLI>("builder"),
analyzer(0),
build(false),
clean(0),
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<FS::Path> 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<FS::Path>::const_iterator i=start_files.begin(); i!=start_files.end(); ++i)
if(FS::exists(*i))
builder.load_build_file(*i);
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()