diff options
| author | Eduard Braun <eduard.braun2@gmx.de> | 2018-10-02 20:19:07 +0000 |
|---|---|---|
| committer | Eduard Braun <eduard.braun2@gmx.de> | 2018-10-02 20:19:07 +0000 |
| commit | e4c44f8b4674b88c0174270f27d61db808f66bc6 (patch) | |
| tree | 1f32b22aab4963bf5b0a1c22a72acbe42e53f395 | |
| parent | 2geom: update to c709d6b6780098d3e53363d925f7aee3c2640478 (diff) | |
| download | inkscape-e4c44f8b4674b88c0174270f27d61db808f66bc6.tar.gz inkscape-e4c44f8b4674b88c0174270f27d61db808f66bc6.zip | |
CMake: Allow to build with GraphicsMagick instead of ImageMagick
For now we still default to ImageMagick, but we can fall-back to
GraphicsMagick (e.g. if only ImageMagick 7 is available; add a check
for this).
To prefer GraphicsMagick despite a compatible version of ImageMagick
use -DWITH_IMAGE_MAGICK=OFF when running CMake
| -rw-r--r-- | CMakeLists.txt | 4 | ||||
| -rw-r--r-- | CMakeScripts/DefineDependsandFlags.cmake | 28 | ||||
| -rw-r--r-- | src/extension/init.cpp | 8 | ||||
| -rw-r--r-- | src/extension/internal/image-resolution.cpp | 6 |
4 files changed, 30 insertions, 16 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 2680fc033..c692f40be 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -103,7 +103,8 @@ option(BUILD_SHARED_LIBS "Compile libraries as shared and not static" ON) option(ENABLE_POPPLER "Compile with support of libpoppler" ON) option(ENABLE_POPPLER_CAIRO "Compile with support of libpoppler-cairo for rendering PDF preview (depends on ENABLE_POPPLER)" ON) -option(WITH_IMAGE_MAGICK "Compile with support of ImageMagick for raster extensions and image import resolution" ON) +option(WITH_IMAGE_MAGICK "Compile with support of ImageMagick for raster extensions and image import resolution (requires ImageMagick 6; set to OFF if you prefer GraphicsMagick)" ON) +option(WITH_GRAPHICS_MAGICK "Compile with support of GraphicsMagick for raster extensions and image import resolution" ON) option(WITH_LIBCDR "Compile with support of libcdr for CorelDRAW Diagrams" ON) option(WITH_LIBVISIO "Compile with support of libvisio for Microsoft Visio Diagrams" ON) option(WITH_LIBWPG "Compile with support of libwpg for WordPerfect Graphics" ON) @@ -290,6 +291,7 @@ message("GMOCK_PRESENT: ${GMOCK_PRESENT}") message("WITH_DBUS: ${WITH_DBUS}") message("WITH_GTKSPELL: ${WITH_GTKSPELL}") message("WITH_IMAGE_MAGICK: ${WITH_IMAGE_MAGICK}") +message("WITH_GRAPHICS_MAGICK: ${WITH_GRAPHICS_MAGICK}") message("WITH_LIBCDR: ${WITH_LIBCDR}") message("WITH_LIBVISIO: ${WITH_LIBVISIO}") message("WITH_LIBWPG: ${WITH_LIBWPG}") diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index aa637ead1..897aafb57 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -309,17 +309,29 @@ list(APPEND INKSCAPE_INCS_SYS ${ZLIB_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${ZLIB_LIBRARIES}) if(WITH_IMAGE_MAGICK) - pkg_check_modules(ImageMagick ImageMagick++ ) - if(ImageMagick_FOUND) - list(APPEND INKSCAPE_LIBS ${ImageMagick_LDFLAGS}) - add_definitions(${ImageMagick_CFLAGS_OTHER}) - - list(APPEND INKSCAPE_INCS_SYS ${ImageMagick_INCLUDE_DIRS}) - list(APPEND INKSCAPE_LIBS ${ImageMagick_LIBRARIES}) + # we want "<" but pkg_check_modules only offers "<=" for some reason; let's hope nobody actually has 7.0.0 + pkg_check_modules(MAGICK ImageMagick++<=7) + if(MAGICK_FOUND) + set(WITH_GRAPHICS_MAGICK OFF) # prefer ImageMagick for now and disable GraphicsMagick if found else() - set(WITH_IMAGE_MAGICK OFF) # enable 'Extensions > Raster' + set(WITH_IMAGE_MAGICK OFF) + endif() +endif() +if(WITH_GRAPHICS_MAGICK) + pkg_check_modules(MAGICK GraphicsMagick++) + if(NOT MAGICK_FOUND) + set(WITH_GRAPHICS_MAGICK OFF) endif() endif() +if(MAGICK_FOUND) + list(APPEND INKSCAPE_LIBS ${MAGICK_LDFLAGS}) + add_definitions(${MAGICK_CFLAGS_OTHER}) + + list(APPEND INKSCAPE_INCS_SYS ${MAGICK_INCLUDE_DIRS}) + list(APPEND INKSCAPE_LIBS ${MAGICK_LIBRARIES}) + + set(WITH_MAGICK ON) # enable 'Extensions > Raster' +endif() set(ENABLE_NLS OFF) if(WITH_NLS) diff --git a/src/extension/init.cpp b/src/extension/init.cpp index 7524ba106..3ac73f05a 100644 --- a/src/extension/init.cpp +++ b/src/extension/init.cpp @@ -65,7 +65,7 @@ #include "dbus/dbus-init.h" #endif -#ifdef WITH_IMAGE_MAGICK +#ifdef WITH_MAGICK #include <Magick++.h> #include "internal/bitmap/adaptiveThreshold.h" #include "internal/bitmap/addNoise.h" @@ -102,7 +102,7 @@ //#include "internal/bitmap/threshold.h" #include "internal/bitmap/unsharpmask.h" #include "internal/bitmap/wave.h" -#endif /* WITH_IMAGE_MAGICK */ +#endif /* WITH_MAGICK */ #include "internal/filter/filter.h" @@ -191,7 +191,7 @@ init() #endif /* Raster Effects */ -#ifdef WITH_IMAGE_MAGICK +#ifdef WITH_MAGICK Magick::InitializeMagick(NULL); Internal::Bitmap::AdaptiveThreshold::init(); @@ -229,7 +229,7 @@ init() //Internal::Bitmap::Threshold::init(); Internal::Bitmap::Unsharpmask::init(); Internal::Bitmap::Wave::init(); -#endif /* WITH_IMAGE_MAGICK */ +#endif /* WITH_MAGICK */ Internal::Filter::Filter::filters_all(); diff --git a/src/extension/internal/image-resolution.cpp b/src/extension/internal/image-resolution.cpp index befb48222..d1618d3b5 100644 --- a/src/extension/internal/image-resolution.cpp +++ b/src/extension/internal/image-resolution.cpp @@ -30,7 +30,7 @@ #include <csetjmp> #endif -#ifdef WITH_IMAGE_MAGICK +#ifdef WITH_MAGICK #include <Magick++.h> #endif @@ -396,7 +396,7 @@ void ImageResolution::readjfif(char const *) { #endif -#ifdef WITH_IMAGE_MAGICK +#ifdef WITH_MAGICK void ImageResolution::readmagick(char const *fn) { Magick::Image image; debug("Trying image.read"); @@ -439,7 +439,7 @@ void ImageResolution::readmagick(char const *fn) { void ImageResolution::readmagick(char const *) { } -#endif /* WITH_IMAGE_MAGICK */ +#endif /* WITH_MAGICK */ } } |
