Bug 36027

Summary: cairo's Quartz surface backend feature could be enabled... no (requires CoreGraphics framework)
Product: cairo Reporter: Jeff Singleton <gvibe06>
Component: quartz backendAssignee: Vladimir Vukicevic <vladimir>
Status: RESOLVED WORKSFORME QA Contact: cairo-bugs mailing list <cairo-bugs>
Severity: blocker    
Priority: medium    
Version: 1.10.3   
Hardware: x86-64 (AMD64)   
OS: Mac OS X (All)   
Whiteboard:
i915 platform: i915 features:

Description Jeff Singleton 2011-04-06 08:09:52 UTC
XCode 4 seems to have removed CoreGraphics, and integrated it with ApplicationServices.  So basically, Cairo will not build on Mac OSX until CoreGraphics dependency is replaced with ApplicationServices.


checking for cairo's Quartz surface backend feature... 
checking ApplicationServices/ApplicationServices.h usability... no
checking ApplicationServices/ApplicationServices.h presence... yes
configure: WARNING: ApplicationServices/ApplicationServices.h: present but cannot be compiled
configure: WARNING: ApplicationServices/ApplicationServices.h:     check for missing prerequisite headers?
configure: WARNING: ApplicationServices/ApplicationServices.h: see the Autoconf documentation
configure: WARNING: ApplicationServices/ApplicationServices.h:     section "Present But Cannot Be Compiled"
configure: WARNING: ApplicationServices/ApplicationServices.h: proceeding with the compiler's result
configure: WARNING:     ## ---------------------------------------------------------------------- ##
configure: WARNING:     ## Report this to http://bugs.freedesktop.org/enter_bug.cgi?product=cairo ##
configure: WARNING:     ## ---------------------------------------------------------------------- ##
checking for ApplicationServices/ApplicationServices.h... no
checking CoreGraphics/CoreGraphics.h usability... no
checking CoreGraphics/CoreGraphics.h presence... no
checking for CoreGraphics/CoreGraphics.h... no
checking whether cairo's Quartz surface backend feature could be enabled... no (requires CoreGraphics framework)
configure: error:  Quartz surface backend feature could not be enabled
Comment 1 Jeff Singleton 2011-04-06 13:30:59 UTC
Adding CFLAGS="-isysroot /Developer/SDKs/MacOSX10.6.sdk" to configure gets past the error stated in the original post.   However, make crashes on cairo-quartz-surface.lo with the following:

 CC     cairo-quartz-surface.lo
In file included from /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/HFSVolumes.h:32,
                 from /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/CarbonCore.h:206,
                 from /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/AE.framework/Headers/AE.h:20,
                 from /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:21,
                 from /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/ApplicationServices.framework/Headers/ApplicationServices.h:20,
                 from cairo-quartz.h:43,
                 from cairo-quartz-private.h:44,
                 from cairo-quartz-surface.c:40:
/Developer/SDKs/MacOSX10.6.sdk/usr/include/hfs/hfs_format.h:765: error: expected specifier-qualifier-list before ‘uuid_string_t’
make[3]: *** [cairo-quartz-surface.lo] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

One thing to note...I am building for 64-bit only, not Universal.  So Carbon won't/shouldn't/can't be used, as Carbon is not 64-bit compatible.  Cocoa should be used with 64-bit compiling.
Comment 2 Andrea Canciani 2011-10-01 10:23:16 UTC
(In reply to comment #0)
> XCode 4 seems to have removed CoreGraphics, and integrated it with
> ApplicationServices.  So basically, Cairo will not build on Mac OSX until
> CoreGraphics dependency is replaced with ApplicationServices.

Cairo already looks for ApplicationServices with higher priority than CoreGraphics.
I'm unable to reproduce this problem. In fact, I get:

checking for cairo's Quartz surface backend feature... 
checking ApplicationServices/ApplicationServices.h usability... yes
checking ApplicationServices/ApplicationServices.h presence... yes
checking for ApplicationServices/ApplicationServices.h... yes
checking whether cairo's Quartz surface backend feature could be enabled... yes

Can you provide additional details about your build environment (env variables, config.log)?

> 
> 
> checking for cairo's Quartz surface backend feature... 
> checking ApplicationServices/ApplicationServices.h usability... no
> checking ApplicationServices/ApplicationServices.h presence... yes
> configure: WARNING: ApplicationServices/ApplicationServices.h: present but
> cannot be compiled

This should not happen: configure finds the header but believes that it cannot be used correctly.

> configure: WARNING: ApplicationServices/ApplicationServices.h:     check for
> missing prerequisite headers?
> configure: WARNING: ApplicationServices/ApplicationServices.h: see the Autoconf
> documentation
> configure: WARNING: ApplicationServices/ApplicationServices.h:     section
> "Present But Cannot Be Compiled"
> configure: WARNING: ApplicationServices/ApplicationServices.h: proceeding with
> the compiler's result
> configure: WARNING:     ##
> ---------------------------------------------------------------------- ##
> configure: WARNING:     ## Report this to
> http://bugs.freedesktop.org/enter_bug.cgi?product=cairo ##
> configure: WARNING:     ##
> ---------------------------------------------------------------------- ##
> checking for ApplicationServices/ApplicationServices.h... no
> checking CoreGraphics/CoreGraphics.h usability... no
> checking CoreGraphics/CoreGraphics.h presence... no
> checking for CoreGraphics/CoreGraphics.h... no
> checking whether cairo's Quartz surface backend feature could be enabled... no
> (requires CoreGraphics framework)
> configure: error:  Quartz surface backend feature could not be enabled
Comment 3 Andrea Canciani 2012-01-18 00:54:00 UTC
Please provide the information I asked for (env variables, config.log) and reopen if the problem still exists.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.