summaryrefslogtreecommitdiff
path: root/builder/builder-source.h
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2015-11-16 16:23:23 +0100
committerAlexander Larsson <alexl@redhat.com>2015-11-25 15:26:32 +0100
commitb2790349d6c5d257c3691df37eb2c46ea9fb821c (patch)
treefdca2e8ecb9a51f3cdeed695568bae8fd85672a7 /builder/builder-source.h
parent7e1a645f990c29296878ed7e3253f0151dab1c1c (diff)
downloadxdg-app-b2790349d6c5d257c3691df37eb2c46ea9fb821c.tar.gz
Add xdg-app-builder
This is a tool that makes it easy to build applications and their dependecies by automating the configure && make && make install steps.
Diffstat (limited to 'builder/builder-source.h')
-rw-r--r--builder/builder-source.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/builder/builder-source.h b/builder/builder-source.h
new file mode 100644
index 0000000..40fe844
--- /dev/null
+++ b/builder/builder-source.h
@@ -0,0 +1,81 @@
+/*
+ * Copyright © 2015 Red Hat, Inc
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Authors:
+ * Alexander Larsson <alexl@redhat.com>
+ */
+
+#ifndef __BUILDER_SOURCE_H__
+#define __BUILDER_SOURCE_H__
+
+#include <json-glib/json-glib.h>
+
+#include "builder-context.h"
+#include "builder-cache.h"
+
+G_BEGIN_DECLS
+
+typedef struct BuilderSource BuilderSource;
+
+#define BUILDER_TYPE_SOURCE (builder_source_get_type())
+#define BUILDER_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUILDER_TYPE_SOURCE, BuilderSource))
+#define BUILDER_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BUILDER_TYPE_SOURCE, BuilderSourceClass))
+#define BUILDER_IS_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUILDER_TYPE_SOURCE))
+#define BUILDER_IS_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BUILDER_TYPE_SOURCE))
+#define BUILDER_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BUILDER_TYPE_SOURCE, BuilderSourceClass))
+
+struct BuilderSource {
+ GObject parent;
+
+ char *dest;
+};
+
+typedef struct {
+ GObjectClass parent_class;
+
+ gboolean (* download) (BuilderSource *self,
+ BuilderContext *context,
+ GError **error);
+ gboolean (* extract) (BuilderSource *self,
+ GFile *dest,
+ BuilderContext *context,
+ GError **error);
+ void (* checksum) (BuilderSource *self,
+ BuilderCache *cache,
+ BuilderContext *context);
+} BuilderSourceClass;
+
+GType builder_source_get_type (void);
+
+BuilderSource * builder_source_from_json (JsonNode *node);
+
+gboolean builder_source_download (BuilderSource *self,
+ BuilderContext *context,
+ GError **error);
+gboolean builder_source_extract (BuilderSource *self,
+ GFile *dest,
+ BuilderContext *context,
+ GError **error);
+
+void builder_source_checksum (BuilderSource *self,
+ BuilderCache *cache,
+ BuilderContext *context);
+
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(BuilderSource, g_object_unref)
+
+G_END_DECLS
+
+#endif /* __BUILDER_SOURCE_H__ */