aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHarry Jeffery <harry@exec64.co.uk>2019-01-21 22:19:16 +0000
committerHarry Jeffery <harry@exec64.co.uk>2019-01-29 22:26:22 +0000
commitc65f6f49039885856ad823dcbe2e8fd3fe2c8210 (patch)
treec86c2b02645031cdb4baa8e5d435a72871561934 /src
parent269fb9bca7bef679935001e30dcf60031253bbf9 (diff)
downloadimv-c65f6f49039885856ad823dcbe2e8fd3fe2c8210.tar.gz
Make backends optional
Diffstat (limited to 'src')
-rw-r--r--src/backend_freeimage.c11
-rw-r--r--src/backend_libpng.c12
-rw-r--r--src/backend_librsvg.c (renamed from src/backend_rsvg.c)19
-rw-r--r--src/backend_librsvg.h (renamed from src/backend_rsvg.h)2
-rw-r--r--src/main.c13
5 files changed, 50 insertions, 7 deletions
diff --git a/src/backend_freeimage.c b/src/backend_freeimage.c
index 8849922..9443075 100644
--- a/src/backend_freeimage.c
+++ b/src/backend_freeimage.c
@@ -6,6 +6,8 @@
#include <stdio.h>
#include <string.h>
+#ifdef IMV_BACKEND_FREEIMAGE
+
#include <FreeImage.h>
struct private {
@@ -269,3 +271,12 @@ struct imv_backend *imv_backend_freeimage(void)
backend->free = &backend_free;
return backend;
}
+
+#else
+
+struct imv_backend *imv_backend_freeimage(void)
+{
+ return NULL;
+}
+
+#endif
diff --git a/src/backend_libpng.c b/src/backend_libpng.c
index 20606b4..d5a2676 100644
--- a/src/backend_libpng.c
+++ b/src/backend_libpng.c
@@ -1,12 +1,13 @@
#include "backend_libpng.h"
#include "backend.h"
#include "source.h"
-
#include <alloca.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
+#ifdef IMV_BACKEND_LIBPNG
+
#include <png.h>
struct private {
@@ -191,3 +192,12 @@ struct imv_backend *imv_backend_libpng(void)
backend->free = &backend_free;
return backend;
}
+
+#else
+
+struct imv_backend *imv_backend_libpng(void)
+{
+ return NULL;
+}
+
+#endif
diff --git a/src/backend_rsvg.c b/src/backend_librsvg.c
index f259e5c..416743a 100644
--- a/src/backend_rsvg.c
+++ b/src/backend_librsvg.c
@@ -1,7 +1,11 @@
-#include "backend_rsvg.h"
+#include "backend_librsvg.h"
#include "backend.h"
#include "source.h"
+#include <stddef.h>
+
+#ifdef IMV_BACKEND_LIBRSVG
+
#include <librsvg/rsvg.h>
/* Some systems like GNU/Hurd don't define PATH_MAX */
@@ -131,11 +135,20 @@ static void backend_free(struct imv_backend *backend)
free(backend);
}
-struct imv_backend *imv_backend_rsvg(void)
+struct imv_backend *imv_backend_librsvg(void)
{
struct imv_backend *backend = malloc(sizeof(struct imv_backend));
- backend->name = "rsvg (LGPL license)";
+ backend->name = "librsvg (LGPL license)";
backend->open_path = &open_path;
backend->free = &backend_free;
return backend;
}
+
+#else
+
+struct imv_backend *imv_backend_librsvg(void)
+{
+ return NULL;
+}
+
+#endif
diff --git a/src/backend_rsvg.h b/src/backend_librsvg.h
index 126892a..16dd6c8 100644
--- a/src/backend_rsvg.h
+++ b/src/backend_librsvg.h
@@ -4,6 +4,6 @@
struct imv_backend;
/* Create an instance of the rsvg backend */
-struct imv_backend *imv_backend_rsvg(void);
+struct imv_backend *imv_backend_librsvg(void);
#endif
diff --git a/src/main.c b/src/main.c
index 8b88340..06baced 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1,9 +1,10 @@
#include "imv.h"
#include "backend.h"
+
#include "backend_freeimage.h"
#include "backend_libpng.h"
-#include "backend_rsvg.h"
+#include "backend_librsvg.h"
int main(int argc, char** argv)
{
@@ -13,9 +14,17 @@ int main(int argc, char** argv)
return 1;
}
- imv_install_backend(imv, imv_backend_rsvg());
+#ifdef IMV_BACKEND_FREEIMAGE
imv_install_backend(imv, imv_backend_freeimage());
+#endif
+
+#ifdef IMV_BACKEND_LIBPNG
imv_install_backend(imv, imv_backend_libpng());
+#endif
+
+#ifdef IMV_BACKEND_LIBRSVG
+ imv_install_backend(imv, imv_backend_librsvg());
+#endif
if(!imv_load_config(imv)) {
imv_free(imv);