]> git.tdb.fi Git - builder.git/blobdiff - source/component.h
Collect libpath for static library dependencies from the libs themselves
[builder.git] / source / component.h
index 09767d37437fa8aa4f38a241e2c37a54d13307b8..7cbd1e13cbe1f0099522161e4e2eb74c708fcad3 100644 (file)
@@ -28,6 +28,7 @@ public:
                void if_arch(const std::string &);
                void if_feature(const std::string &);
                void install_map();
+               void overlay(const std::string &);
                void require(const std::string &);
                void source(const std::string &);
                void use(const std::string &);
@@ -44,6 +45,7 @@ public:
        };
 
        typedef std::list<Msp::FS::Path> SourceList;
+       typedef std::list<std::string> OverlayList;
        typedef std::list<const Component *> UseList;
 
 protected:
@@ -51,12 +53,14 @@ protected:
        Type type;
        std::string name;
        SourceList sources;
+       OverlayList overlays;
        bool install;
        BuildInfo build_info;
        Package::Requirements requires;
        UseList uses;
        bool deflt;
        InstallMap install_map;
+       std::list<std::string> problems;
 
 public:
        Component(SourcePackage &, Type, const std::string &);
@@ -69,6 +73,8 @@ public:
        directories or individual files. */
        const SourceList &get_sources() const { return sources; }
 
+       const OverlayList &get_overlays() const { return overlays; }
+
 protected:
        /** Returns a list of all source files for the component. */
        SourceList collect_source_files() const;
@@ -79,6 +85,7 @@ public:
        const Package::Requirements &get_required_packages() const { return requires; }
        const UseList &get_used_components() const { return uses; }
        bool is_default() const { return deflt; }
+       const std::list<std::string> &get_problems() const { return problems; }
 
        /** Prepares any required packages. */
        void prepare();
@@ -89,6 +96,8 @@ public:
 
        const BuildInfo &get_build_info() const { return build_info; }
 
+       BuildInfo get_build_info_for_path(const Msp::FS::Path &) const;
+
        void create_targets() const;
 };