]> git.tdb.fi Git - builder.git/blobdiff - source/packagemanager.h
Generate export definitions with dlltool
[builder.git] / source / packagemanager.h
index 96c3dcacdb1809bc0ab4ae8040c9a40ccd5d8ac5..9fb373ec48152b70a16a5e56b93604c08176b38c 100644 (file)
@@ -24,13 +24,24 @@ private:
        Builder &builder;
        SearchPath pkg_path;
        SearchPath pkg_dirs;
+       SearchPath binpkg_path;
+       SearchPath binpkg_files;
        bool no_externals;
        PackageMap packages;
+       std::set<std::string> 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. */
@@ -41,15 +52,20 @@ public:
 
        const PackageMap &get_packages() const { return packages; }
 
-       /** Locates a package and creates it if necessary. */
+       /** 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. */
+       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 &);
 };
 
 #endif