]> git.tdb.fi Git - builder.git/blobdiff - source/sourcepackage.h
Make Target::add_depend take a reference since null is not allowed
[builder.git] / source / sourcepackage.h
index 5218592ff9d0a0743957b17bf24e70fbe8cf2315..11f47940dc29f8712a79cd1da203bfe39d52d19d 100644 (file)
@@ -1,13 +1,7 @@
-/* $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"
@@ -19,6 +13,13 @@ Distributed under the LGPL
 
 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.
 */
@@ -33,11 +34,13 @@ public:
                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 &);
@@ -45,6 +48,7 @@ public:
                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 &);
        };
@@ -91,6 +95,8 @@ private:
        /** 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