[cairo] cairomm 1.6.0 fails with cairo 1.6.4 + quartz on Mac OS X

Bill Spitzak spitzak at thefoundry.co.uk
Fri Apr 25 18:51:50 PDT 2008

Benjamin Reed wrote:
> On Fri, Apr 25, 2008 at 11:13 AM, Vladimir Vukicevic <vladimir at pobox.com> wrote:
>>  Yep, X tends to #define lots of very generic things (like "Status" or
>> "Picture") which causes breakage if they're used in pretty much any context
>> (e.g. C++ member function name, enum value, parameter name, etc.).  In
>> general, a file that includes X libs shouldn't include anything from any
>> other platform, or pain will result.  You can try #undef'ing all the bits
>> that it's complaining about..
> Yeah, I've tried #undef'ing everything I could, but it still freaks
> out.  The "Cursor" one is a typedef/struct conflict.
> /usr/X11R6/include/X11/X.h:typedef XID Cursor;
> /System/Library/Frameworks/ApplicationServices.framework/Frameworks/QD.framework/Headers/QuickdrawTypes.h:struct
> Cursor {

I worked around this is some pretty ugly ways. For instance I had an 
object called "Window" and this was the only way to make the code in X 
work at the same time:

#define Window XWindow
#include <X.h>
#undef Window
... now use XWindow for the type of any X window id.

More information about the cairo mailing list