## IdeBuildSystemDiscovery IdeBuildSystemDiscovery |

## Functions

gchar * | ide_build_system_discovery_discover ()

## Types and Values

#define | IDE_TYPE_BUILD_SYSTEM_DISCOVERY
struct | IdeBuildSystemDiscoveryInterface
| IdeBuildSystemDiscovery

## Object Hierarchy

        GInterface
        ╰── IdeBuildSystemDiscovery

## Prerequisites

IdeBuildSystemDiscovery requires GObject.

## Known Implementations

IdeBuildSystemDiscovery is implemented by IdeSimpleBuildSystemDiscovery.

## Description

## Functions

### ide_build_system_discovery_discover ()

    gchar *
    ide_build_system_discovery_discover (IdeBuildSystemDiscovery *self,
                                         GFile *project_file,
                                         GCancellable *cancellable,
                                         gint *priority,
                                         GError **error);

This virtual method can be used to try to discover the build system to use for a particular project. This might be used in cases like Flatpak where the build system can be determined from the .json manifest rather than auto-discovery by locating project files.

#### Parameters

self | An IdeBuildSystemDiscovery |
project_file | a GFile containing the project file (a directory) |
cancellable | a GCancellable or `NULL`. | [nullable]
priority | A location for the priority. | [out]
error | a location for a GError or `NULL` |

#### Returns

The hint for the build system, which should match what the build system returns from `ide_build_system_get_id()`.

[transfer full]

Since: 3.32

## Types and Values

### IDE_TYPE_BUILD_SYSTEM_DISCOVERY

    #define IDE_TYPE_BUILD_SYSTEM_DISCOVERY (ide_build_system_discovery_get_type())

### struct IdeBuildSystemDiscoveryInterface

    struct IdeBuildSystemDiscoveryInterface {
      GTypeInterface parent_iface;

      gchar *(*discover) (IdeBuildSystemDiscovery  *self,
                          GFile                    *project_file,
                          GCancellable             *cancellable,
                          gint                     *priority,
                          GError                  **error);
    };

### IdeBuildSystemDiscovery

    typedef struct _IdeBuildSystemDiscovery IdeBuildSystemDiscovery;