X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbuildercli.cpp;h=c7a2817ce4d6315ea99f33c3e414049c49f8b083;hb=ab1c7f6580c80b7f02ffc8a01199463fc881488b;hp=0ce2bdc4ababa4a259820e0097e1214789df250c;hpb=9fe1e6827bba49c102f0186904922ca0a78852c6;p=builder.git diff --git a/source/buildercli.cpp b/source/buildercli.cpp index 0ce2bdc..c7a2817 100644 --- a/source/buildercli.cpp +++ b/source/buildercli.cpp @@ -15,6 +15,7 @@ using namespace std; using namespace Msp; BuilderCLI::BuilderCLI(int argc, char **argv): + RegisteredApplication("builder"), analyzer(0), build(false), clean(0), @@ -144,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); + builder.set_architecture(tolower(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); @@ -190,7 +191,11 @@ int BuilderCLI::main() { 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); @@ -285,6 +290,9 @@ int BuilderCLI::main() if(build) exit_code = builder.build(jobs, dry_run, show_progress); + if(!dry_run) + builder.save_caches(); + return exit_code; } @@ -351,16 +359,22 @@ 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(); - - 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()) {