## IAnjutaBuildable IAnjutaBuildable — Implemented by plugins that can build. This interface will be replaced by IAnjutaBuilder (for build functions) and IAnjutaEnvironment for ianjuta_buildable_set_command, ianjuta_buildable_reset_command and ianjuta_buildable_get_command. |

## Stability Level

Obsolete, unless otherwise indicated

## Synopsis

    #include <libanjuta/interfaces/ianjuta-buildable.h>

    #define             IANJUTA_TYPE_BUILDABLE_COMMAND
    #define             IANJUTA_BUILDABLE_ERROR
                        IAnjutaBuildable;
                        IAnjutaBuildableIface;
    enum                IAnjutaBuildableCommand;
    GQuark              ianjuta_buildable_error_quark       (void);
    GType               ianjuta_buildable_get_type          (void);
    void                ianjuta_buildable_build             (IAnjutaBuildable *obj,
                                                             const gchar *uri,
                                                             GError **err);
    void                ianjuta_buildable_clean             (IAnjutaBuildable *obj,
                                                             const gchar *uri,
                                                             GError **err);
    void                ianjuta_buildable_configure         (IAnjutaBuildable *obj,
                                                             const gchar *uri,
                                                             GError **err);
    void                ianjuta_buildable_execute           (IAnjutaBuildable *obj,
                                                             const gchar *uri,
                                                             GError **err);
    void                ianjuta_buildable_generate          (IAnjutaBuildable *obj,
                                                             const gchar *uri,
                                                             GError **err);
    const gchar*        ianjuta_buildable_get_command       (IAnjutaBuildable *obj,
                                                             IAnjutaBuildableCommand command_id,
                                                             GError **err);
    void                ianjuta_buildable_install           (IAnjutaBuildable *obj,
                                                             const gchar *uri,
                                                             GError **err);
    void                ianjuta_buildable_reset_commands    (IAnjutaBuildable *obj,
                                                             GError **err);
    void                ianjuta_buildable_set_command       (IAnjutaBuildable *obj,
                                                             IAnjutaBuildableCommand command_id,
                                                             const gchar *command,
                                                             GError **err);

## Object Hierarchy

      GInterface
       +----IAnjutaBuildable

## Prerequisites

IAnjutaBuildable requires GObject.

## Description

## Details

### IANJUTA_TYPE_BUILDABLE_COMMAND

    #define IANJUTA_TYPE_BUILDABLE_COMMAND (ianjuta_buildable_command_get_type())

### IANJUTA_BUILDABLE_ERROR

    #define IANJUTA_BUILDABLE_ERROR ianjuta_buildable_error_quark()

### IAnjutaBuildable

    typedef struct _IAnjutaBuildable IAnjutaBuildable;

### IAnjutaBuildableIface

    typedef struct {
    	GTypeInterface g_iface;

    	void (*build) (IAnjutaBuildable *obj, const gchar *uri, GError **err);
    	void (*clean) (IAnjutaBuildable *obj, const gchar *uri, GError **err);
    	void (*configure) (IAnjutaBuildable *obj, const gchar *uri, GError **err);
    	void (*execute) (IAnjutaBuildable *obj, const gchar *uri, GError **err);
    	void (*generate) (IAnjutaBuildable *obj, const gchar *uri, GError **err);
    	const gchar* (*get_command) (IAnjutaBuildable *obj, IAnjutaBuildableCommand command_id, GError **err);
    	void (*install) (IAnjutaBuildable *obj, const gchar *uri, GError **err);
    	void (*reset_commands) (IAnjutaBuildable *obj, GError **err);
    	void (*set_command) (IAnjutaBuildable *obj, IAnjutaBuildableCommand command_id,  const gchar *command, GError **err);
    } IAnjutaBuildableIface;

### enum IAnjutaBuildableCommand

    typedef enum {
    	IANJUTA_BUILDABLE_COMMAND_COMPILE,
    	IANJUTA_BUILDABLE_COMMAND_BUILD,
    	IANJUTA_BUILDABLE_COMMAND_BUILD_TARBALL,
    	IANJUTA_BUILDABLE_COMMAND_INSTALL,
    	IANJUTA_BUILDABLE_COMMAND_CONFIGURE,
    	IANJUTA_BUILDABLE_COMMAND_GENERATE,
    	IANJUTA_BUILDABLE_COMMAND_CLEAN,
    	IANJUTA_BUILDABLE_COMMAND_EXECUTE,
    	IANJUTA_BUILDABLE_COMMAND_IS_BUILT,
    	IANJUTA_BUILDABLE_COMMAND_AUTORECONF,
    	IANJUTA_BUILDABLE_COMMAND_DISTCLEAN,
    	IANJUTA_BUILDABLE_N_COMMANDS
    } IAnjutaBuildableCommand;

