[cairo] Unable to compile cairomm 1.7.0 (OS X fink)

Asko Kauppi askok at dnainternet.net
Mon Oct 27 12:24:20 PDT 2008


I tried compiling Cairomm 1.7.0 on OS X with fink tools.  This is what  
I got after

	./configure
	make

Would you have ideas of what's wrong?

Which version of libsigc++ is required?

The line 37 of functor_trait.h is:
<<
/** nil struct type.
  * The nil struct type is used as default template argument in the
  * unnumbered sigc::signal and sigc::slot templates.
  *
  * @ingroup signal
  * @ingroup slot
  */
struct nil;	<<-- line 37
<<

- asko

...
g++ -DHAVE_CONFIG_H -I. -I.. -I/sw/include/libpng12 -I/sw/include -I/ 
sw/lib/freetype219/include/freetype2 -I/sw/lib/freetype219/include -I/ 
sw/include/pixman-1 -I/sw/include/cairo -I/sw/include/sigc++-2.0 -I/sw/ 
lib/sigc++-2.0/include -I/usr/X11R6/include -I/usr/X11/include -g -O2 - 
MT quartz_font.lo -MD -MP -MF .deps/quartz_font.Tpo -c quartz_font.cc   
-fno-common -DPIC -o .libs/quartz_font.o
/sw/include/sigc++-2.0/sigc++/functors/functor_trait.h:37: error:  
expected identifier before '__null'
/sw/include/sigc++-2.0/sigc++/functors/functor_trait.h:37: error:  
expected unqualified-id before '__null'
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1088: error: expected  
type-specifier before '__null'
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1088: error: expected  
`>' before '__null'
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1090: error: 'T_arg2'  
was not declared in this scope
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1090: error: 'T_arg3'  
was not declared in this scope
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1090: error: 'T_arg4'  
was not declared in this scope
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1090: error: 'T_arg5'  
was not declared in this scope
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1090: error: 'T_arg6'  
was not declared in this scope
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1090: error: 'T_arg7'  
was not declared in this scope
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1090: error: template  
argument 3 is invalid
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1090: error: template  
argument 4 is invalid
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1090: error: template  
argument 5 is invalid
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1090: error: template  
argument 6 is invalid
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1090: error: template  
argument 7 is invalid
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1090: error: template  
argument 8 is invalid
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1093: error: 'T_arg2'  
was not declared in this scope
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1093: error: 'T_arg3'  
was not declared in this scope
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1093: error: 'T_arg4'  
was not declared in this scope
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1093: error: 'T_arg5'  
was not declared in this scope
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1093: error: 'T_arg6'  
was not declared in this scope
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1093: error: 'T_arg7'  
was not declared in this scope
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1093: error: template  
argument 3 is invalid
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1093: error: template  
argument 4 is invalid
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1093: error: template  
argument 5 is invalid
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1093: error: template  
argument 6 is invalid
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1093: error: template  
argument 7 is invalid
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1093: error: template  
argument 8 is invalid
/sw/include/sigc++-2.0/sigc++/functors/slot.h: In constructor  
'sigc::slot<T_return, T_arg1>::slot(const T_functor&)':
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1102: error: 'typedef  
int sigc::slot<T_return, T_arg1>::parent_type' is not a non-static  
data member of 'sigc::slot<T_return, T_arg1>'
/sw/include/sigc++-2.0/sigc++/functors/slot.h: In copy constructor  
'sigc::slot<T_return, T_arg1>::slot(const sigc::slot<T_return,  
T_arg1>&)':
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1105: error: 'typedef  
int sigc::slot<T_return, T_arg1>::parent_type' is not a non-static  
data member of 'sigc::slot<T_return, T_arg1>'
/sw/include/sigc++-2.0/sigc++/functors/slot.h: At global scope:
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1117: error: wrong  
number of template arguments (8, should be 2)
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1089: error: provided  
for 'template<class T_return, class T_arg1> class sigc::slot'
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1144: error: wrong  
number of template arguments (8, should be 2)
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1089: error: provided  
for 'template<class T_return, class T_arg1> class sigc::slot'
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1171: error: wrong  
number of template arguments (8, should be 2)
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1089: error: provided  
for 'template<class T_return, class T_arg1> class sigc::slot'
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1198: error: wrong  
number of template arguments (8, should be 2)
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1089: error: provided  
for 'template<class T_return, class T_arg1> class sigc::slot'
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1225: error: wrong  
number of template arguments (8, should be 2)
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1089: error: provided  
for 'template<class T_return, class T_arg1> class sigc::slot'
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1252: error: wrong  
number of template arguments (8, should be 2)
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1089: error: provided  
for 'template<class T_return, class T_arg1> class sigc::slot'
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1279: error: wrong  
number of template arguments (8, should be 2)
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1089: error: provided  
for 'template<class T_return, class T_arg1> class sigc::slot'
../cairomm/fontface.h:187: error: wrong number of template arguments  
(4, should be 2)
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1089: error: provided  
for 'template<class T_return, class T_arg1> class sigc::slot'
../cairomm/fontface.h:239: error: wrong number of template arguments  
(4, should be 2)
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1089: error: provided  
for 'template<class T_return, class T_arg1> class sigc::slot'
../cairomm/fontface.h:301: error: wrong number of template arguments  
(5, should be 2)
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1089: error: provided  
for 'template<class T_return, class T_arg1> class sigc::slot'
../cairomm/fontface.h:360: error: wrong number of template arguments  
(6, should be 2)
/sw/include/sigc++-2.0/sigc++/functors/slot.h:1089: error: provided  
for 'template<class T_return, class T_arg1> class sigc::slot'
make[3]: *** [quartz_font.lo] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all] Error 2





Jonathon Jongsma kirjoitti 26.10.2008 kello 6:46:

> **********************
> NOTE: This is an UNSTABLE release and contains MANY changes, including
> some API changes (in addition to the normal API additions and  
> bugfixes).
>   I have provided justifications for the API changes below, so please
> read through them carefully and provide feedback if you disagree with
> any of them.  If you'd like to view the API documentation online as  
> you
> read through the list of changes below, you can do so at
> http://www.cairographics.org/documentation/cairomm/reference/
> **********************
>
> cairomm is a C++ API for the cairo graphics library.  For more
> information, see http://cairographics.org/cairomm
>
> A new cairomm release 1.7.0 is now available from:
>
> 	http://cairographics.org/releases/cairomm-1.7.0.tar.gz
>
>     which can be verified with:
>
> 	http://cairographics.org/releases/cairomm-1.7.0.tar.gz.sha1
> 	6d19e71717abf559ffb868423669ba23860fc94b  cairomm-1.7.0.tar.gz
>
> 	http://cairographics.org/releases/cairomm-1.7.0.tar.gz.sha1.asc
> 	(signed by Jonathon Jongsma)
>
> WHAT'S NEW
> ==========
>
>  * API Changes
>    * ScaledFont: Change fontface constructor parameter to be a RefPtr
>      * This is an API/ABI break, but the old interface was essentially
> unusably
>        broken
>    * Cairo::Matrix now inherits from cairo_matrix_t
>      * Previously, we had used Cairo::Matrix throughout our API, but
>        Cairo::Matrix was just a typedef for cairo_matrix_t
>      * This could be considered an API change, but the new
> Cairo::Matrix still
>        is-a cairo_matrix_t even if it's not exactly a  
> cairo_matrix_t.  This
>        change does not break ABI either, as there are no data members
> or virtual
>        functions.  So I believe this is a safe change, but feedback is
> appreciated.
>      * Provides a much more C++-friendly API for handling matrices
>      * Also added a set of standalone 'generator' functions for  
> generating
>        starting matrices:
>        * Cairo::identity_matrix(), rotation_matrix(),  
> translation_matrix(),
>          scaled_matrix().  This allows for convenient use such as:
>            cr->set_matrix(Cairo::identity_matrix());
>          rather than something like what was required before:
>            Cairo::Matrix identity_matrix;
>            cairo_matrix_init_identity(&identity_matrix);
>            cr->set_matrix(identity_matrix);
>    * Pattern: get/set_matrix() functions were using a cairo_matrix_t
> parameter in
>      the API.  This is the only place where we used this type and so  
> it was
>      inconsistent with every other matrix-related API in cairomm.
> Previously
>      this wasn't really an issue since cairo_matrix_t and  
> Cairo::Matrix
> were
>      typedefed to the same type.  However, with the the change to
> Cairo::Matrix
>      mentioned above, this because a much bigger issue.
>      * This is an ABI-compatible change, but it is a minor API change
> that could
>        result in some warnings or compile problems in some situations`
>  * New API (some of these are new in cairo 1.8, some are older API  
> that
> were
>    not wrapped in cairomm previously)
>    * Add Context::get/set_scaled_font()
>    * add Context::show_text_glyphs()
>    * add Context::get_font_options()
>    * Add Surface::has_show_text_glyphs()
>    * Add Surface::get_content() + test
>    * Added Surface::get_fallback_resolution()
>    * Add ScaledFont::text_to_glyphs()
>    * Add PsSurface::get_eps()
>    * Add missing Win32Surface API: create_with_ddb(),
> create_with_dib(), and get_image()
>    * Add Win32PrintingSurface
>    * Vastly improved font support
>      * ToyFontFace
>      * UserFontFace
>      * Add Freetype font support (FtFontFace, etc)
>      * Add win32 font support (Win32FontFace, etc)
>      * Add quartz font support (QuartzFontFace, etc)
>      * Add ScaledFont::get_scale_matrix()
>  * Fix API inconsistencies by adding overloads and deprecating old  
> versions
>    * Deprecated FontFace::extents() in favor of  
> FontFace::get_extents()
>    * Deprecated FontFace::text_extents() in favor of
> FontFace::get_text_extents()
>    * Deprecated FontFace::glyph_extents() in favor of
> FontFace::get_glyph_extents()
>    * Add sigc::slot versions of all of the functions that take a
>      cairo_write_func_t or cairo_read_func_t
>      * This adds a new dependency on libsigc++, but offers a much more
> flexible
>        and C++-like solution
>      * Old API using cairo_write_func_t / cairo_read_func_t still
> exist, but are
>        deprecated in favor of the new API
>    * Add a default value for the font_options parameter of the
> ScaledFont constructor
>  * Added new macros for determining library version:
>    * CAIROMM_MAJOR_VERSION, CAIROMM_MINOR_VERSION, and
> CAIROMM_MICRO_VERSION
>  * Add a bunch of extra .pc files for additional functionality
>    * like cairo, create convenience .pc files for using some of the
> optional
>      features.  For example, cairomm-ft-1.0, cairomm-pdf-1.0,
> cairomm-xlib-1.0, etc.
>  * Numerous windows build improvements
>  * Added a *lot* of automated tests
>
> -- 
> jonner
> _______________________________________________
> cairo-announce mailing list
> cairo-announce at lists.cairographics.org
> http://lists.cairographics.org/mailman/listinfo/cairo-announce
> _______________________________________________
> cairo mailing list
> cairo at cairographics.org
> http://lists.cairographics.org/mailman/listinfo/cairo



More information about the cairo mailing list