gchar * ide_build_system_get_builddir (IdeBuildSystem *self, IdePipeline *pipeline) { gchar *ret = NULL; IDE_ENTRY; g_return_val_if_fail (IDE_IS_BUILD_SYSTEM (self), NULL); g_return_val_if_fail (IDE_IS_PIPELINE (pipeline), NULL); if (IDE_BUILD_SYSTEM_GET_IFACE (self)->get_builddir) ret = IDE_BUILD_SYSTEM_GET_IFACE (self)->get_builddir (self, pipeline); if (ret == NULL) { g_autofree gchar *name = NULL; g_autofree gchar *branch = NULL; g_autoptr(GFile) base = NULL; g_autoptr(GFile) nosymlink = NULL; IdeConfig *config; const gchar *config_id; const gchar *runtime_id; IdeRuntime *runtime; IdeContext *context; IdeVcs *vcs; context = ide_object_get_context (IDE_OBJECT (self)); vcs = ide_vcs_from_context (context); config = ide_pipeline_get_config (pipeline); config_id = ide_config_get_id (config); runtime = ide_pipeline_get_runtime (pipeline); runtime_id = ide_runtime_get_id (runtime); branch = ide_vcs_get_branch_name (vcs); if (branch != NULL) name = g_strdup_printf ("%s-%s-%s", config_id, runtime_id, branch); else name = g_strdup_printf ("%s-%s", config_id, runtime_id); g_strdelimit (name, "@:/ ", '-'); /* Avoid symlink's when we can, so that paths with symlinks have at least * a chance of working. */ base = ide_context_cache_file (context, "builds", name, NULL); nosymlink = _ide_g_file_readlink (base); ret = g_file_get_path (nosymlink); } IDE_RETURN (ret); }
void ide_configuration_set_runtime (IdeConfiguration *self, IdeRuntime *runtime) { const gchar *runtime_id = "host"; g_return_if_fail (IDE_IS_CONFIGURATION (self)); g_return_if_fail (!runtime || IDE_IS_RUNTIME (runtime)); if (runtime != NULL) runtime_id = ide_runtime_get_id (runtime); ide_configuration_set_runtime_id (self, runtime_id); }
static void ide_runtime_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { IdeRuntime *self = IDE_RUNTIME (object); switch (prop_id) { case PROP_ID: g_value_set_string (value, ide_runtime_get_id (self)); break; case PROP_DISPLAY_NAME: g_value_set_string (value, ide_runtime_get_display_name (self)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } }