-/* $Id$
-
-This file is part of builder
-Copyright © 2007-2009 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
#ifndef SOURCEPACKAGE_H_
#define SOURCEPACKAGE_H_
+#include <stdexcept>
#include <string>
#include "buildinfo.h"
#include "component.h"
class Builder;
+class bad_expansion: public std::runtime_error
+{
+public:
+ bad_expansion(const std::string &w): std::runtime_error(w) { }
+ virtual ~bad_expansion() throw() { }
+};
+
/**
A package that can be built by Builder.
*/
DATA = 8
};
- class Loader: public Package::Loader
+ class Loader: public Msp::DataFile::DerivedObjectLoader<SourcePackage, Package>
{
+ private:
+ std::map<std::string, std::string> install_map;
+
public:
- Loader(Package &);
- SourcePackage &get_object() { return static_cast<SourcePackage &>(pkg); }
+ Loader(SourcePackage &);
private:
virtual void finish();
void feature(const std::string &, const std::string &);
void component(const std::string &);
void condition(const std::string &);
void build_info();
+ void headers(const std::string &);
void tarball(const std::string &);
void tar_file(const std::string &);
};
LibMode get_library_mode() const;
DependencyCache &get_deps_cache() const { return deps_cache; }
+ std::string expand_string(const std::string &) const;
private:
virtual void do_configure(const StringMap &, unsigned);
/** Fills in build info based on configuration. All required packages must be
configured when this is called. */
virtual void create_build_info();
+
+ virtual void create_targets();
};
#endif