From: Carl Hetherington Date: Sat, 18 Oct 2014 21:18:15 +0000 (+0100) Subject: Fix build on Debian unstable which now has GraphicsMagick rather than ImageMagick. X-Git-Tag: v2.0.48~551^2~10 X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=commitdiff_plain;h=734340b52d30cb2dde9aa9e81c77277b261b128e Fix build on Debian unstable which now has GraphicsMagick rather than ImageMagick. --- 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 film, shared_ptrpath(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 #include +#ifdef DCPOMATIC_IMAGE_MAGICK #include +#else +#include +#include +#endif #include #include #include 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 (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, 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="""