### Interface

# Ide BuildSystem

#### Description

    interface Ide.BuildSystem : Ide.Object

No description available.

#### Prerequisite

In order to implement BuildSystem, your type must inherit from `IdeObject`.

#### Implementations

- IdeFallbackBuildSystem

#### Functions

###### ide_build_system_from_context

Gets the build system for the context. If no build system has been registered, then this returns `NULL`.

#### Instance methods

###### ide_build_system_get_build_flags_async

No description available.

###### ide_build_system_get_build_flags_finish

No description available.

Available since: 3.32

###### ide_build_system_get_build_flags_for_dir_async

No description available.

###### ide_build_system_get_build_flags_for_dir_finish

No description available.

Available since: 3.32

###### ide_build_system_get_build_flags_for_files_async

This function will get build flags for all files and returns map of file and its build flags as `GHashTable`.

Available since: 3.32

###### ide_build_system_get_build_flags_for_files_finish

No description available.

Available since: 3.32

###### ide_build_system_get_builddir

No description available.

###### ide_build_system_get_display_name

No description available.

###### ide_build_system_get_id

No description available.

###### ide_build_system_get_priority

No description available.

###### ide_build_system_get_project_version

If the build system supports it, gets the project version as configured in the build system’s configuration files.

Available since: 3.32

###### ide_build_system_supports_language

Returns `TRUE` if `self` in it’s current configuration is known to support `language`.

Available since: 41.0

###### ide_build_system_supports_toolchain

Checks whether the build system supports the given toolchain.

Available since: 3.32

#### Properties

###### Ide.BuildSystem:project-file

No description available.

#### Interface structure

    struct IdeBuildSystemInterface {
      GTypeInterface parent_iface;
      gint (* get_priority) (
        IdeBuildSystem* self
      );
      void (* get_build_flags_async) (
        IdeBuildSystem* self,
        GFile* file,
        GCancellable* cancellable,
        GAsyncReadyCallback callback,
        gpointer user_data
      );
      gchar** (* get_build_flags_finish) (
        IdeBuildSystem* self,
        GAsyncResult* result,
        GError** error
      );
      void (* get_build_flags_for_files_async) (
        IdeBuildSystem* self,
        GPtrArray* files,
        GCancellable* cancellable,
        GAsyncReadyCallback callback,
        gpointer user_data
      );
      GHashTable* (* get_build_flags_for_files_finish) (
        IdeBuildSystem* self,
        GAsyncResult* result,
        GError** error
      );
      gchar* (* get_builddir) (
        IdeBuildSystem* self,
        IdePipeline* pipeline
      );
      gchar* (* get_id) (
        IdeBuildSystem* self
      );
      gchar* (* get_display_name) (
        IdeBuildSystem* self
      );
      gboolean (* supports_toolchain) (
        IdeBuildSystem* self,
        IdeToolchain* toolchain
      );
      gchar* (* get_project_version) (
        IdeBuildSystem* self
      );
      gboolean (* supports_language) (
        IdeBuildSystem* self,
        const char* language
      );

    }

###### Interface members

`parent_iface` |
    GTypeInterface
| No description available.
`get_priority` |
    gint (* get_priority) (
        IdeBuildSystem* self
      )
| No description available.
`get_build_flags_async` |
    void (* get_build_flags_async) (
        IdeBuildSystem* self,
        GFile* file,
        GCancellable* cancellable,
        GAsyncReadyCallback callback,
        gpointer user_data
      )
| No description available.
`get_build_flags_finish` |
    gchar** (* get_build_flags_finish) (
        IdeBuildSystem* self,
        GAsyncResult* result,
        GError** error
      )
| No description available.
`get_build_flags_for_files_async` |
    void (* get_build_flags_for_files_async) (
        IdeBuildSystem* self,
        GPtrArray* files,
        GCancellable* cancellable,
        GAsyncReadyCallback callback,
        gpointer user_data
      )
| No description available.
`get_build_flags_for_files_finish` |
    GHashTable* (* get_build_flags_for_files_finish) (
        IdeBuildSystem* self,
        GAsyncResult* result,
        GError** error
      )
| No description available.
`get_builddir` |
    gchar* (* get_builddir) (
        IdeBuildSystem* self,
        IdePipeline* pipeline
      )
| No description available.
`get_id` |
    gchar* (* get_id) (
        IdeBuildSystem* self
      )
| No description available.
`get_display_name` |
    gchar* (* get_display_name) (
        IdeBuildSystem* self
      )
| No description available.
`supports_toolchain` |
    gboolean (* supports_toolchain) (
        IdeBuildSystem* self,
        IdeToolchain* toolchain
      )
| No description available.
`get_project_version` |
    gchar* (* get_project_version) (
        IdeBuildSystem* self
      )
| No description available.
`supports_language` |
    gboolean (* supports_language) (
        IdeBuildSystem* self,
        const char* language
      )
| No description available.

#### Virtual methods

###### Ide.BuildSystem.get_build_flags_async

No description available.

###### Ide.BuildSystem.get_build_flags_finish

No description available.

###### Ide.BuildSystem.get_build_flags_for_files_async

This function will get build flags for all files and returns map of file and its build flags as `GHashTable`.

###### Ide.BuildSystem.get_build_flags_for_files_finish

No description available.

###### Ide.BuildSystem.get_builddir

No description available.

###### Ide.BuildSystem.get_display_name

No description available.

###### Ide.BuildSystem.get_id

No description available.

###### Ide.BuildSystem.get_priority

No description available.

###### Ide.BuildSystem.get_project_version

If the build system supports it, gets the project version as configured in the build system’s configuration files.

###### Ide.BuildSystem.supports_language

Returns `TRUE` if `self` in it’s current configuration is known to support `language`.

###### Ide.BuildSystem.supports_toolchain

Checks whether the build system supports the given toolchain.