+/* $Id$
+
+This file is part of builder
+Copyright © 2006-2009 Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
#ifndef EXECUTABLE_H_
#define EXECUTABLE_H_
class Component;
class ObjectFile;
+/**
+Produces a binary file, which may be either a standalone executable or a shared
+library.
+*/
class Executable: public Target
{
+private:
+ const Component ∁
+
public:
Executable(Builder &, const Component &, const std::list<ObjectFile *> &);
- const char *get_type() const { return "Executable"; }
- void find_depends();
- Action *build();
+ virtual const char *get_type() const { return "Executable"; }
+ const Component &get_component() const { return comp; }
+ virtual void find_depends();
private:
- const Component ∁
+ virtual Action *create_action();
+ /** Returns the name for the executable. We can't do this in the
+ constructor since we need to pass the value to the Target c'tor. */
static std::string generate_target_name(const Component &);
};