X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fpackagemanager.h;h=b168d723e174739c3c652f376f7f1cefe407cda2;hb=HEAD;hp=d5cfb52e51d5b8493e4adc9d2caf7e4e0319b622;hpb=fefa7d1e8ac40136b690e305ce9594af95c678b8;p=builder.git diff --git a/source/packagemanager.h b/source/packagemanager.h deleted file mode 100644 index d5cfb52..0000000 --- a/source/packagemanager.h +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef PACKAGEMANAGER_H_ -#define PACKAGEMANAGER_H_ - -#include -#include -#include -#include -#include - -class Builder; -class Package; - -/** -Keeps track of packages. Also responsible for locating previously unknown -packages by name. -*/ -class PackageManager -{ -private: - Builder &builder; - std::vector pkg_path; - std::vector pkg_dirs; - std::vector binpkg_path; - std::vector binpkg_files; - bool no_externals; - std::map packages; - Package *main_pkg; - std::set not_found; - bool env_set; - -public: - PackageManager(Builder &); - ~PackageManager(); - - /// Adds a location to look for source packages from. - void append_package_path(const Msp::FS::Path &); - - /// Adds a location to look for binary packages from. - void append_binary_package_path(const Msp::FS::Path &); - - /** Prevent creation of source packages. */ - void set_no_externals(bool); - - /** Adds a package to the manager. Called from Package constructor. */ - void add_package(Package *); - - /** Returns a package from the cache. */ - Package *get_package(const std::string &) const; - - /** Returns the package that was added first. This should be considered - the primary build target. */ - Package &get_main_package() const; - - const std::map &get_packages() const { return packages; } - - /** Locates a package and loads it if necessary. */ - Package *find_package(const std::string &); - -private: - std::string run_pkgconfig(const std::string &, const std::string &); - - /** Determines the source directory of a package. Pkg-config is consulted - first, and if it fails, the package path is searched for matches. The - package is expected to be located in a directory named after itself. */ - Msp::FS::Path get_package_location(const std::string &); - - /** 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