Browse Source

libobs: Fix ImageMagick header path

Since ImageMagick 7, the header path has been changed.  This commit
implements a check for the version being used, and includes the
header as is appropriate.

Special thanks to Hu.

Mantis-Bug: https://obsproject.com/mantis/view.php?id=966

Gentoo-Bug: https://bugs.gentoo.org/627520

Closes jp9000/obs-studio#1018
Jimi Huotari 8 years ago
parent
commit
fef71c4b7c
3 changed files with 15 additions and 0 deletions
  1. 6 0
      libobs/CMakeLists.txt
  2. 6 0
      libobs/graphics/graphics-magick.c
  3. 3 0
      libobs/obsconfig.h.in

+ 6 - 0
libobs/CMakeLists.txt

@@ -39,6 +39,12 @@ option(LIBOBS_PREFER_IMAGEMAGICK "Prefer ImageMagick over ffmpeg for image loadi
 if(NOT FFMPEG_AVCODEC_FOUND OR (ImageMagick_MagickCore_FOUND AND LIBOBS_PREFER_IMAGEMAGICK))
 	message(STATUS "Using ImageMagick for image loading in libobs")
 
+	if(${ImageMagick_VERSION_STRING} LESS 7)
+		set(LIBOBS_IMAGEMAGICK_DIR_STYLE LIBOBS_IMAGEMAGICK_DIR_STYLE_6L)
+	elseif(${ImageMagick_VERSION_STRING} GREATER_EQUAL 7)
+		set(LIBOBS_IMAGEMAGICK_DIR_STYLE LIBOBS_IMAGEMAGICK_DIR_STYLE_7GE)
+	endif()
+
 	set(libobs_image_loading_SOURCES
 		graphics/graphics-magick.c)
 	set(libobs_image_loading_LIBRARIES

+ 6 - 0
libobs/graphics/graphics-magick.c

@@ -1,8 +1,14 @@
 #include "graphics.h"
+#include "obsconfig.h"
 
 #define MAGICKCORE_QUANTUM_DEPTH 16
 #define MAGICKCORE_HDRI_ENABLE   0
+
+#if LIBOBS_IMAGEMAGICK_DIR_STYLE == LIBOBS_IMAGEMAGICK_DIR_STYLE_6L
 #include <magick/MagickCore.h>
+#elif LIBOBS_IMAGEMAGICK_DIR_STYLE == LIBOBS_IMAGEMAGICK_DIR_STYLE_7GE
+#include <MagickCore/MagickCore.h>
+#endif
 
 void gs_init_image_deps()
 {

+ 3 - 0
libobs/obsconfig.h.in

@@ -18,3 +18,6 @@
 #define BUILD_CAPTIONS @BUILD_CAPTIONS@
 #define HAVE_DBUS @HAVE_DBUS@
 #define HAVE_PULSEAUDIO @HAVE_PULSEAUDIO@
+#define LIBOBS_IMAGEMAGICK_DIR_STYLE_6L 6
+#define LIBOBS_IMAGEMAGICK_DIR_STYLE_7GE 7
+#define LIBOBS_IMAGEMAGICK_DIR_STYLE @LIBOBS_IMAGEMAGICK_DIR_STYLE@