/*
- Copyright (C) 2014-2015 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2014-2016 Carl Hetherington <cth@carlh.net>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include "cross.h"
#include "font.h"
#include "dcpomatic_assert.h"
+#include <fontconfig/fontconfig.h>
#include <cairomm/cairomm.h>
#include <pangomm.h>
#include <boost/foreach.hpp>
shared_ptr<Image> image (new Image (AV_PIX_FMT_RGBA, dcp::Size (target.width, height), false));
image->make_black ();
+#ifdef DCPOMATIC_HAVE_FORMAT_STRIDE_FOR_WIDTH
Cairo::RefPtr<Cairo::ImageSurface> surface = Cairo::ImageSurface::create (
image->data()[0],
Cairo::FORMAT_ARGB32,
image->size().height,
Cairo::ImageSurface::format_stride_for_width (Cairo::FORMAT_ARGB32, image->size().width)
);
+#else
+ /* Centos 5 does not have Cairo::ImageSurface::format_stride_for_width, so just use width * 4
+ which I hope is safe (if slow)
+ */
+ Cairo::RefPtr<Cairo::ImageSurface> surface = Cairo::ImageSurface::create (
+ image->data()[0],
+ Cairo::FORMAT_ARGB32,
+ image->size().width,
+ image->size().height,
+ image->size().width * 4
+ );
+#endif
Cairo::RefPtr<Cairo::Context> context = Cairo::Context::create (surface);
# See if we are using the MagickCore or MagickLib namespaces
conf.check_cxx(fragment="""
- #include <Magick++/Include.h>
- using namespace MagickCore;
+ #include <Magick++/Include.h>\n
+ using namespace MagickCore;\n
+ int main () { return 0; }\n
""",
mandatory=False,
msg='Checking for MagickCore namespace',
define_name='DCPOMATIC_HAVE_MAGICKCORE_NAMESPACE')
conf.check_cxx(fragment="""
- #include <Magick++/Include.h>
- using namespace MagickLib
+ #include <Magick++/Include.h>\n
+ using namespace MagickLib;\n
+ int main () { return 0; }\n
""",
mandatory=False,
msg='Checking for MagickLib namespace',
# cairomm
conf.check_cfg(package='cairomm-1.0', args='--cflags --libs', uselib_store='CAIROMM', mandatory=True)
+ # See if we have Cairo::ImageSurface::format_stride_for_width
+ conf.check_cxx(fragment="""
+ #include <cairomm/cairomm.h>
+ int main(void) {
+ Cairo::ImageSurface::format_stride_for_width (Cairo::FORMAT_ARGB, 1024);\n
+ return 0; }\n
+ """,
+ mandatory=False,
+ msg='Checking for format_stride_for_width',
+ okmsg='yes',
+ define_name='DCPOMATIC_HAVE_FORMAT_STRIDE_FOR_WIDTH')
+
# libcxml
if conf.options.static_cxml:
conf.check_cfg(package='libcxml', atleast_version='0.15.1', args='--cflags', uselib_store='CXML', mandatory=True)
# libxmlsec
if conf.options.static_xmlsec:
- conf.env.STLIB_XMLSEC = ['xmlsec1-openssl', 'xmlsec1']
+ conf.env.STLIB_XMLSEC = ['xmlsec1']
+ if conf.check_cxx(lib='xmlsec1-openssl', mandatory=False):
+ conf.env.STLIB_XMLSEC.append('xmlsec1-openssl')
else:
conf.env.LIB_XMLSEC = ['xmlsec1-openssl', 'xmlsec1']