]> git.tdb.fi Git - builder.git/blobdiff - source/package.h
Split class Package into SourcePackage and BinaryPackage
[builder.git] / source / package.h
index 90ee6bc510abc941262d884146c6d053db32f522..f8ef7451d6c59fed1bd6ac316cd407b86c5d3161 100644 (file)
@@ -12,11 +12,6 @@ Distributed under the LGPL
 #include <string>
 #include <msp/datafile/loader.h>
 #include "buildinfo.h"
-#include "component.h"
-#include "condition.h"
-#include "config.h"
-#include "dependencycache.h"
-#include "feature.h"
 #include "packageref.h"
 
 class Builder;
@@ -32,89 +27,42 @@ to determine where files are installed and which features to include.
 class Package
 {
 public:
-       enum InstallFlags
-       {
-               INCLUDE=1,
-               BIN=2,
-               LIB=4,
-               DATA=8
-       };
-
-       /// Loads a package from a file.
        class Loader: public Msp::DataFile::Loader
        {
        public:
                Loader(Package &);
                Package &get_object() { return pkg; }
-       private:
+       protected:
                Package &pkg;
-               
+
                void require(const std::string &);
-               void feature(const std::string &, 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 tar_file(const std::string &);
        };
 
-       Package(Builder &, const std::string &, const Msp::Path::Path &);
-       void                set_path(const Msp::Path::Path &);
        const std::string   &get_name() const           { return name; }
-       const std::string   &get_version() const        { return version; }
-       const std::string   &get_description() const    { return description; }
-       const Msp::Path::Path &get_source() const       { return source; }
-       Msp::Path::Path     get_temp_dir() const;
-       Msp::Path::Path     get_out_dir() const;
-       Msp::Path::Path     get_prefix() const          { return config.get_option("prefix").value; }
-       const ComponentList &get_components() const     { return components; }
-       bool                get_buildable() const       { return buildable; }
-       const Config        &get_config() const         { return config; }
+       Builder             &get_builder() const        { return builder; }
        const PkgRefList    &get_requires() const       { return requires; }
-       const BuildInfo     &get_build_info() const     { return build_info; }
        const BuildInfo     &get_exported_binfo() const { return export_binfo; }
-       Builder             &get_builder() const        { return builder; }
-       bool                get_need_path() const       { return need_path; }
-       unsigned            get_install_flags();
-       bool                get_use_pkgconfig() const   { return use_pkgconfig; }
-       const std::string   &get_arch() const           { return config.get_option("arch").value; }
-       LibMode             get_library_mode() const;
-       const PathList      &get_tar_files() const      { return tar_files; }
-       DependencyCache     &get_deps_cache() const     { return deps_cache; }
-       void                resolve_refs();
-       void                configure(const StringMap &, unsigned);
 
-       static Package *create(Builder &, const std::string &);
-private:
+       /// Indicates whether or not this package supports pkg-config
+       bool get_use_pkgconfig() const { return use_pkgconfig; }
+
+       virtual void        resolve_refs();
+       void                configure(const StringMap &, unsigned);
+       virtual ~Package() { }
+protected:
        Builder       &builder;
-       
+
        std::string   name;
-       std::string   version;
-       std::string   description;
-       
-       bool          buildable;
-       Msp::Path::Path source;
+
        PkgRefList    requires;
-       PackageList   all_reqs;
-       FeatureList   features;
-       BuildInfo     build_info;
        BuildInfo     export_binfo;
-       ConditionList conditions;
-       ComponentList components;
-       Config        config;
        bool          conf_done;
-       mutable DependencyCache deps_cache;
-       PathList      tar_files;
 
        bool          use_pkgconfig;
-       bool          need_path;
-       Msp::Path::Path path;
 
-       Package(Builder &, const std::string &, const std::vector<std::string> &);
-       void     init_config();
-       void     create_build_info();
+       Package(Builder &, const std::string &);
+       virtual void do_configure(const StringMap &, unsigned) { }
+       virtual void create_build_info() { }
 };
 
 #endif