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

Vladimir Vukicevic vladimir at pobox.com
Fri Apr 25 08:13:07 PDT 2008


On Apr 25, 2008, at 8:06 AM, Murray Cumming wrote:
> On Thu, 2008-04-24 at 12:41 -0400, Benjamin Reed wrote:
>>
>> -DPIC -o .libs/context.o
>> /System/Library/Frameworks/CoreServices.framework/Frameworks/ 
>> CarbonCore.framework/Headers/MachineExceptions.h:255:
>> error: declaration does not declare anything
>
> I guess that MachineExceptions.h (or maybe X) is #defining something
> with a very generic name. Could you show us the code on and near that
> line to give us a clue?
>
> Hopefully you can work around it with some combination of #ifdef,
> #ifnded or #undef.

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..

>> I'm not sure how to untangle this stuff, is it impossible to support
>> both X and quartz in the same cairo installation?
>
> I guess so. If it works for cairo then it should work for cairomm.

Yeah, but in cairo no file ever includes both X and quartz includes.   
(Or X and win32 includes, where a similar collision appears.)

     - Vlad



More information about the cairo mailing list