X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fpackagemanager.cpp;h=31b24613b6f4c468957208ae412c68fa9775d656;hb=5e00719d0c63e306786ff36df61797cdbc86f3e9;hp=2319c5a906022ffab072e09eb87531e888d08d95;hpb=21ca3e98081c0dc0430d8e5301591aa71ec4fca2;p=builder.git diff --git a/source/packagemanager.cpp b/source/packagemanager.cpp index 2319c5a..31b2461 100644 --- a/source/packagemanager.cpp +++ b/source/packagemanager.cpp @@ -1,11 +1,11 @@ #include +#include #include #include #include #include -#include #include -#include +#include #include #include "binarypackage.h" #include "builder.h" @@ -25,8 +25,8 @@ PackageManager::PackageManager(Builder &b): PackageManager::~PackageManager() { - for(PackageMap::iterator i=packages.begin(); i!=packages.end(); ++i) - delete i->second; + for(const auto &kvp: packages) + delete kvp.second; } void PackageManager::append_package_path(const FS::Path &p) @@ -46,7 +46,7 @@ void PackageManager::set_no_externals(bool x) void PackageManager::add_package(Package *pkg) { - PackageMap::iterator i = packages.find(pkg->get_name()); + auto i = packages.find(pkg->get_name()); if(i!=packages.end()) { if(i->second!=pkg) @@ -58,12 +58,12 @@ void PackageManager::add_package(Package *pkg) if(packages.empty()) main_pkg = pkg; - packages.insert(PackageMap::value_type(pkg->get_name(), pkg)); + packages.insert({ pkg->get_name(), pkg }); } Package *PackageManager::get_package(const string &name) const { - PackageMap::const_iterator i = packages.find(name); + auto i = packages.find(name); if(i!=packages.end()) return i->second; @@ -91,7 +91,7 @@ Package *PackageManager::find_package(const string &name) if(!path.empty()) { builder.load_build_file(path/"Build"); - PackageMap::iterator i = packages.find(name); + auto i = packages.find(name); if(i!=packages.end()) return i->second; } @@ -113,7 +113,7 @@ Package *PackageManager::find_package(const string &name) flags_str = run_pkgconfig(name, "staticflags"); BinaryPackage::Flags static_flags = split(flags_str); Package *pkg = BinaryPackage::from_flags(builder, name, flags, static_flags); - packages.insert(PackageMap::value_type(name, pkg)); + packages.insert({ name, pkg }); return pkg; } catch(...) @@ -125,6 +125,7 @@ Package *PackageManager::find_package(const string &name) string PackageManager::run_pkgconfig(const string &pkg, const string &what) { +#ifndef _WIN32 if(!env_set) { const FS::Path &prefix = builder.get_prefix(); @@ -134,10 +135,7 @@ string PackageManager::run_pkgconfig(const string &pkg, const string &what) if(const char *pcp = getenv("PKG_CONFIG_PATH")) { vector path = split(pcp, ':'); - bool found = false; - for(vector::const_iterator i=path.begin(); (!found && i!=path.end()); ++i) - found = (*i==pcdir.str()); - if(!found) + if(!any_equals(path, pcdir.str())) { path.push_back(pcdir.str()); setenv("PKG_CONFIG_PATH", join(path.begin(), path.end(), ":").c_str(), true); @@ -163,14 +161,19 @@ string PackageManager::run_pkgconfig(const string &pkg, const string &what) argv.push_back("--variable="+what); argv.push_back(pkg); - builder.get_logger().log("auxcommands", format("Running %s", join(argv.begin(), argv.end()))); + builder.get_logger().log("auxcommands", "Running %s", join(argv.begin(), argv.end())); return ExternalTask::run_and_capture_output(argv); +#else + (void)pkg; + (void)what; + return string(); +#endif } FS::Path PackageManager::get_package_location(const string &name) { - builder.get_logger().log("packagemgr", format("Looking for source package %s", name)); + builder.get_logger().log("packagemgr", "Looking for source package %s", name); try { @@ -184,14 +187,13 @@ FS::Path PackageManager::get_package_location(const string &name) if(pkg_dirs.empty()) { - for(SearchPath::const_iterator i=pkg_path.begin(); i!=pkg_path.end(); ++i) + for(const FS::Path &p: pkg_path) { - builder.get_logger().log("files", format("Traversing %s", *i)); - list files = list_files(*i); + builder.get_logger().log("files", "Traversing %s", p); unsigned count = 0; - for(list::const_iterator j=files.begin(); j!=files.end(); ++j) + for(const string &f: list_files(p)) { - FS::Path full = *i / *j; + FS::Path full = p/f; if(FS::exists(full/"Build")) { pkg_dirs.push_back(full); @@ -199,22 +201,22 @@ FS::Path PackageManager::get_package_location(const string &name) } } - builder.get_logger().log("packagemgr", format("%d source packages found in %s", count, *i)); + builder.get_logger().log("packagemgr", "%d source packages found in %s", count, p); } - builder.get_logger().log("packagemgr", format("%d source packages found", pkg_dirs.size())); + builder.get_logger().log("packagemgr", "%d source packages found", pkg_dirs.size()); } bool msp = !name.compare(0, 3, "msp"); - for(SearchPath::const_iterator i=pkg_dirs.begin(); i!=pkg_dirs.end(); ++i) + for(const FS::Path &p: pkg_dirs) { - string base = FS::basename(*i); + string base = FS::basename(p); unsigned dash = base.rfind('-'); if(!base.compare(0, dash, name)) - return *i; + return p; else if(msp && !base.compare(0, dash, name, 3, string::npos)) - return *i; + return p; } return FS::Path(); @@ -222,34 +224,31 @@ FS::Path PackageManager::get_package_location(const string &name) FS::Path PackageManager::get_binary_package_file(const string &name) { - builder.get_logger().log("packagemgr", format("Looking for binary package %s", name)); + builder.get_logger().log("packagemgr", "Looking for binary package %s", name); if(binpkg_files.empty()) { - for(list::const_iterator i=binpkg_path.begin(); i!=binpkg_path.end(); ++i) + for(const FS::Path &p: binpkg_path) { - builder.get_logger().log("files", format("Traversing %s", *i)); - list files = list_filtered(*i, "\\.bpk$"); - for(list::const_iterator j=files.begin(); j!=files.end(); ++j) - binpkg_files.push_back(*i / *j); - builder.get_logger().log("packagemgr", format("%d binary packages found in %s", files.size(), *i)); + builder.get_logger().log("files", "Traversing %s", p); + vector files = list_filtered(p, "\\.bpk$"); + for(const string &f: files) + binpkg_files.push_back(p/f); + builder.get_logger().log("packagemgr", "%d binary packages found in %s", files.size(), p); } - builder.get_logger().log("packagemgr", format("%d binary packages found", binpkg_files.size())); + builder.get_logger().log("packagemgr", "%d binary packages found", binpkg_files.size()); } - for(SearchPath::const_iterator i=binpkg_files.begin(); i!=binpkg_files.end(); ++i) - { - string base = FS::basepart(FS::basename(*i)); - if(base==name) - return *i; - } + auto i = find_if(binpkg_files, [&name](const FS::Path &p){ return FS::basepart(FS::basename(p))==name; }); + if(i!=binpkg_files.end()) + return *i; return FS::Path(); } void PackageManager::save_all_caches() const { - for(PackageMap::const_iterator i=packages.begin(); i!=packages.end(); ++i) - i->second->save_caches(); + for(const auto &kvp: packages) + kvp.second->save_caches(); }