Make cairo components conditional on the relevant libaries etc existing.
This commit is contained in:
parent
06006d2f24
commit
2f67c036fe
5 changed files with 32 additions and 5 deletions
|
@ -124,7 +124,9 @@ for prereq in ('BOOST', 'PNG', 'JPEG', 'TIFF', 'PGSQL', 'PROJ', 'GDAL',):
|
||||||
|
|
||||||
env.ParseConfig(env['FREETYPE_CONFIG'] + ' --libs --cflags')
|
env.ParseConfig(env['FREETYPE_CONFIG'] + ' --libs --cflags')
|
||||||
|
|
||||||
env.ParseConfig('pkg-config --libs --cflags cairomm-1.0')
|
if env.Execute('pkg-config --exists cairomm-1.0') == 0:
|
||||||
|
env.ParseConfig('pkg-config --libs --cflags cairomm-1.0')
|
||||||
|
env.Append(CXXFLAGS = '-DHAVE_CAIRO');
|
||||||
|
|
||||||
if env['XMLPARSER'] == 'tinyxml':
|
if env['XMLPARSER'] == 'tinyxml':
|
||||||
env.Append(CXXFLAGS = '-DBOOST_PROPERTY_TREE_XML_PARSER_TINYXML -DTIXML_USE_STL')
|
env.Append(CXXFLAGS = '-DBOOST_PROPERTY_TREE_XML_PARSER_TINYXML -DTIXML_USE_STL')
|
||||||
|
|
|
@ -24,8 +24,10 @@ import re
|
||||||
import os
|
import os
|
||||||
|
|
||||||
Import('env')
|
Import('env')
|
||||||
|
|
||||||
env.ParseConfig('pkg-config --cflags pycairo')
|
if env.Execute('pkg-config --exists pycairo') == 0:
|
||||||
|
env.ParseConfig('pkg-config --cflags pycairo')
|
||||||
|
env.Append(CXXFLAGS = '-DHAVE_PYCAIRO');
|
||||||
|
|
||||||
prefix = env['PYTHON_PREFIX'] + '/' + env['LIBDIR_SCHEMA'] + '/python' + env['PYTHON_VERSION'] + '/site-packages/'
|
prefix = env['PYTHON_PREFIX'] + '/' + env['LIBDIR_SCHEMA'] + '/python' + env['PYTHON_VERSION'] + '/site-packages/'
|
||||||
install_prefix = env['DESTDIR'] + '/' + prefix
|
install_prefix = env['DESTDIR'] + '/' + prefix
|
||||||
|
|
|
@ -58,14 +58,18 @@ void export_projection();
|
||||||
|
|
||||||
#include <mapnik/map.hpp>
|
#include <mapnik/map.hpp>
|
||||||
#include <mapnik/agg_renderer.hpp>
|
#include <mapnik/agg_renderer.hpp>
|
||||||
|
#ifdef HAVE_CAIRO
|
||||||
#include <mapnik/cairo_renderer.hpp>
|
#include <mapnik/cairo_renderer.hpp>
|
||||||
|
#endif
|
||||||
#include <mapnik/graphics.hpp>
|
#include <mapnik/graphics.hpp>
|
||||||
#include <mapnik/image_util.hpp>
|
#include <mapnik/image_util.hpp>
|
||||||
#include <mapnik/load_map.hpp>
|
#include <mapnik/load_map.hpp>
|
||||||
#include <mapnik/config_error.hpp>
|
#include <mapnik/config_error.hpp>
|
||||||
#include <mapnik/save_map.hpp>
|
#include <mapnik/save_map.hpp>
|
||||||
|
|
||||||
|
#ifdef HAVE_PYCAIRO
|
||||||
#include <pycairo.h>
|
#include <pycairo.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
void render(const mapnik::Map& map,mapnik::Image32& image, unsigned offset_x = 0, unsigned offset_y = 0)
|
void render(const mapnik::Map& map,mapnik::Image32& image, unsigned offset_x = 0, unsigned offset_y = 0)
|
||||||
{
|
{
|
||||||
|
@ -79,6 +83,8 @@ void render2(const mapnik::Map& map,mapnik::Image32& image)
|
||||||
ren.apply();
|
ren.apply();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_PYCAIRO
|
||||||
|
|
||||||
void render3(const mapnik::Map& map,PycairoSurface* surface, unsigned offset_x = 0, unsigned offset_y = 0)
|
void render3(const mapnik::Map& map,PycairoSurface* surface, unsigned offset_x = 0, unsigned offset_y = 0)
|
||||||
{
|
{
|
||||||
Cairo::RefPtr<Cairo::Surface> s(new Cairo::Surface(surface->surface));
|
Cairo::RefPtr<Cairo::Surface> s(new Cairo::Surface(surface->surface));
|
||||||
|
@ -93,6 +99,8 @@ void render4(const mapnik::Map& map,PycairoSurface* surface)
|
||||||
ren.apply();
|
ren.apply();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
void render_tile_to_file(const mapnik::Map& map,
|
void render_tile_to_file(const mapnik::Map& map,
|
||||||
unsigned offset_x, unsigned offset_y,
|
unsigned offset_x, unsigned offset_y,
|
||||||
unsigned width, unsigned height,
|
unsigned width, unsigned height,
|
||||||
|
@ -176,8 +184,10 @@ BOOST_PYTHON_MODULE(_mapnik)
|
||||||
def("render_tile_to_file",&render_tile_to_file);
|
def("render_tile_to_file",&render_tile_to_file);
|
||||||
def("render",&render);
|
def("render",&render);
|
||||||
def("render",&render2);
|
def("render",&render2);
|
||||||
|
#ifdef HAVE_PYCAIRO
|
||||||
def("render",&render3);
|
def("render",&render3);
|
||||||
def("render",&render4);
|
def("render",&render4);
|
||||||
|
#endif
|
||||||
def("scale_denominator", &scale_denominator);
|
def("scale_denominator", &scale_denominator);
|
||||||
|
|
||||||
def("load_map", & load_map, load_map_overloads());
|
def("load_map", & load_map, load_map_overloads());
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
//$Id$
|
//$Id$
|
||||||
|
|
||||||
|
#ifdef HAVE_PYCAIRO
|
||||||
|
|
||||||
#include <boost/python/type_id.hpp>
|
#include <boost/python/type_id.hpp>
|
||||||
#include <boost/python/converter/registry.hpp>
|
#include <boost/python/converter/registry.hpp>
|
||||||
|
|
||||||
|
@ -46,3 +48,11 @@ void register_cairo()
|
||||||
|
|
||||||
boost::python::converter::registry::insert(&extract_surface, boost::python::type_id<PycairoSurface>());
|
boost::python::converter::registry::insert(&extract_surface, boost::python::type_id<PycairoSurface>());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
void register_cairo()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -43,7 +43,6 @@ else: # Linux and others
|
||||||
source = Split(
|
source = Split(
|
||||||
"""
|
"""
|
||||||
agg_renderer.cpp
|
agg_renderer.cpp
|
||||||
cairo_renderer.cpp
|
|
||||||
datasource_cache.cpp
|
datasource_cache.cpp
|
||||||
envelope.cpp
|
envelope.cpp
|
||||||
filter_factory.cpp
|
filter_factory.cpp
|
||||||
|
@ -79,7 +78,11 @@ source = Split(
|
||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
|
|
||||||
#source.append("cairo_renderer.cpp")
|
if 'cairo' in env['LIBS']:
|
||||||
|
source += Split(
|
||||||
|
"""
|
||||||
|
cairo_renderer.cpp
|
||||||
|
""")
|
||||||
|
|
||||||
if env['XMLPARSER'] == 'tinyxml':
|
if env['XMLPARSER'] == 'tinyxml':
|
||||||
source += Split(
|
source += Split(
|
||||||
|
|
Loading…
Add table
Reference in a new issue