diff options
Diffstat (limited to 'builder')
-rw-r--r-- | builder/builder-manifest.c | 16 | ||||
-rw-r--r-- | builder/builder-module.c | 24 | ||||
-rw-r--r-- | builder/builder-module.h | 1 |
3 files changed, 41 insertions, 0 deletions
diff --git a/builder/builder-manifest.c b/builder/builder-manifest.c index 986f7ef..e34eba2 100644 --- a/builder/builder-manifest.c +++ b/builder/builder-manifest.c @@ -1060,6 +1060,9 @@ builder_manifest_download (BuilderManifest *self, { BuilderModule *m = l->data; + if (builder_module_get_disabled (m)) + continue; + if (!builder_module_download_sources (m, update_vcs, context, error)) return FALSE; } @@ -1086,6 +1089,13 @@ builder_manifest_build (BuilderManifest *self, { BuilderModule *m = l->data; g_autoptr(GPtrArray) changes = NULL; + + if (builder_module_get_disabled (m)) + { + g_print ("Skipping disabled module %s\n", builder_module_get_name (m)); + continue; + } + g_autofree char *stage = g_strdup_printf ("build-%s", builder_module_get_name (m)); builder_module_checksum (m, cache, context); @@ -1373,6 +1383,9 @@ builder_manifest_cleanup (BuilderManifest *self, { BuilderModule *m = l->data; + if (builder_module_get_disabled (m)) + continue; + builder_module_cleanup_collect (m, FALSE, context, to_remove_ht); } @@ -1828,6 +1841,9 @@ builder_manifest_create_platform (BuilderManifest *self, { BuilderModule *m = l->data; + if (builder_module_get_disabled (m)) + continue; + builder_module_cleanup_collect (m, TRUE, context, to_remove_ht); } diff --git a/builder/builder-module.c b/builder/builder-module.c index 2ba5c37..8b0dad0 100644 --- a/builder/builder-module.c +++ b/builder/builder-module.c @@ -45,6 +45,7 @@ struct BuilderModule char **config_opts; char **make_args; char **make_install_args; + gboolean disabled; gboolean rm_configure; gboolean no_autogen; gboolean no_parallel_make; @@ -72,6 +73,7 @@ enum { PROP_NAME, PROP_SUBDIR, PROP_RM_CONFIGURE, + PROP_DISABLED, PROP_NO_AUTOGEN, PROP_NO_PARALLEL_MAKE, PROP_CMAKE, @@ -132,6 +134,10 @@ builder_module_get_property (GObject *object, g_value_set_boolean (value, self->rm_configure); break; + case PROP_DISABLED: + g_value_set_boolean (value, self->disabled); + break; + case PROP_NO_AUTOGEN: g_value_set_boolean (value, self->no_autogen); break; @@ -210,6 +216,10 @@ builder_module_set_property (GObject *object, self->rm_configure = g_value_get_boolean (value); break; + case PROP_DISABLED: + self->disabled = g_value_get_boolean (value); + break; + case PROP_NO_AUTOGEN: self->no_autogen = g_value_get_boolean (value); break; @@ -308,6 +318,13 @@ builder_module_class_init (BuilderModuleClass *klass) FALSE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, + PROP_DISABLED, + g_param_spec_boolean ("disabled", + "", + "", + FALSE, + G_PARAM_READWRITE)); + g_object_class_install_property (object_class, PROP_NO_AUTOGEN, g_param_spec_boolean ("no-autogen", "", @@ -506,6 +523,12 @@ builder_module_get_name (BuilderModule *self) return self->name; } +gboolean +builder_module_get_disabled (BuilderModule *self) +{ + return self->disabled; +} + GList * builder_module_get_sources (BuilderModule *self) { @@ -1143,6 +1166,7 @@ builder_module_checksum (BuilderModule *self, builder_cache_checksum_strv (cache, self->make_install_args); builder_cache_checksum_boolean (cache, self->rm_configure); builder_cache_checksum_boolean (cache, self->no_autogen); + builder_cache_checksum_boolean (cache, self->disabled); builder_cache_checksum_boolean (cache, self->no_parallel_make); builder_cache_checksum_boolean (cache, self->cmake); builder_cache_checksum_boolean (cache, self->builddir); diff --git a/builder/builder-module.h b/builder/builder-module.h index 513eac2..0adc3fb 100644 --- a/builder/builder-module.h +++ b/builder/builder-module.h @@ -40,6 +40,7 @@ typedef struct BuilderModule BuilderModule; GType builder_module_get_type (void); const char * builder_module_get_name (BuilderModule *self); +gboolean builder_module_get_disabled (BuilderModule *self); GList * builder_module_get_sources (BuilderModule *self); GPtrArray * builder_module_get_changes (BuilderModule *self); void builder_module_set_changes (BuilderModule *self, |