summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2014-10-18 22:18:15 +0100
committerCarl Hetherington <cth@carlh.net>2014-10-18 22:18:15 +0100
commit734340b52d30cb2dde9aa9e81c77277b261b128e (patch)
tree1671d2f9c409cf2c58570b3d068bb4f071355848
parent49a5dd1b69c4bb7ed27ba0e23b2161fe4521f775 (diff)
Fix build on Debian unstable which now has GraphicsMagick rather than ImageMagick.
-rw-r--r--src/lib/image_examiner.cc2
-rw-r--r--src/lib/image_proxy.cc4
-rw-r--r--src/lib/util.cc5
-rw-r--r--src/tools/wscript2
-rw-r--r--src/wx/wscript1
-rw-r--r--test/image_test.cc14
-rw-r--r--wscript10
7 files changed, 35 insertions, 3 deletions
diff --git a/src/lib/image_examiner.cc b/src/lib/image_examiner.cc
index 4ff324f68..7058ea3b2 100644
--- a/src/lib/image_examiner.cc
+++ b/src/lib/image_examiner.cc
@@ -38,7 +38,9 @@ ImageExaminer::ImageExaminer (shared_ptr<const Film> film, shared_ptr<const Imag
, _image_content (content)
, _video_length (0)
{
+#ifdef DCPOMATIC_IMAGE_MAGICK
using namespace MagickCore;
+#endif
Magick::Image* image = new Magick::Image (content->path(0).string());
_video_size = libdcp::Size (image->columns(), image->rows());
delete image;
diff --git a/src/lib/image_proxy.cc b/src/lib/image_proxy.cc
index 3aba6cf7c..3851f88e7 100644
--- a/src/lib/image_proxy.cc
+++ b/src/lib/image_proxy.cc
@@ -156,7 +156,11 @@ MagickImageProxy::image () const
/* Write line-by-line here as _image must be aligned, and write() cannot be told about strides */
uint8_t* p = _image->data()[0];
for (int i = 0; i < size.height; ++i) {
+#ifdef DCPOMATIC_IMAGE_MAGICK
using namespace MagickCore;
+#else
+ using namespace MagickLib;
+#endif
magick_image->write (0, i, size.width, 1, "RGB", CharPixel, p);
p += _image->stride()[0];
}
diff --git a/src/lib/util.cc b/src/lib/util.cc
index 290dd20ef..2e9ca66b2 100644
--- a/src/lib/util.cc
+++ b/src/lib/util.cc
@@ -43,7 +43,12 @@
#endif
#include <glib.h>
#include <openjpeg.h>
+#ifdef DCPOMATIC_IMAGE_MAGICK
#include <magick/MagickCore.h>
+#else
+#include <magick/common.h>
+#include <magick/magick_config.h>
+#endif
#include <magick/version.h>
#include <libdcp/version.h>
#include <libdcp/util.h>
diff --git a/src/tools/wscript b/src/tools/wscript
index c4ea1530f..ac270af70 100644
--- a/src/tools/wscript
+++ b/src/tools/wscript
@@ -11,7 +11,7 @@ def configure(conf):
def build(bld):
for t in ['dcpomatic_cli', 'dcpomatic_server_cli', 'server_test', 'dcpomatic_kdm', 'dcpomatic_create']:
obj = bld(features = 'cxx cxxprogram')
- obj.uselib = 'BOOST_THREAD BOOST_DATETIME OPENJPEG DCP CXML AVFORMAT AVFILTER AVCODEC AVUTIL SWSCALE POSTPROC WXWIDGETS QUICKMAIL'
+ obj.uselib = 'BOOST_THREAD BOOST_DATETIME OPENJPEG DCP CXML AVFORMAT AVFILTER AVCODEC AVUTIL SWSCALE POSTPROC QUICKMAIL'
obj.includes = ['..']
obj.use = ['libdcpomatic']
obj.source = '%s.cc' % t
diff --git a/src/wx/wscript b/src/wx/wscript
index 8bf2451c2..071050069 100644
--- a/src/wx/wscript
+++ b/src/wx/wscript
@@ -64,7 +64,6 @@ def configure(conf):
'wx_gtk2u_adv-3.0', 'wx_gtk2u_core-3.0', 'wx_baseu_xml-3.0', 'wx_baseu-3.0']
conf.env.LIB_WXWIDGETS = ['tiff', 'SM', 'dl', 'jpeg', 'png', 'X11', 'expat']
if conf.env.TARGET_DEBIAN and conf.env.DEBIAN_UNSTABLE:
- conf.env.LIB_WXWIDGETS.append('Xxf86vm')
conf.env.LIB_WXWIDGETS.append('Xext')
conf.env.LIB_WXWIDGETS.append('X11')
diff --git a/test/image_test.cc b/test/image_test.cc
index 51ad49ebf..5662c729b 100644
--- a/test/image_test.cc
+++ b/test/image_test.cc
@@ -174,16 +174,24 @@ read_file (string file)
boost::shared_ptr<Image> image (new Image (PIX_FMT_RGB24, size, true));
+#ifdef DCPOMATIC_IMAGE_MAGICK
using namespace MagickCore;
+#endif
uint8_t* p = image->data()[0];
for (int y = 0; y < size.height; ++y) {
uint8_t* q = p;
for (int x = 0; x < size.width; ++x) {
Magick::Color c = magick_image.pixelColor (x, y);
+#ifdef DCPOMATIC_IMAGE_MAGICK
*q++ = c.redQuantum() * 255 / QuantumRange;
*q++ = c.greenQuantum() * 255 / QuantumRange;
*q++ = c.blueQuantum() * 255 / QuantumRange;
+#else
+ *q++ = c.redQuantum() * 255 / MaxRGB;
+ *q++ = c.greenQuantum() * 255 / MaxRGB;
+ *q++ = c.blueQuantum() * 255 / MaxRGB;
+#endif
}
p += image->stride()[0];
}
@@ -195,14 +203,20 @@ static
void
write_file (shared_ptr<Image> image, string file)
{
+#ifdef DCPOMATIC_IMAGE_MAGICK
using namespace MagickCore;
+#endif
Magick::Image magick_image (Magick::Geometry (image->size().width, image->size().height), Magick::Color (0, 0, 0));
uint8_t*p = image->data()[0];
for (int y = 0; y < image->size().height; ++y) {
uint8_t* q = p;
for (int x = 0; x < image->size().width; ++x) {
+#ifdef DCPOMATIC_IMAGE_MAGICK
Magick::Color c (q[0] * QuantumRange / 256, q[1] * QuantumRange / 256, q[2] * QuantumRange / 256);
+#else
+ Magick::Color c (q[0] * MaxRGB / 256, q[1] * MaxRGB / 256, q[2] * MaxRGB / 256);
+#endif
magick_image.pixelColor (x, y, c);
q += 3;
}
diff --git a/wscript b/wscript
index eb80b9efc..f5d1a1c34 100644
--- a/wscript
+++ b/wscript
@@ -1,6 +1,8 @@
import subprocess
import os
import sys
+import distutils
+import distutils.spawn
APPNAME = 'dcpomatic'
VERSION = '1.75.1devel'
@@ -322,7 +324,13 @@ def configure(conf):
# Dependencies which are always dynamically linked
conf.check_cfg(package='sndfile', args='--cflags --libs', uselib_store='SNDFILE', mandatory=True)
conf.check_cfg(package='glib-2.0', args='--cflags --libs', uselib_store='GLIB', mandatory=True)
- conf.check_cfg(package= '', path=conf.options.magickpp_config, args='--cppflags --cxxflags --libs', uselib_store='MAGICK', mandatory=True)
+ if distutils.spawn.find_executable(conf.options.magickpp_config):
+ conf.check_cfg(package='', path=conf.options.magickpp_config, args='--cppflags --cxxflags --libs', uselib_store='MAGICK', mandatory=True)
+ conf.env.append_value('CXXFLAGS', '-DDCPOMATIC_IMAGE_MAGICK')
+ else:
+ conf.check_cfg(package='GraphicsMagick++', args='--cppflags --cxxflags --libs', uselib_store='MAGICK', mandatory=True)
+ conf.env.append_value('CXXFLAGS', '-DDCPOMATIC_GRAPHICS_MAGICK')
+
conf.check_cfg(package='libzip', args='--cflags --libs', uselib_store='ZIP', mandatory=True)
conf.check_cc(fragment="""