diff options
author | Harry Jeffery <harry@exec64.co.uk> | 2019-01-21 22:19:16 +0000 |
---|---|---|
committer | Harry Jeffery <harry@exec64.co.uk> | 2019-01-29 22:26:22 +0000 |
commit | c65f6f49039885856ad823dcbe2e8fd3fe2c8210 (patch) | |
tree | c86c2b02645031cdb4baa8e5d435a72871561934 /src | |
parent | 269fb9bca7bef679935001e30dcf60031253bbf9 (diff) | |
download | imv-c65f6f49039885856ad823dcbe2e8fd3fe2c8210.tar.gz |
Make backends optional
Diffstat (limited to 'src')
-rw-r--r-- | src/backend_freeimage.c | 11 | ||||
-rw-r--r-- | src/backend_libpng.c | 12 | ||||
-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.c | 13 |
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 @@ -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); |