--- /dev/null
+#ifndef BINARYCOMPONENT_H_
+#define BINARYCOMPONENT_H_
+
+#include "component.h"
+
+class BinaryComponent: public Component
+{
+public:
+ class Loader: public Msp::DataFile::DerivedObjectLoader<BinaryComponent, Component::Loader>
+ {
+ public:
+ Loader(BinaryComponent &);
+ private:
+ void use(const std::string &);
+ };
+
+ enum Type
+ {
+ LIBRARY,
+ PROGRAM,
+ MODULE
+ };
+
+private:
+ typedef std::list<const Component *> UseList;
+
+ Type type;
+ UseList uses;
+
+public:
+ BinaryComponent(SourcePackage &, const std::string &, Type);
+
+ Type get_type() const { return type; }
+
+ virtual void create_build_info();
+ virtual void update_exported_build_info(BuildInfo &) const;
+ virtual void create_targets() const;
+};
+
+#endif