summaryrefslogtreecommitdiff
path: root/builder
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2016-05-09 17:24:42 +0200
committerAlexander Larsson <alexl@redhat.com>2016-05-09 17:24:42 +0200
commit28c1c65d8f3feb6235627e52c789199a436b4e3c (patch)
tree5cbb318468a006b2f14ac344a900bf045ed2cb26 /builder
parent633bd42cc6c5e0613a577bb2740e836474368b69 (diff)
downloadxdg-app-28c1c65d8f3feb6235627e52c789199a436b4e3c.tar.gz
Builder: Support disabled=true to not build a module
This is a simple way to "comment out" a module.
Diffstat (limited to 'builder')
-rw-r--r--builder/builder-manifest.c16
-rw-r--r--builder/builder-module.c24
-rw-r--r--builder/builder-module.h1
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,