-/* $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.
*/
public:
enum InstallFlags
{
- INCLUDE=1,
- BIN=2,
- LIB=4,
- DATA=8
+ INCLUDE = 1,
+ BIN = 2,
+ LIB = 4,
+ DATA = 8
};
class Loader: public Package::Loader
Loader(Package &);
SourcePackage &get_object() { return static_cast<SourcePackage &>(pkg); }
private:
+ virtual void finish();
void feature(const std::string &, const std::string &);
+ template<Component::Type>
+ void component(const std::string &);
void condition(const std::string &);
- void program(const std::string &);
- void library(const std::string &);
- void module(const std::string &);
- void headers(const std::string &);
void build_info();
+ void tarball(const std::string &);
void tar_file(const std::string &);
};
std::string description;
Msp::FS::Path source;
- PackageList base_reqs;
FeatureList features;
BuildInfo build_info;
ConditionList conditions;
ComponentList components;
Config config;
- bool conf_done;
mutable DependencyCache deps_cache;
- PathList tar_files;
public:
SourcePackage(Builder &, const std::string &, const Msp::FS::Path &);
unsigned get_install_flags();
LibMode get_library_mode() const;
- const PathList &get_tar_files() const { return tar_files; }
DependencyCache &get_deps_cache() const { return deps_cache; }
+ std::string expand_string(const std::string &) const;
private:
virtual void do_configure(const StringMap &, unsigned);