From 3d916d03a0d7eac4a6d1a7192d057d672c756690 Mon Sep 17 00:00:00 2001 From: Tj Holowaychuk Date: Thu, 18 Nov 2010 11:01:09 -0800 Subject: [PATCH] Conditional JPEG support --- src/Image.cc | 6 ++++++ src/Image.h | 2 ++ wscript | 5 +++-- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Image.cc b/src/Image.cc index 81df93d..f1140c5 100644 --- a/src/Image.cc +++ b/src/Image.cc @@ -274,7 +274,9 @@ cairo_status_t Image::loadSurface() { switch (extension(filename)) { case Image::PNG: return loadPNG(); +#ifdef HAVE_JPEG case Image::JPEG: return loadJPEG(); +#endif } return CAIRO_STATUS_READ_ERROR; } @@ -291,6 +293,8 @@ Image::loadPNG() { return cairo_surface_status(_surface); } +#ifdef HAVE_JPEG + /* * Load JPEG, convert RGB to ARGB. */ @@ -349,6 +353,8 @@ Image::loadJPEG() { return cairo_surface_status(_surface); } +#endif + /* * Return UNKNOWN, JPEG, or PNG based on the filename. */ diff --git a/src/Image.h b/src/Image.h index 06035aa..be57b55 100644 --- a/src/Image.h +++ b/src/Image.h @@ -33,7 +33,9 @@ class Image: public node::ObjectWrap { inline int stride(){ return cairo_image_surface_get_stride(_surface); } cairo_status_t loadSurface(); cairo_status_t loadPNG(); +#ifdef HAVE_JPEG cairo_status_t loadJPEG(); +#endif void error(Local); void loadSync(); void loaded(); diff --git a/wscript b/wscript index 96b614a..56c8dfd 100644 --- a/wscript +++ b/wscript @@ -11,8 +11,9 @@ def configure(conf): conf.check_tool('compiler_cxx') conf.check_tool('node_addon') conf.env.append_value('CPPFLAGS', '-DNDEBUG') - conf.check(lib='jpeg', uselib_store='JPEG') - conf.check_cfg(package='cairo', mandatory=1, args='--cflags --libs') + if conf.check(lib='jpeg', uselib_store='JPEG', mandatory=False): + conf.env.append_value('CPPFLAGS', '-DHAVE_JPEG=1') + conf.check_cfg(package='cairo', args='--cflags --libs', mandatory=True) flags = ['-O3', '-Wall'] conf.env.append_value('CCFLAGS', flags) conf.env.append_value('CXXFLAGS', flags)