The enumeration is used to speficy the disered build operation

`IANJUTA_BUILDABLE_COMMAND_COMPILE` | Compile source
`IANJUTA_BUILDABLE_COMMAND_BUILD` | Build file (normally using make)
`IANJUTA_BUILDABLE_COMMAND_BUILD_TARBALL` | make dist
`IANJUTA_BUILDABLE_COMMAND_INSTALL` | make install
`IANJUTA_BUILDABLE_COMMAND_CONFIGURE` | ./configure
`IANJUTA_BUILDABLE_COMMAND_GENERATE` | ./autogen.sh
`IANJUTA_BUILDABLE_COMMAND_CLEAN` | make clean
`IANJUTA_BUILDABLE_COMMAND_EXECUTE` | ./hello
`IANJUTA_BUILDABLE_COMMAND_IS_BUILT` | check whether object files are up-to-date
`IANJUTA_BUILDABLE_COMMAND_AUTORECONF` |
`IANJUTA_BUILDABLE_COMMAND_DISTCLEAN` | make distclean
`IANJUTA_BUILDABLE_N_COMMANDS` | size of enum

### ianjuta_buildable_error_quark ()

    GQuark              ianjuta_buildable_error_quark       (void);

Returns : |

### ianjuta_buildable_get_type ()

    GType               ianjuta_buildable_get_type          (void);

Returns : |

### ianjuta_buildable_build ()

    void                ianjuta_buildable_build             (IAnjutaBuildable *obj,
                                                             const gchar *uri,
                                                             GError **err);

fixme

`obj` : | Self
`uri` : | fixme
`err` : | Error propagation and reporting.

### ianjuta_buildable_clean ()

    void                ianjuta_buildable_clean             (IAnjutaBuildable *obj,
                                                             const gchar *uri,
                                                             GError **err);

fixme

`obj` : | Self
`uri` : | fixme
`err` : | Error propagation and reporting.

### ianjuta_buildable_configure ()

    void                ianjuta_buildable_configure         (IAnjutaBuildable *obj,
                                                             const gchar *uri,
                                                             GError **err);

fixme

`obj` : | Self
`uri` : | fixme
`err` : | Error propagation and reporting.

### ianjuta_buildable_execute ()

    void                ianjuta_buildable_execute           (IAnjutaBuildable *obj,
                                                             const gchar *uri,
                                                             GError **err);

fixme

`obj` : | Self
`uri` : | fixme
`err` : | Error propagation and reporting.

### ianjuta_buildable_generate ()

    void                ianjuta_buildable_generate          (IAnjutaBuildable *obj,
                                                             const gchar *uri,
                                                             GError **err);

fixme

`obj` : | Self
`uri` : | fixme
`err` : | Error propagation and reporting.

### ianjuta_buildable_get_command ()

    const gchar*        ianjuta_buildable_get_command       (IAnjutaBuildable *obj,
                                                             IAnjutaBuildableCommand command_id,
                                                             GError **err);

Retrieves the currently set command override.

`obj` : | Self
`command_id` : | Command to get override.
`err` : | Error propagation and reporting.
Returns : | The overridden command. NULL if no override set.

### ianjuta_buildable_install ()

    void                ianjuta_buildable_install           (IAnjutaBuildable *obj,
                                                             const gchar *uri,
                                                             GError **err);

fixme

`obj` : | Self
`uri` : | fixme
`err` : | Error propagation and reporting.

### ianjuta_buildable_reset_commands ()

    void                ianjuta_buildable_reset_commands    (IAnjutaBuildable *obj,
                                                             GError **err);

Resets the command overrides to defaults.

`obj` : | Self
`err` : | Error propagation and reporting.

### ianjuta_buildable_set_command ()

    void                ianjuta_buildable_set_command       (IAnjutaBuildable *obj,
                                                             IAnjutaBuildableCommand command_id,
                                                             const gchar *command,
                                                             GError **err);

Overrides the default command for the given command.

`obj` : | Self
`command_id` : | Command to override.
`command` : | Build command to override.
`err` : | Error propagation and reporting.