]> git.tdb.fi Git - builder.git/blob - source/binary.h
Refactor transitive dependencies to work on all targets
[builder.git] / source / binary.h
1 #ifndef BINARY_H_
2 #define BINARY_H_
3
4 #include "buildinfo.h"
5 #include "filetarget.h"
6
7 class Component;
8 class ObjectFile;
9
10 /**
11 Produces a binary file, which may be either a standalone executable or a shared
12 library.
13 */
14 class Binary: public FileTarget
15 {
16 private:
17         BuildInfo static_binfo;
18
19 protected:
20         std::list<ObjectFile *> objects;
21
22         Binary(Builder &, const Msp::FS::Path &);
23         Binary(Builder &, const Component &, const std::string &, const std::list<ObjectFile *> &);
24
25 public:
26         virtual void collect_build_info(BuildInfo &) const;
27
28 protected:
29         virtual void find_dependencies();
30 };
31
32 #endif