diff options
author | Alexander Larsson <alexl@redhat.com> | 2016-02-17 14:54:16 +0100 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2016-02-17 14:54:16 +0100 |
commit | bb4d67b086fb544d1a1844ca5f0c52fc6e6be45b (patch) | |
tree | 2ef8948e64457ed61f6f5be07245384d5fd92af0 /builder | |
parent | be97206c7b8bdc590776a95b66edde90da4266ab (diff) | |
download | xdg-app-bb4d67b086fb544d1a1844ca5f0c52fc6e6be45b.tar.gz |
builder: Support tags
Diffstat (limited to 'builder')
-rw-r--r-- | builder/builder-manifest.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/builder/builder-manifest.c b/builder/builder-manifest.c index 1a96af6..b31cdf9 100644 --- a/builder/builder-manifest.c +++ b/builder/builder-manifest.c @@ -51,6 +51,7 @@ struct BuilderManifest { char **cleanup_commands; char **cleanup_platform; char **finish_args; + char **tags; char *rename_desktop_file; char *rename_appdata_file; char *rename_icon; @@ -100,6 +101,7 @@ enum { PROP_SDK_EXTENSIONS, PROP_PLATFORM_EXTENSIONS, PROP_FINISH_ARGS, + PROP_TAGS, PROP_RENAME_DESKTOP_FILE, PROP_RENAME_APPDATA_FILE, PROP_RENAME_ICON, @@ -130,6 +132,7 @@ builder_manifest_finalize (GObject *object) g_strfreev (self->cleanup_commands); g_strfreev (self->cleanup_platform); g_strfreev (self->finish_args); + g_strfreev (self->tags); g_free (self->rename_desktop_file); g_free (self->rename_appdata_file); g_free (self->rename_icon); @@ -217,6 +220,10 @@ builder_manifest_get_property (GObject *object, g_value_set_boxed (value, self->finish_args); break; + case PROP_TAGS: + g_value_set_boxed (value, self->tags); + break; + case PROP_BUILD_RUNTIME: g_value_set_boolean (value, self->build_runtime); break; @@ -366,6 +373,12 @@ builder_manifest_set_property (GObject *object, g_strfreev (tmp); break; + case PROP_TAGS: + tmp = self->tags; + self->tags = g_strdupv (g_value_get_boxed (value)); + g_strfreev (tmp); + break; + case PROP_BUILD_RUNTIME: self->build_runtime = g_value_get_boolean (value); break; @@ -587,6 +600,13 @@ builder_manifest_class_init (BuilderManifestClass *klass) G_TYPE_STRV, G_PARAM_READWRITE)); g_object_class_install_property (object_class, + PROP_TAGS, + g_param_spec_boxed ("tags", + "", + "", + G_TYPE_STRV, + G_PARAM_READWRITE)); + g_object_class_install_property (object_class, PROP_RENAME_DESKTOP_FILE, g_param_spec_string ("rename-desktop-file", "", @@ -855,6 +875,11 @@ builder_manifest_init_app_dir (BuilderManifest *self, g_ptr_array_add (args, g_strdup_printf ("--sdk-extension=%s", ext)); } } + if (self->tags) + { + for (i = 0; self->tags[i] != NULL; i++) + g_ptr_array_add (args, g_strdup_printf ("--tag=%s", self->tags[i])); + } g_ptr_array_add (args, g_file_get_path (app_dir)); g_ptr_array_add (args, g_strdup (self->id)); g_ptr_array_add (args, g_strdup (self->sdk)); @@ -888,6 +913,7 @@ builder_manifest_checksum (BuilderManifest *self, builder_cache_checksum_str (cache, self->sdk); builder_cache_checksum_str (cache, self->sdk_commit); builder_cache_checksum_str (cache, self->metadata); + builder_cache_checksum_strv (cache, self->tags); builder_cache_checksum_boolean (cache, self->writable_sdk); builder_cache_checksum_strv (cache, self->sdk_extensions); builder_cache_checksum_boolean (cache, self->build_runtime); |