#include <msp/parser/loader.h>
#include <msp/path/path.h>
#include "buildinfo.h"
+#include "misc.h"
+#include "packageref.h"
class Package;
Component ∁
void source(const std::string &);
+ void require(const std::string &);
+ void build_info();
};
enum Type
{
PROGRAM,
LIBRARY,
- MODULE
+ MODULE,
+ HEADERS
};
Component(Package &, Type, const std::string &);
- const Package &get_package() const { return pkg; }
- Type get_type() const { return type; }
- const std::string &get_name() const { return name; }
- const Msp::Path::Path &get_source() const { return source; }
- const BuildInfo &get_build_info() const { return build_info; }
+ const Package &get_package() const { return pkg; }
+ Type get_type() const { return type; }
+ const std::string &get_name() const { return name; }
+ const PathList &get_sources() const { return sources; }
+ const BuildInfo &get_build_info() const { return build_info; }
+ bool get_install() const { return install; }
+ const std::string &get_install_headers() const { return install_headers; }
+ void resolve_refs();
+ void create_build_info();
protected:
Package &pkg;
Type type;
std::string name;
- Msp::Path::Path source;
+ PathList sources;
bool install;
std::string install_headers;
BuildInfo build_info;
+ PkgRefList requires;
};
typedef std::list<Component> ComponentList;