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);
+ builder.set_architecture(tolower(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);
{
FS::Path main_file = cwd/build_file;
if(FS::exists(main_file))
+ {
builder.load_build_file(main_file, &cmdline_options, conf_all);
+ if(!dry_run && !cmdline_options.empty())
+ builder.save_caches();
+ }
else if(!help)
{
IO::print(IO::cerr, "The file %s does not exist.\n", main_file);
if(build)
exit_code = builder.build(jobs, dry_run, show_progress);
+ if(!dry_run)
+ builder.save_caches();
+
return exit_code;
}
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();
-
- IO::print("\nRequired packages:\n ");
const Package::Requirements &requires = main_pkg.get_required_packages();
- for(Package::Requirements::const_iterator i=requires.begin(); i!=requires.end(); ++i)
+
+ if(!requires.empty() || !options.empty())
+ IO::print("\nHelp for package %s:\n", main_pkg.get_name());
+
+ if(!requires.empty())
{
- if(i!=requires.begin())
- IO::print(", ");
- IO::print((*i)->get_name());
+ IO::print("\nRequired packages:\n ");
+ for(Package::Requirements::const_iterator i=requires.begin(); i!=requires.end(); ++i)
+ {
+ if(i!=requires.begin())
+ IO::print(", ");
+ IO::print((*i)->get_name());
+ }
+ IO::print("\n");
}
- IO::print("\n");
if(!options.empty())
{