Building cairomm (inkscape dependency) fails

Guido Soranzio guido.soranzio at gmail.com
Fri Apr 18 13:08:26 PDT 2008


> usr/bin/g++-4.0 -DHAVE_CONFIG_H -I. -I.. -DXTHREADS
> -I/opt/local/include/cairo -I/opt/local/include/freetype2
> -I/opt/local/include -I/opt/local/include/libpng12 -I/usr/X11/include
> -I/opt/local/include/pixman-1 -I/opt/local/include -O2 -MT context.lo
> -MD -MP -MF .deps/context.Tpo -c context.cc  -fno-common -DPIC -o
> .libs/context.o
> /System/Library/Frameworks/CoreServices.framework/Frameworks/ 
> CarbonCore.framework/Headers/MachineExceptions.h:255:
> error: declaration does not declare anything
> make[3]: *** [context.lo] Error 1
> make[2]: *** [all-recursive] Error 1
> make[1]: *** [all] Error 2
> make: *** [all-recursive] Error 1
>
> Error: Status 1 encountered during processing.
>
> Can anyone offer any advice?


It could be a conflict in the definition of "Status" in the
headers from Carbon and X11, which context.cc is including
at the same time.

I solved the double definition of "Cursor" and "Picture" with the
following trick:


------------8<----------------------------
#define Cursor X11_Cursor          <------
#define Picture X11_Picture        <------

#include <cairomm/xlib_surface.h>

#undef Cursor                      <------
#undef Picture                     <------

#include <cairomm/quartz_surface.h>
-----------8<-----------------------------


as you can see in: <http://trac.macports.org/projects/macports/browser/trunk/dports/graphics/cairomm/files/patch-cairomm-context.cc.diff?rev=36082 
 >)
undefine


I can't test on a Mac Intel but you could try to re-define
and un-define "Status" before including the Carbon headers.


-Guido 


More information about the macports-users mailing list