X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbuilder.cpp;h=92f639c9c594e184f617dce0b204677bb7225ea5;hb=278c6bd7ef882ba0fff9be0dfd067cc255ed8059;hp=665983100894acad49db12d8eb478055713c9ad8;hpb=0c1b2a50c95d9bb981b36d3ce522c7094ec5fe0a;p=builder.git diff --git a/source/builder.cpp b/source/builder.cpp index 6659831..92f639c 100644 --- a/source/builder.cpp +++ b/source/builder.cpp @@ -158,6 +158,10 @@ Builder::Builder(int argc, char **argv): cwd = FS::getcwd(); + 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.set_no_externals(no_externals); if(arch.empty()) @@ -165,8 +169,12 @@ Builder::Builder(int argc, char **argv): else current_arch = new Architecture(*this, arch); - load_build_file((FS::get_sys_data_dir(argv[0], "builder")/"builderrc").str()); - load_build_file((FS::get_user_data_dir("builder")/"rc").str()); + 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"); + for(list::const_iterator i=start_files.begin(); i!=start_files.end(); ++i) + if(FS::exists(*i)) + load_build_file(*i); if(prfx.empty()) { @@ -207,7 +215,8 @@ Builder::~Builder() int Builder::main() { - if(load_build_file(cwd/build_file)) + FS::Path main_file = cwd/build_file; + if(!FS::exists(main_file)) { if(help) { @@ -216,11 +225,13 @@ int Builder::main() } else { - IO::print(IO::cerr, "No build info here.\n"); + IO::print(IO::cerr, "The file %s does not exist.\n", main_file); return 1; } } + load_build_file(main_file); + if(help) { usage(0, "builder", false); @@ -345,11 +356,8 @@ void Builder::usage(const char *reason, const char *argv0, bool brief) } } -int Builder::load_build_file(const FS::Path &fn) +void Builder::load_build_file(const FS::Path &fn) { - if(!FS::exists(fn)) - return -1; - IO::BufferedFile in(fn.str()); logger.log("files", format("Reading %s", fn)); @@ -357,8 +365,6 @@ int Builder::load_build_file(const FS::Path &fn) DataFile::Parser parser(in, fn.str()); Loader loader(*this); loader.load(parser); - - return 0; } bool Builder::prepare_build()