static void ide_configuration_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { IdeConfiguration *self = IDE_CONFIGURATION (object); switch (prop_id) { case PROP_CONFIG_OPTS: g_value_set_string (value, ide_configuration_get_config_opts (self)); break; case PROP_DEBUG: g_value_set_boolean (value, ide_configuration_get_debug (self)); break; case PROP_DEVICE: g_value_set_object (value, ide_configuration_get_device (self)); break; case PROP_DIRTY: g_value_set_boolean (value, ide_configuration_get_dirty (self)); break; case PROP_DISPLAY_NAME: g_value_set_string (value, ide_configuration_get_display_name (self)); break; case PROP_ENVIRON: g_value_set_boxed (value, ide_configuration_get_environ (self)); break; case PROP_ID: g_value_set_string (value, ide_configuration_get_id (self)); break; case PROP_PARALLELISM: g_value_set_int (value, ide_configuration_get_parallelism (self)); break; case PROP_PREFIX: g_value_set_string (value, ide_configuration_get_prefix (self)); break; case PROP_RUNTIME: g_value_set_object (value, ide_configuration_get_runtime (self)); break; case PROP_RUNTIME_ID: g_value_set_object (value, ide_configuration_get_runtime (self)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } }
static void do_run_async (IdeRunManager *self, GTask *task) { IdeBuildTarget *build_target; IdeContext *context; IdeConfigurationManager *config_manager; IdeConfiguration *config; IdeRuntime *runtime; g_autoptr(IdeRunner) runner = NULL; GCancellable *cancellable; g_assert (IDE_IS_RUN_MANAGER (self)); g_assert (G_IS_TASK (task)); build_target = g_task_get_task_data (task); context = ide_object_get_context (IDE_OBJECT (self)); g_assert (IDE_IS_BUILD_TARGET (build_target)); g_assert (IDE_IS_CONTEXT (context)); config_manager = ide_context_get_configuration_manager (context); config = ide_configuration_manager_get_current (config_manager); runtime = ide_configuration_get_runtime (config); if (runtime == NULL) { g_task_return_new_error (task, IDE_RUNTIME_ERROR, IDE_RUNTIME_ERROR_NO_SUCH_RUNTIME, "%s “%s”", _("Failed to locate runtime"), ide_configuration_get_runtime_id (config)); IDE_EXIT; } runner = ide_runtime_create_runner (runtime, build_target); cancellable = g_task_get_cancellable (task); g_assert (IDE_IS_RUNNER (runner)); g_assert (!cancellable || G_IS_CANCELLABLE (cancellable)); /* * If the current handler has a callback specified (our default "run" handler * does not), then we need to allow that handler to prepare the runner. */ if (self->handler != NULL && self->handler->handler != NULL) self->handler->handler (self, runner, self->handler->handler_data); g_signal_emit (self, signals [RUN], 0, runner); ide_runner_run_async (runner, cancellable, ide_run_manager_run_cb, g_object_ref (task)); }
static void ide_omni_bar__config_manager__notify_current (IdeOmniBar *self, GParamSpec *pspec, IdeConfigurationManager *config_manager) { IdeConfiguration *current; IdeRuntime *runtime; g_assert (IDE_IS_OMNI_BAR (self)); g_assert (IDE_IS_CONFIGURATION_MANAGER (config_manager)); current = ide_configuration_manager_get_current (config_manager); runtime = ide_configuration_get_runtime (current); if (runtime != NULL) gtk_label_set_label (self->popover_runtime_label, ide_runtime_get_display_name (runtime)); else gtk_label_set_label (self->popover_runtime_label, ""); gtk_label_set_label (self->popover_config_label, ide_configuration_get_display_name (current)); }
static void simple_make_command (GFile *directory, const gchar *target, GTask *task, IdeConfiguration *configuration) { g_autoptr(IdeSubprocessLauncher) launcher = NULL; g_autoptr(GSubprocess) subprocess = NULL; GCancellable *cancellable; IdeRuntime *runtime; GError *error = NULL; g_assert (G_IS_FILE (directory)); g_assert (target != NULL); g_assert (G_IS_TASK (task)); g_assert (IDE_IS_CONFIGURATION (configuration)); cancellable = g_task_get_cancellable (task); if (!g_file_is_native (directory)) { g_task_return_new_error (task, G_IO_ERROR, G_IO_ERROR_NOT_REGULAR_FILE, "Cannot use non-local directories."); return; } if (NULL == (runtime = ide_configuration_get_runtime (configuration))) { g_task_return_new_error (task, G_IO_ERROR, G_IO_ERROR_NOT_FOUND, "Failed to locate runtime"); return; } if (NULL == (launcher = ide_runtime_create_launcher (runtime, &error))) { g_task_return_error (task, error); return; } ide_subprocess_launcher_set_cwd (launcher, g_file_get_path (directory)); if (ide_runtime_contains_program_in_path (runtime, "gmake", cancellable)) ide_subprocess_launcher_push_argv (launcher, "gmake"); else ide_subprocess_launcher_push_argv (launcher, "make"); ide_subprocess_launcher_push_argv (launcher, target); if (NULL == (subprocess = ide_subprocess_launcher_spawn_sync (launcher, cancellable, &error))) { g_task_return_error (task, error); return; } g_subprocess_wait_check_async (subprocess, g_task_get_cancellable (task), simple_make_command_cb, g_object_ref (task)); }