### Class

# Foundry Sdk

#### Description [src]

    abstract class Foundry.Sdk : Foundry.Contextual
      implements Json.Serializable {
      /* No available fields */
    }

Represents a software development kit (SDK).

FoundrySdk provides information about available SDKs including their architecture, installation status, and capabilities. It integrates with SDK providers to manage SDK discovery, installation, and configuration for various development platforms and toolchains.

#### Ancestors

- FoundryContextual
- GObject

#### Implements

- JsonSerializable

#### Instance methods

###### foundry_sdk_build_simple

This is a much simplified interface for `foundry_sdk_prepare_to_build()` for consumers that just want to run a simple command and get the stdout output of the command.

since: 1.1

###### foundry_sdk_contains_program

Looks for `program` within the SDK.

###### foundry_sdk_discover_shell

Tries to discover the shell to use within the SDK.

###### foundry_sdk_dup_arch

Gets the architecture of the SDK.

###### foundry_sdk_dup_config_option

Gets a config option that should be used as the default to work with this particular SDK.

###### foundry_sdk_dup_id

Gets the user-visible id for the SDK.

###### foundry_sdk_dup_kind

Gets the user-visible kind for the SDK.

###### foundry_sdk_dup_name

Gets the user-visible name for the SDK.

###### foundry_sdk_get_active

No description available.

###### foundry_sdk_get_eol

Gets whether the SDK has reached end of life.

since: 1.1

###### foundry_sdk_get_extension_only

No description available.

###### foundry_sdk_get_installed

No description available.

###### foundry_sdk_install

Installs an SDK.

###### foundry_sdk_prepare_to_build

Prepares `launcher` to be able to build applications.

###### foundry_sdk_prepare_to_run

Prepares `launcher` to be able to run applications.

###### foundry_sdk_set_arch

Set the architecture of the SDK.

###### foundry_sdk_set_extension_only

No description available.

###### foundry_sdk_set_id

Set the unique id of the SDK.

###### foundry_sdk_set_installed

No description available.

###### foundry_sdk_set_kind

Set the user-visible kind of the sdk.

###### foundry_sdk_set_name

Set the user-visible name of the sdk.

###### foundry_sdk_translate_path

This function should be implemented by SDKs so that you can convert a path within the container to a path outside the container.

since: 1.1

##### Methods inherited from FoundryContextual (4)

###### foundry_contextual_acquire

This method provides a checked way to get a `context` for the contextual.

since: 1.1

###### foundry_contextual_dup_context

Gets the `FoundryContext` that `self` is a part of while safely increasing the reference count of the resulting `FoundryContext` by 1.

###### foundry_contextual_inhibit

Creates a new `FoundryInhibitor` that will keep the `FoundryContext` alive and prevent shutdown until `foundry_inhibitor_uninhibit()` is called or the `FoundryInhibitor` is finalized, whichever comes first.

###### foundry_contextual_log

No description available.

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

##### Methods inherited from JsonSerializable (8)

###### json_serializable_default_deserialize_property

Calls the default implementation of the `Json.SerializableIface.deserialize_property` virtual function.

###### json_serializable_default_serialize_property

Calls the default implementation of the `Json.SerializableIface.serialize_property` virtual function.

###### json_serializable_deserialize_property

Asks a `JsonSerializable` implementation to deserialize the property contained inside `property_node` and place its value into `value`.

###### json_serializable_find_property

Calls the `Json.SerializableIface.find_property` implementation on the `JsonSerializable` instance, which will return the property description for the given name.

###### json_serializable_get_property

Calls the `Json.SerializableIface.get_property` implementation on the `JsonSerializable` instance, which will get the value of the given property.

###### json_serializable_list_properties

Calls the `Json.SerializableIface.list_properties` implementation on the `JsonSerializable` instance, which will return the list of serializable properties.

###### json_serializable_serialize_property

Asks a `JsonSerializable` implementation to serialize an object property into a JSON node.

###### json_serializable_set_property

Calls the `Json.SerializableIface.set_property` implementation on the `JsonSerializable` instance, which will set the property with the given value.

#### Properties

###### Foundry.Sdk:active

No description available.

###### Foundry.Sdk:arch

No description available.

###### Foundry.Sdk:eol

Whether the SDK has reached end of life.

since: 1.1

###### Foundry.Sdk:extension-only

No description available.

###### Foundry.Sdk:id

No description available.

###### Foundry.Sdk:installed

No description available.

###### Foundry.Sdk:kind

No description available.

###### Foundry.Sdk:name

No description available.

###### Foundry.Sdk:provider

No description available.

##### Properties inherited from FoundryContextual (1)

###### Foundry.Contextual:context

No description available.

#### Signals

##### Signals inherited from GObject (1)

###### GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

#### Class structure

    struct FoundrySdkClass {
      FoundryContextualClass parent_class;
      DexFuture* (* prepare_to_build) (
        FoundrySdk* self,
        FoundryBuildPipeline* pipeline,
        FoundryProcessLauncher* launcher,
        FoundryBuildPipelinePhase phase
      );
      DexFuture* (* prepare_to_run) (
        FoundrySdk* self,
        FoundryBuildPipeline* pipeline,
        FoundryProcessLauncher* launcher
      );
      DexFuture* (* contains_program) (
        FoundrySdk* self,
        const char* program
      );
      DexFuture* (* install) (
        FoundrySdk* self,
        FoundryOperation* operation,
        DexCancellable* cancellable
      );
      char* (* dup_config_option) (
        FoundrySdk* self,
        FoundrySdkConfigOption option
      );
      DexFuture* (* translate_path) (
        FoundrySdk* self,
        FoundryBuildPipeline* pipeline,
        const char* path
      );
      gboolean (* get_eol) (
        FoundrySdk* self
      );

    }

No description available.

###### Class members

`parent_class: FoundryContextualClass`

  No description available.

`prepare_to_build: DexFuture* (* prepare_to_build) ( FoundrySdk* self, FoundryBuildPipeline* pipeline, FoundryProcessLauncher* launcher, FoundryBuildPipelinePhase phase )`

  No description available.

`prepare_to_run: DexFuture* (* prepare_to_run) ( FoundrySdk* self, FoundryBuildPipeline* pipeline, FoundryProcessLauncher* launcher )`

  No description available.

`contains_program: DexFuture* (* contains_program) ( FoundrySdk* self, const char* program )`

  No description available.

`install: DexFuture* (* install) ( FoundrySdk* self, FoundryOperation* operation, DexCancellable* cancellable )`

  No description available.

`dup_config_option: char* (* dup_config_option) ( FoundrySdk* self, FoundrySdkConfigOption option )`

  No description available.

`translate_path: DexFuture* (* translate_path) ( FoundrySdk* self, FoundryBuildPipeline* pipeline, const char* path )`

  No description available.

`get_eol: gboolean (* get_eol) ( FoundrySdk* self )`

  No description available.

#### Virtual methods

###### Foundry.SdkClass.contains_program

Looks for `program` within the SDK.

###### Foundry.SdkClass.dup_config_option

Gets a config option that should be used as the default to work with this particular SDK.

###### Foundry.SdkClass.get_eol

Gets whether the SDK has reached end of life.

since: 1.1

###### Foundry.SdkClass.install

Installs an SDK.

###### Foundry.SdkClass.prepare_to_build

Prepares `launcher` to be able to build applications.

###### Foundry.SdkClass.prepare_to_run

Prepares `launcher` to be able to run applications.

###### Foundry.SdkClass.translate_path

This function should be implemented by SDKs so that you can convert a path within the container to a path outside the container.

since: 1.1