]> git.tdb.fi Git - builder.git/blobdiff - source/package.h
Replace per-file copyright notices with a single file
[builder.git] / source / package.h
index f8ef7451d6c59fed1bd6ac316cd407b86c5d3161..e63fd77ff09fd26d50ba670e1c33a129a0ff12ab 100644 (file)
@@ -1,10 +1,3 @@
-/* $Id$
-
-This file is part of builder
-Copyright © 2006-2007 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
 #ifndef PACKAGE_H_
 #define PACKAGE_H_
 
@@ -12,7 +5,6 @@ Distributed under the LGPL
 #include <string>
 #include <msp/datafile/loader.h>
 #include "buildinfo.h"
-#include "packageref.h"
 
 class Builder;
 class Package;
@@ -20,9 +12,9 @@ class Package;
 typedef std::list<Package *> PackageList;
 
 /**
-A package is a distributable piece of software.  They consist of one or more
-Components and may depend on other packages.  Packages also have configuration
-to determine where files are installed and which features to include.
+A package is a distributable piece of software.  Package information may be
+obtained in several ways: Build files of source packages, pkg-config for binary
+packages and the builderrc file for binary packages with no pkg-config support.
 */
 class Package
 {
@@ -38,29 +30,36 @@ public:
                void require(const std::string &);
        };
 
-       const std::string   &get_name() const           { return name; }
-       Builder             &get_builder() const        { return builder; }
-       const PkgRefList    &get_requires() const       { return requires; }
-       const BuildInfo     &get_exported_binfo() const { return export_binfo; }
+protected:
+       Builder &builder;
+
+       std::string name;
 
-       /// Indicates whether or not this package supports pkg-config
-       bool get_use_pkgconfig() const { return use_pkgconfig; }
+       PackageList requires;
+       BuildInfo export_binfo;
+       bool conf_done;
+
+       bool use_pkgconfig;
 
-       virtual void        resolve_refs();
-       void                configure(const StringMap &, unsigned);
+       Package(Builder &, const std::string &);
+public:
        virtual ~Package() { }
-protected:
-       Builder       &builder;
 
-       std::string   name;
+       const std::string &get_name() const { return name; }
+       Builder &get_builder() const { return builder; }
+       const PackageList &get_requires() const { return requires; }
+
+       const BuildInfo &get_exported_binfo() const { return export_binfo; }
 
-       PkgRefList    requires;
-       BuildInfo     export_binfo;
-       bool          conf_done;
+       /// Indicates whether or not this package supports pkg-config
+       bool get_use_pkgconfig() const { return use_pkgconfig; }
 
-       bool          use_pkgconfig;
+       /** Processes configuration options that were most likely obtained from the
+       command line. */
+       void configure(const StringMap &, unsigned);
 
-       Package(Builder &, const std::string &);
+       bool is_configured() const { return conf_done; }
+protected:
        virtual void do_configure(const StringMap &, unsigned) { }
        virtual void create_build_info() { }
 };