X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbuilder.cpp;h=665983100894acad49db12d8eb478055713c9ad8;hb=c3fa3cda6a700d739872025194e9a6b530ac8764;hp=7b0f0187f762cf03defc63645cc285f9db647934;hpb=f515e91176cb4fcb1df379cdf664c90b3a565c95;p=builder.git diff --git a/source/builder.cpp b/source/builder.cpp index 7b0f018..6659831 100644 --- a/source/builder.cpp +++ b/source/builder.cpp @@ -55,7 +55,7 @@ Builder::Builder(int argc, char **argv): string analyze_mode; string work_dir; bool full_paths = false; - unsigned max_depth = 5; + unsigned max_depth = 4; StringList cmdline_warn; string prfx; string temp_str; @@ -67,14 +67,14 @@ Builder::Builder(int argc, char **argv): string build_type_name; GetOpt getopt; - getopt.add_option('a', "analyze", analyze_mode, GetOpt::REQUIRED_ARG).set_help("Perform analysis. MODE can be deps, alldeps or rebuild.", "MODE"); - getopt.add_option('b', "build", build, GetOpt::NO_ARG).set_help("Perform build even if doing analysis."); + getopt.add_option('a', "analyze", analyze_mode, GetOpt::REQUIRED_ARG).set_help("Perform dependency analysis.", "MODE"); + getopt.add_option('b', "build", build, GetOpt::NO_ARG).set_help("Perform build even if also doing something else."); getopt.add_option('c', "clean", clean, GetOpt::NO_ARG).set_help("Clean buildable targets."); - getopt.add_option('f', "file", build_file, GetOpt::REQUIRED_ARG).set_help("Read info from FILE instead of Build.", "FILE"); + getopt.add_option('f', "file", build_file, GetOpt::REQUIRED_ARG).set_help("Read build instructions from FILE.", "FILE"); getopt.add_option('h', "help", help, GetOpt::NO_ARG).set_help("Print this message."); - getopt.add_option('j', "jobs", jobs, GetOpt::REQUIRED_ARG).set_help("Run NUM commands at once, whenever possible.", "NUM"); - getopt.add_option('l', "log", log_channels, GetOpt::REQUIRED_ARG).set_help("Set log channels to be displayed.", "LIST"); - getopt.add_option('n', "dry-run", dry_run, GetOpt::NO_ARG).set_help("Don't actually do anything, only show what would be done."); + getopt.add_option('j', "jobs", jobs, GetOpt::REQUIRED_ARG).set_help("Run up to NUM tasks in parallel.", "NUM"); + getopt.add_option('l', "log", log_channels, GetOpt::REQUIRED_ARG).set_help("Enable listed log channels.", "LIST"); + getopt.add_option('n', "dry-run", dry_run, GetOpt::NO_ARG).set_help("Show what would be done without actually doing it."); getopt.add_option('s', "silent", silent, GetOpt::NO_ARG).set_help("Don't print any messages other than errors."); getopt.add_option('t', "build-type", build_type_name, GetOpt::REQUIRED_ARG).set_help("Set build type.", "TYPE"); getopt.add_option('v', "verbose", verbose, GetOpt::NO_ARG).set_help("Print more information about what's going on."); @@ -87,7 +87,7 @@ Builder::Builder(int argc, char **argv): getopt.add_option( "arch", arch, GetOpt::REQUIRED_ARG).set_help("Build for architecture ARCH.", "ARCH"); getopt.add_option( "conf-only", conf_only, GetOpt::NO_ARG).set_help("Stop after configuring packages."); getopt.add_option( "full-paths", full_paths, GetOpt::NO_ARG).set_help("Output full paths in analysis."); - getopt.add_option( "max-depth", max_depth, GetOpt::REQUIRED_ARG).set_help("Show up to NUM levels in analysis..", "NUM"); + getopt.add_option( "max-depth", max_depth, GetOpt::REQUIRED_ARG).set_help("Show up to NUM levels in analysis.", "NUM"); getopt.add_option( "prefix", prfx, GetOpt::REQUIRED_ARG).set_help("Install things to DIR.", "DIR"); getopt.add_option( "tempdir", temp_str, GetOpt::REQUIRED_ARG).set_help("Store temporary files in DIR.", "DIR"); usagemsg = getopt.generate_usage(argv[0])+" [ ...]"; @@ -108,20 +108,10 @@ Builder::Builder(int argc, char **argv): logger.enable_channel("commands"); } if(verbose>=3) - { - logger.enable_channel("packagemgr"); - logger.enable_channel("configure"); - } - if(verbose>=4) { logger.enable_channel("files"); logger.enable_channel("auxcommands"); } - if(verbose>=5) - { - logger.enable_channel("tools"); - logger.enable_channel("vfs"); - } for(list::const_iterator i=log_channels.begin(); i!=log_channels.end(); ++i) { vector parts = split(*i, ','); @@ -307,7 +297,7 @@ int Builder::main() if(clean) exit_code = do_clean(); - else if(build) + if(build) exit_code = do_build(); return exit_code; @@ -560,9 +550,11 @@ int Builder::do_clean() } for(set::iterator i=clean_tgts.begin(); i!=clean_tgts.end(); ++i) - if(FileTarget *ft = dynamic_cast(*i)) - if(ft->get_mtime()) - FS::unlink(ft->get_path()); + { + logger.log("tasks", format("RM %s", (*i)->get_name())); + if(!dry_run) + (*i)->clean(); + } return 0; }