diff options
| author | Carl Hetherington <cth@carlh.net> | 2014-10-18 22:18:15 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2014-10-18 22:18:15 +0100 |
| commit | 734340b52d30cb2dde9aa9e81c77277b261b128e (patch) | |
| tree | 1671d2f9c409cf2c58570b3d068bb4f071355848 | |
| parent | 49a5dd1b69c4bb7ed27ba0e23b2161fe4521f775 (diff) | |
Fix build on Debian unstable which now has GraphicsMagick rather than ImageMagick.
| -rw-r--r-- | src/lib/image_examiner.cc | 2 | ||||
| -rw-r--r-- | src/lib/image_proxy.cc | 4 | ||||
| -rw-r--r-- | src/lib/util.cc | 5 | ||||
| -rw-r--r-- | src/tools/wscript | 2 | ||||
| -rw-r--r-- | src/wx/wscript | 1 | ||||
| -rw-r--r-- | test/image_test.cc | 14 | ||||
| -rw-r--r-- | wscript | 10 |
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; } @@ -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=""" |
