3 This file is part of builder
4 Copyright © 2006-2007 Mikko Rasa, Mikkosoft Productions
5 Distributed under the LGPL
8 #ifndef SOURCEPACKAGE_H_
9 #define SOURCEPACKAGE_H_
12 #include "buildinfo.h"
13 #include "component.h"
14 #include "condition.h"
16 #include "dependencycache.h"
19 #include "packageref.h"
24 A package that can be built by Builder.
26 class SourcePackage: public Package
37 /// Loads a package from a file.
38 class Loader: public Package::Loader
42 SourcePackage &get_object() { return static_cast<SourcePackage &>(pkg); }
44 void feature(const std::string &, const std::string &);
45 void condition(const std::string &);
46 void program(const std::string &);
47 void library(const std::string &);
48 void module(const std::string &);
49 void headers(const std::string &);
51 void tar_file(const std::string &);
54 SourcePackage(Builder &, const std::string &, const Msp::Path::Path &);
55 void set_path(const Msp::Path::Path &);
56 const std::string &get_name() const { return name; }
57 const std::string &get_version() const { return version; }
58 const std::string &get_description() const { return description; }
59 const Msp::Path::Path &get_source() const { return source; }
60 Msp::Path::Path get_temp_dir() const;
61 Msp::Path::Path get_out_dir() const;
62 Msp::Path::Path get_prefix() const { return config.get_option("prefix").value; }
63 const ComponentList &get_components() const { return components; }
64 const Config &get_config() const { return config; }
65 const BuildInfo &get_build_info() const { return build_info; }
66 const BuildInfo &get_exported_binfo() const { return export_binfo; }
67 Builder &get_builder() const { return builder; }
68 unsigned get_install_flags();
69 const std::string &get_arch() const { return config.get_option("arch").value; }
70 LibMode get_library_mode() const;
71 const PathList &get_tar_files() const { return tar_files; }
72 DependencyCache &get_deps_cache() const { return deps_cache; }
73 virtual void resolve_refs();
76 std::string description;
78 Msp::Path::Path source;
82 ConditionList conditions;
83 ComponentList components;
86 mutable DependencyCache deps_cache;
89 //Package(Builder &, const std::string &, const std::vector<std::string> &);
90 virtual void do_configure(const StringMap &, unsigned);
92 virtual void create_build_info();