class BinaryPackage: public Package
{
public:
- class Loader: public Package::Loader
+ class Loader: public Msp::DataFile::DerivedObjectLoader<BinaryPackage, Package::Loader>
{
public:
Loader(BinaryPackage &);
- BinaryPackage &get_object() { return static_cast<BinaryPackage &>(pkg); }
private:
void build_info();
+ void header(const std::string &);
};
+ typedef std::vector<std::string> Flags;
+
private:
- bool need_path;
- Msp::FS::Path path;
+ typedef std::list<std::string> HeaderList;
+
+ Msp::FS::Path base_path;
+ HeaderList headers;
+ BuildInfo static_binfo;
public:
BinaryPackage(Builder &, const std::string &);
- /**
- Sets the path where the package's files were installed. This is only useful
- if the package doesn't use pkg-config.
- */
- void set_path(const Msp::FS::Path &);
-
- bool get_need_path() const { return need_path; }
+ const BuildInfo &get_static_build_info() const { return static_binfo; }
- static BinaryPackage *from_pkgconfig(Builder &, const std::string &);
+ static BinaryPackage *from_flags(Builder &, const std::string &, const Flags &, const Flags & = Flags());
private:
- virtual void create_build_info();
+ static void process_flags(const Flags &, BuildInfo &);
+ virtual void do_prepare();
};
#endif