+ StringList sources;
+ bool install;
+ BuildInfo build_info;
+ PackageList requires;
+ bool deflt;
+
+public:
+ Component(SourcePackage &, Type, const std::string &);
+ const SourcePackage &get_package() const { return pkg; }
+ Type get_type() const { return type; }
+ const std::string &get_name() const { return name; }
+ const StringList &get_sources() const { return sources; }
+ const BuildInfo &get_build_info() const { return build_info; }
+ bool get_install() const { return install; }
+ const PackageList &get_requires() const { return requires; }
+ bool is_default() const { return deflt; }
+
+ void configure(const StringMap &, unsigned);
+
+ /** Prepares the build information for building. Pulls build info from the
+ parent and dependency packages, and adds any component-specific flags. */
+ void create_build_info();
+
+ void create_targets() const;
+
+protected:
+ /** Returns a list of all source files for the component. */
+ PathList collect_source_files() const;