X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fpackagemanager.h;h=22f1eacfbbe6eaf3eabce855ed69aa2350dc4ceb;hb=d1f9551e05c9d341149eb490e05b1465d3d6b711;hp=9b4f3476d7a2ae821650bdd5118434d1a0546d10;hpb=c45cc6fd2b13513909d43b5f95370b00c8b4c25e;p=builder.git diff --git a/source/packagemanager.h b/source/packagemanager.h index 9b4f347..22f1eac 100644 --- a/source/packagemanager.h +++ b/source/packagemanager.h @@ -1,9 +1,10 @@ #ifndef PACKAGEMANAGER_H_ #define PACKAGEMANAGER_H_ -#include #include +#include #include +#include #include class Builder; @@ -15,22 +16,17 @@ packages by name. */ class PackageManager { -public: - typedef std::map PackageMap; - private: - typedef std::list SearchPath; - Builder &builder; - SearchPath pkg_path; - SearchPath pkg_dirs; - SearchPath binpkg_path; - SearchPath binpkg_files; - bool no_externals; - PackageMap packages; - Package *main_pkg; + std::vector pkg_path; + std::vector pkg_dirs; + std::vector binpkg_path; + std::vector binpkg_files; + bool no_externals = false; + std::map packages; + Package *main_pkg = 0; std::set not_found; - bool env_set; + bool env_set = false; public: PackageManager(Builder &); @@ -55,7 +51,7 @@ public: the primary build target. */ Package &get_main_package() const; - const PackageMap &get_packages() const { return packages; } + const std::map &get_packages() const { return packages; } /** Locates a package and loads it if necessary. */ Package *find_package(const std::string &); @@ -71,6 +67,9 @@ private: /** Determines the file containing a binary package. The file is expected to be named after the package. */ Msp::FS::Path get_binary_package_file(const std::string &); + +public: + void save_all_caches() const; }; #endif