diff options
author | Alexander Larsson <alexl@redhat.com> | 2015-11-16 16:23:23 +0100 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2015-11-25 15:26:32 +0100 |
commit | b2790349d6c5d257c3691df37eb2c46ea9fb821c (patch) | |
tree | fdca2e8ecb9a51f3cdeed695568bae8fd85672a7 /builder/builder-source.h | |
parent | 7e1a645f990c29296878ed7e3253f0151dab1c1c (diff) | |
download | xdg-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.h | 81 |
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__ */ |